• Home
  • Raw
  • Download

Lines Matching refs:sdata

52 static void mesh_fast_tx_deinit(struct ieee80211_sub_if_data *sdata)  in mesh_fast_tx_deinit()  argument
56 cache = &sdata->u.mesh.tx_cache; in mesh_fast_tx_deinit()
61 static void mesh_fast_tx_init(struct ieee80211_sub_if_data *sdata) in mesh_fast_tx_init() argument
65 cache = &sdata->u.mesh.tx_cache; in mesh_fast_tx_init()
126 memcpy(hdr->addr2, mpath->sdata->vif.addr, ETH_ALEN); in mesh_path_assign_nexthop()
127 ieee80211_mps_set_frame_flags(sta->sdata, sta, hdr); in mesh_path_assign_nexthop()
169 memcpy(hdr->addr2, gate_mpath->sdata->vif.addr, ETH_ALEN); in prepare_for_gate()
212 mpath_dbg(gate_mpath->sdata, "mpath queue full!\n"); in mesh_path_move_to_queue()
230 mpath_dbg(gate_mpath->sdata, "Mpath queue for gate %pM has %d frames\n", in mesh_path_move_to_queue()
243 struct ieee80211_sub_if_data *sdata) in mpath_lookup() argument
267 mesh_path_lookup(struct ieee80211_sub_if_data *sdata, const u8 *dst) in mesh_path_lookup() argument
269 return mpath_lookup(&sdata->u.mesh.mesh_paths, dst, sdata); in mesh_path_lookup()
273 mpp_path_lookup(struct ieee80211_sub_if_data *sdata, const u8 *dst) in mpp_path_lookup() argument
275 return mpath_lookup(&sdata->u.mesh.mpp_paths, dst, sdata); in mpp_path_lookup()
310 mesh_path_lookup_by_idx(struct ieee80211_sub_if_data *sdata, int idx) in mesh_path_lookup_by_idx() argument
312 return __mesh_path_lookup_by_idx(&sdata->u.mesh.mesh_paths, idx); in mesh_path_lookup_by_idx()
325 mpp_path_lookup_by_idx(struct ieee80211_sub_if_data *sdata, int idx) in mpp_path_lookup_by_idx() argument
327 return __mesh_path_lookup_by_idx(&sdata->u.mesh.mpp_paths, idx); in mpp_path_lookup_by_idx()
340 tbl = &mpath->sdata->u.mesh.mesh_paths; in mesh_path_add_gate()
349 mpath->sdata->u.mesh.num_gates++; in mesh_path_add_gate()
357 mpath_dbg(mpath->sdata, in mesh_path_add_gate()
359 mpath->dst, mpath->sdata->u.mesh.num_gates); in mesh_path_add_gate()
380 mpath->sdata->u.mesh.num_gates--; in mesh_gate_del()
383 mpath_dbg(mpath->sdata, in mesh_gate_del()
385 mpath->dst, mpath->sdata->u.mesh.num_gates); in mesh_gate_del()
392 int mesh_gate_num(struct ieee80211_sub_if_data *sdata) in mesh_gate_num() argument
394 return sdata->u.mesh.num_gates; in mesh_gate_num()
398 struct mesh_path *mesh_path_new(struct ieee80211_sub_if_data *sdata, in mesh_path_new() argument
410 new_mpath->sdata = sdata; in mesh_path_new()
429 mesh_fast_tx_get(struct ieee80211_sub_if_data *sdata, in mesh_fast_tx_get() argument
435 cache = &sdata->u.mesh.tx_cache; in mesh_fast_tx_get()
450 mesh_path_refresh(sdata, entry->mpath, NULL); in mesh_fast_tx_get()
458 void mesh_fast_tx_cache(struct ieee80211_sub_if_data *sdata, in mesh_fast_tx_cache() argument
472 if (sdata->noack_map || in mesh_fast_tx_cache()
480 cache = &sdata->u.mesh.tx_cache; in mesh_fast_tx_cache()
491 mppath = mpp_path_lookup(sdata, meshhdr->eaddr1); in mesh_fast_tx_cache()
495 if (!ether_addr_equal(meshhdr->eaddr2, sdata->vif.addr)) in mesh_fast_tx_cache()
503 if (!ether_addr_equal(hdr->addr4, sdata->vif.addr)) in mesh_fast_tx_cache()
519 key = rcu_access_pointer(sdata->default_unicast_key); in mesh_fast_tx_cache()
602 void mesh_fast_tx_gc(struct ieee80211_sub_if_data *sdata) in mesh_fast_tx_gc() argument
605 struct mesh_tx_cache *cache = &sdata->u.mesh.tx_cache; in mesh_fast_tx_gc()
621 struct ieee80211_sub_if_data *sdata = mpath->sdata; in mesh_fast_tx_flush_mpath() local
622 struct mesh_tx_cache *cache = &sdata->u.mesh.tx_cache; in mesh_fast_tx_flush_mpath()
633 void mesh_fast_tx_flush_sta(struct ieee80211_sub_if_data *sdata, in mesh_fast_tx_flush_sta() argument
636 struct mesh_tx_cache *cache = &sdata->u.mesh.tx_cache; in mesh_fast_tx_flush_sta()
647 void mesh_fast_tx_flush_addr(struct ieee80211_sub_if_data *sdata, in mesh_fast_tx_flush_addr() argument
650 struct mesh_tx_cache *cache = &sdata->u.mesh.tx_cache; in mesh_fast_tx_flush_addr()
675 struct mesh_path *mesh_path_add(struct ieee80211_sub_if_data *sdata, in mesh_path_add() argument
681 if (ether_addr_equal(dst, sdata->vif.addr)) in mesh_path_add()
688 if (atomic_add_unless(&sdata->u.mesh.mpaths, 1, MESH_MAX_MPATHS) == 0) in mesh_path_add()
691 new_mpath = mesh_path_new(sdata, dst, GFP_ATOMIC); in mesh_path_add()
695 tbl = &sdata->u.mesh.mesh_paths; in mesh_path_add()
713 sdata->u.mesh.mesh_paths_generation++; in mesh_path_add()
717 int mpp_path_add(struct ieee80211_sub_if_data *sdata, in mpp_path_add() argument
724 if (ether_addr_equal(dst, sdata->vif.addr)) in mpp_path_add()
731 new_mpath = mesh_path_new(sdata, dst, GFP_ATOMIC); in mpp_path_add()
737 tbl = &sdata->u.mesh.mpp_paths; in mpp_path_add()
750 mesh_fast_tx_flush_addr(sdata, dst); in mpp_path_add()
752 sdata->u.mesh.mpp_paths_generation++; in mpp_path_add()
767 struct ieee80211_sub_if_data *sdata = sta->sdata; in mesh_plink_broken() local
768 struct mesh_table *tbl = &sdata->u.mesh.mesh_paths; in mesh_plink_broken()
781 mesh_path_error_tx(sdata, in mesh_plink_broken()
782 sdata->u.mesh.mshcfg.element_ttl, in mesh_plink_broken()
793 struct ieee80211_sub_if_data *sdata = mpath->sdata; in mesh_path_free_rcu() local
800 atomic_dec(&sdata->u.mesh.mpaths); in mesh_path_free_rcu()
810 if (tbl == &mpath->sdata->u.mesh.mpp_paths) in __mesh_path_del()
811 mesh_fast_tx_flush_addr(mpath->sdata, mpath->dst); in __mesh_path_del()
830 struct ieee80211_sub_if_data *sdata = sta->sdata; in mesh_path_flush_by_nexthop() local
831 struct mesh_table *tbl = &sdata->u.mesh.mesh_paths; in mesh_path_flush_by_nexthop()
843 static void mpp_flush_by_proxy(struct ieee80211_sub_if_data *sdata, in mpp_flush_by_proxy() argument
846 struct mesh_table *tbl = &sdata->u.mesh.mpp_paths; in mpp_flush_by_proxy()
878 void mesh_path_flush_by_iface(struct ieee80211_sub_if_data *sdata) in mesh_path_flush_by_iface() argument
880 table_flush_by_iface(&sdata->u.mesh.mesh_paths); in mesh_path_flush_by_iface()
881 table_flush_by_iface(&sdata->u.mesh.mpp_paths); in mesh_path_flush_by_iface()
894 struct ieee80211_sub_if_data *sdata, in table_path_del() argument
920 int mesh_path_del(struct ieee80211_sub_if_data *sdata, const u8 *addr) in mesh_path_del() argument
925 mpp_flush_by_proxy(sdata, addr); in mesh_path_del()
927 err = table_path_del(&sdata->u.mesh.mesh_paths, sdata, addr); in mesh_path_del()
928 sdata->u.mesh.mesh_paths_generation++; in mesh_path_del()
943 ieee80211_add_pending_skbs(mpath->sdata->local, in mesh_path_tx_pending()
959 struct ieee80211_sub_if_data *sdata = mpath->sdata; in mesh_path_send_to_gates() local
965 tbl = &sdata->u.mesh.mesh_paths; in mesh_path_send_to_gates()
970 mpath_dbg(sdata, "Forwarding to %pM\n", gate->dst); in mesh_path_send_to_gates()
975 mpath_dbg(sdata, in mesh_path_send_to_gates()
982 mpath_dbg(sdata, "Sending to %pM\n", gate->dst); in mesh_path_send_to_gates()
998 void mesh_path_discard_frame(struct ieee80211_sub_if_data *sdata, in mesh_path_discard_frame() argument
1001 ieee80211_free_txskb(&sdata->local->hw, skb); in mesh_path_discard_frame()
1002 sdata->u.mesh.mshstats.dropped_frames_no_route++; in mesh_path_discard_frame()
1014 struct ieee80211_sub_if_data *sdata = mpath->sdata; in mesh_path_flush_pending() local
1015 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in mesh_path_flush_pending()
1020 mesh_path_discard_frame(mpath->sdata, skb); in mesh_path_flush_pending()
1059 void mesh_pathtbl_init(struct ieee80211_sub_if_data *sdata) in mesh_pathtbl_init() argument
1061 mesh_table_init(&sdata->u.mesh.mesh_paths); in mesh_pathtbl_init()
1062 mesh_table_init(&sdata->u.mesh.mpp_paths); in mesh_pathtbl_init()
1063 mesh_fast_tx_init(sdata); in mesh_pathtbl_init()
1067 void mesh_path_tbl_expire(struct ieee80211_sub_if_data *sdata, in mesh_path_tbl_expire() argument
1083 void mesh_path_expire(struct ieee80211_sub_if_data *sdata) in mesh_path_expire() argument
1085 mesh_path_tbl_expire(sdata, &sdata->u.mesh.mesh_paths); in mesh_path_expire()
1086 mesh_path_tbl_expire(sdata, &sdata->u.mesh.mpp_paths); in mesh_path_expire()
1089 void mesh_pathtbl_unregister(struct ieee80211_sub_if_data *sdata) in mesh_pathtbl_unregister() argument
1091 mesh_fast_tx_deinit(sdata); in mesh_pathtbl_unregister()
1092 mesh_table_free(&sdata->u.mesh.mesh_paths); in mesh_pathtbl_unregister()
1093 mesh_table_free(&sdata->u.mesh.mpp_paths); in mesh_pathtbl_unregister()