diff options
author | monthadar <monthadar@FreeBSD.org> | 2013-02-07 21:28:25 +0000 |
---|---|---|
committer | monthadar <monthadar@FreeBSD.org> | 2013-02-07 21:28:25 +0000 |
commit | 94b538df94c33ff8a3c15e88e82ea11ef9bccc57 (patch) | |
tree | 96d2119b7128a9ad28292efad03b221b57892ad3 | |
parent | 989940d9efd2129ce37cfa645159588759926c15 (diff) | |
download | FreeBSD-src-94b538df94c33ff8a3c15e88e82ea11ef9bccc57.zip FreeBSD-src-94b538df94c33ff8a3c15e88e82ea11ef9bccc57.tar.gz |
Mesh HWMP: don't send an intermediate PREP for proxy entries.
* The standard is unclear about what should happen in case a mesh STA (not
marked as a mesh gate) recevies a PREQ for a destination that is marked
as proxy. Solution for now is not to do intermediate reply at all, and
let the PREQ reach the mesh gate;
Approved by: adrian (mentor)
-rw-r--r-- | sys/net80211/ieee80211_hwmp.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/net80211/ieee80211_hwmp.c b/sys/net80211/ieee80211_hwmp.c index 8f1a102..4602692 100644 --- a/sys/net80211/ieee80211_hwmp.c +++ b/sys/net80211/ieee80211_hwmp.c @@ -1133,9 +1133,11 @@ hwmp_recv_preq(struct ieee80211vap *vap, struct ieee80211_node *ni, /* * We have a valid route to this node. + * NB: if target is proxy dont reply. */ if (rttarg != NULL && - (rttarg->rt_flags & IEEE80211_MESHRT_FLAGS_VALID)) { + rttarg->rt_flags & IEEE80211_MESHRT_FLAGS_VALID && + !(rttarg->rt_flags & IEEE80211_MESHRT_FLAGS_PROXY)) { /* * Check if we can send an intermediate Path Reply, * i.e., Target Only bit is not set and target is not |