Skip to content

Commit

Permalink
mac80211: fix the problem of forwarding from DS to DS in Mesh
Browse files Browse the repository at this point in the history
Unicast frame with unknown forwarding information always trigger
the path discovery assuming destination is always located inside the
MBSS. This patch allows the forwarding to look for mesh gate if path
discovery inside the MBSS has failed.

Reported-by: Cedric Voncken <cedric.voncken@acksys.fr>
Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  • Loading branch information
Chun-Yeow Yeoh authored and Johannes Berg committed Feb 25, 2013
1 parent 162589f commit 163df6c
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion net/mac80211/tx.c
Original file line number Diff line number Diff line change
Expand Up @@ -1844,9 +1844,24 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,
}

if (!is_multicast_ether_addr(skb->data)) {
struct sta_info *next_hop;
bool mpp_lookup = true;

mpath = mesh_path_lookup(sdata, skb->data);
if (!mpath)
if (mpath) {
mpp_lookup = false;
next_hop = rcu_dereference(mpath->next_hop);
if (!next_hop ||
!(mpath->flags & (MESH_PATH_ACTIVE |
MESH_PATH_RESOLVING)))
mpp_lookup = true;
}

if (mpp_lookup)
mppath = mpp_path_lookup(sdata, skb->data);

if (mppath && mpath)
mesh_path_del(mpath->sdata, mpath->dst);
}

/*
Expand Down

0 comments on commit 163df6c

Please sign in to comment.