mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-10 07:50:04 +00:00
mac80211: mesh: add missing case to PERR processing
When the nexthop is unable to resolve its own nexthop it will send back a PERR with a zero target_sn. According to section 13.10.11.4.3 step b in the 2012 standard that perr should be forwarded and the associated mpath->sn should be incremented. Neither one of those was happening which is rather bad because the originator was not told that packets are black holing. Signed-off-by: Alexis Green <agreen@cococorp.com> CC: Jesse Jones <jjones@cococorp.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
0fabfaafec
commit
703ee73a41
@ -736,9 +736,12 @@ static void hwmp_perr_frame_process(struct ieee80211_sub_if_data *sdata,
|
||||
if (mpath->flags & MESH_PATH_ACTIVE &&
|
||||
ether_addr_equal(ta, sta->sta.addr) &&
|
||||
(!(mpath->flags & MESH_PATH_SN_VALID) ||
|
||||
SN_GT(target_sn, mpath->sn))) {
|
||||
SN_GT(target_sn, mpath->sn) || target_sn == 0)) {
|
||||
mpath->flags &= ~MESH_PATH_ACTIVE;
|
||||
mpath->sn = target_sn;
|
||||
if (target_sn != 0)
|
||||
mpath->sn = target_sn;
|
||||
else
|
||||
mpath->sn += 1;
|
||||
spin_unlock_bh(&mpath->state_lock);
|
||||
if (!ifmsh->mshcfg.dot11MeshForwarding)
|
||||
goto endperr;
|
||||
|
Loading…
x
Reference in New Issue
Block a user