diff options
author | monthadar <monthadar@FreeBSD.org> | 2013-02-07 21:26:40 +0000 |
---|---|---|
committer | monthadar <monthadar@FreeBSD.org> | 2013-02-07 21:26:40 +0000 |
commit | f3631fce3f3e16db66e87041ac6b159a0fe005e0 (patch) | |
tree | 7d8d62618527b645835d807e6f9d1a9ec2ef9f5f /sys/net80211/ieee80211_mesh.h | |
parent | 9cc12d2c5f7a100b44e6de96a1d195b962db14d3 (diff) | |
download | FreeBSD-src-f3631fce3f3e16db66e87041ac6b159a0fe005e0.zip FreeBSD-src-f3631fce3f3e16db66e87041ac6b159a0fe005e0.tar.gz |
HWMP: ic->raw_xmit didn't always point to correct ni.
This is a code re-write. ic->raw_xmit need a pointer to ieee80211_node
for the destination node (da). I have reorganized the code so that
a pointer to the da node is searched for in the end & in one place.
* Make mesh_find_txnode public to be used by HWMP, renamed to
ieee80211_mesh_finx_txnode;
* changed the argument from ieee80211_node to ieee80211vap for all
hwmp_send_* functions;
* removed the 'sa' argument from hwmp_send_* functions as all HWMP frames
have the source address equal to vap->iv_myaddr;
* Modified hwmp_send_action so that if da is MULTCAST ni=vap->iv_bss
otherwise we called ieee80211_mesh_find_txnode. Also no need to hold
a reference in this functions if da is not MULTICAST as by finding the
node it became referenced in ieee80211_find_txnode;
Approved by: adrian (mentor)
Diffstat (limited to 'sys/net80211/ieee80211_mesh.h')
-rw-r--r-- | sys/net80211/ieee80211_mesh.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/net80211/ieee80211_mesh.h b/sys/net80211/ieee80211_mesh.h index 84a3ef7..5dc2b2c 100644 --- a/sys/net80211/ieee80211_mesh.h +++ b/sys/net80211/ieee80211_mesh.h @@ -571,6 +571,9 @@ struct ieee80211_mesh_gate_route * const uint8_t *, struct ieee80211_mesh_route *); void ieee80211_mesh_forward_to_gates(struct ieee80211vap *, struct ieee80211_mesh_route *); +struct ieee80211_node * + ieee80211_mesh_find_txnode(struct ieee80211vap *, + const uint8_t [IEEE80211_ADDR_LEN]); /* * Return non-zero if proxy operation is enabled. |