Lines Matching refs:sdata

90 		memcpy(hdr->addr2, mpath->sdata->vif.addr, ETH_ALEN);  in mesh_path_assign_nexthop()
91 ieee80211_mps_set_frame_flags(sta->sdata, sta, hdr); in mesh_path_assign_nexthop()
133 memcpy(hdr->addr2, gate_mpath->sdata->vif.addr, ETH_ALEN); in prepare_for_gate()
176 mpath_dbg(gate_mpath->sdata, "mpath queue full!\n"); in mesh_path_move_to_queue()
194 mpath_dbg(gate_mpath->sdata, "Mpath queue for gate %pM has %d frames\n", in mesh_path_move_to_queue()
207 struct ieee80211_sub_if_data *sdata) in mpath_lookup() argument
231 mesh_path_lookup(struct ieee80211_sub_if_data *sdata, const u8 *dst) in mesh_path_lookup() argument
233 return mpath_lookup(&sdata->u.mesh.mesh_paths, dst, sdata); in mesh_path_lookup()
237 mpp_path_lookup(struct ieee80211_sub_if_data *sdata, const u8 *dst) in mpp_path_lookup() argument
239 return mpath_lookup(&sdata->u.mesh.mpp_paths, dst, sdata); in mpp_path_lookup()
274 mesh_path_lookup_by_idx(struct ieee80211_sub_if_data *sdata, int idx) in mesh_path_lookup_by_idx() argument
276 return __mesh_path_lookup_by_idx(&sdata->u.mesh.mesh_paths, idx); in mesh_path_lookup_by_idx()
289 mpp_path_lookup_by_idx(struct ieee80211_sub_if_data *sdata, int idx) in mpp_path_lookup_by_idx() argument
291 return __mesh_path_lookup_by_idx(&sdata->u.mesh.mpp_paths, idx); in mpp_path_lookup_by_idx()
304 tbl = &mpath->sdata->u.mesh.mesh_paths; in mesh_path_add_gate()
313 mpath->sdata->u.mesh.num_gates++; in mesh_path_add_gate()
321 mpath_dbg(mpath->sdata, in mesh_path_add_gate()
323 mpath->dst, mpath->sdata->u.mesh.num_gates); in mesh_path_add_gate()
344 mpath->sdata->u.mesh.num_gates--; in mesh_gate_del()
347 mpath_dbg(mpath->sdata, in mesh_gate_del()
349 mpath->dst, mpath->sdata->u.mesh.num_gates); in mesh_gate_del()
356 int mesh_gate_num(struct ieee80211_sub_if_data *sdata) in mesh_gate_num() argument
358 return sdata->u.mesh.num_gates; in mesh_gate_num()
362 struct mesh_path *mesh_path_new(struct ieee80211_sub_if_data *sdata, in mesh_path_new() argument
374 new_mpath->sdata = sdata; in mesh_path_new()
393 struct mesh_path *mesh_path_add(struct ieee80211_sub_if_data *sdata, in mesh_path_add() argument
399 if (ether_addr_equal(dst, sdata->vif.addr)) in mesh_path_add()
406 if (atomic_add_unless(&sdata->u.mesh.mpaths, 1, MESH_MAX_MPATHS) == 0) in mesh_path_add()
409 new_mpath = mesh_path_new(sdata, dst, GFP_ATOMIC); in mesh_path_add()
413 tbl = &sdata->u.mesh.mesh_paths; in mesh_path_add()
431 sdata->u.mesh.mesh_paths_generation++; in mesh_path_add()
435 int mpp_path_add(struct ieee80211_sub_if_data *sdata, in mpp_path_add() argument
442 if (ether_addr_equal(dst, sdata->vif.addr)) in mpp_path_add()
449 new_mpath = mesh_path_new(sdata, dst, GFP_ATOMIC); in mpp_path_add()
455 tbl = &sdata->u.mesh.mpp_paths; in mpp_path_add()
468 sdata->u.mesh.mpp_paths_generation++; in mpp_path_add()
483 struct ieee80211_sub_if_data *sdata = sta->sdata; in mesh_plink_broken() local
484 struct mesh_table *tbl = &sdata->u.mesh.mesh_paths; in mesh_plink_broken()
497 mesh_path_error_tx(sdata, in mesh_plink_broken()
498 sdata->u.mesh.mshcfg.element_ttl, in mesh_plink_broken()
509 struct ieee80211_sub_if_data *sdata = mpath->sdata; in mesh_path_free_rcu() local
516 atomic_dec(&sdata->u.mesh.mpaths); in mesh_path_free_rcu()
542 struct ieee80211_sub_if_data *sdata = sta->sdata; in mesh_path_flush_by_nexthop() local
543 struct mesh_table *tbl = &sdata->u.mesh.mesh_paths; in mesh_path_flush_by_nexthop()
555 static void mpp_flush_by_proxy(struct ieee80211_sub_if_data *sdata, in mpp_flush_by_proxy() argument
558 struct mesh_table *tbl = &sdata->u.mesh.mpp_paths; in mpp_flush_by_proxy()
590 void mesh_path_flush_by_iface(struct ieee80211_sub_if_data *sdata) in mesh_path_flush_by_iface() argument
592 table_flush_by_iface(&sdata->u.mesh.mesh_paths); in mesh_path_flush_by_iface()
593 table_flush_by_iface(&sdata->u.mesh.mpp_paths); in mesh_path_flush_by_iface()
606 struct ieee80211_sub_if_data *sdata, in table_path_del() argument
632 int mesh_path_del(struct ieee80211_sub_if_data *sdata, const u8 *addr) in mesh_path_del() argument
637 mpp_flush_by_proxy(sdata, addr); in mesh_path_del()
639 err = table_path_del(&sdata->u.mesh.mesh_paths, sdata, addr); in mesh_path_del()
640 sdata->u.mesh.mesh_paths_generation++; in mesh_path_del()
655 ieee80211_add_pending_skbs(mpath->sdata->local, in mesh_path_tx_pending()
671 struct ieee80211_sub_if_data *sdata = mpath->sdata; in mesh_path_send_to_gates() local
677 tbl = &sdata->u.mesh.mesh_paths; in mesh_path_send_to_gates()
682 mpath_dbg(sdata, "Forwarding to %pM\n", gate->dst); in mesh_path_send_to_gates()
687 mpath_dbg(sdata, in mesh_path_send_to_gates()
694 mpath_dbg(sdata, "Sending to %pM\n", gate->dst); in mesh_path_send_to_gates()
710 void mesh_path_discard_frame(struct ieee80211_sub_if_data *sdata, in mesh_path_discard_frame() argument
714 sdata->u.mesh.mshstats.dropped_frames_no_route++; in mesh_path_discard_frame()
729 mesh_path_discard_frame(mpath->sdata, skb); in mesh_path_flush_pending()
757 void mesh_pathtbl_init(struct ieee80211_sub_if_data *sdata) in mesh_pathtbl_init() argument
759 mesh_table_init(&sdata->u.mesh.mesh_paths); in mesh_pathtbl_init()
760 mesh_table_init(&sdata->u.mesh.mpp_paths); in mesh_pathtbl_init()
764 void mesh_path_tbl_expire(struct ieee80211_sub_if_data *sdata, in mesh_path_tbl_expire() argument
780 void mesh_path_expire(struct ieee80211_sub_if_data *sdata) in mesh_path_expire() argument
782 mesh_path_tbl_expire(sdata, &sdata->u.mesh.mesh_paths); in mesh_path_expire()
783 mesh_path_tbl_expire(sdata, &sdata->u.mesh.mpp_paths); in mesh_path_expire()
786 void mesh_pathtbl_unregister(struct ieee80211_sub_if_data *sdata) in mesh_pathtbl_unregister() argument
788 mesh_table_free(&sdata->u.mesh.mesh_paths); in mesh_pathtbl_unregister()
789 mesh_table_free(&sdata->u.mesh.mpp_paths); in mesh_pathtbl_unregister()