mac80211: Rewrote code for checking if destinations are proxied.
PATCH v2 1/1 mac80211: Rewrote code for checking if destinations are proxied.
Rewrote code for checking if the destination is proxied by a mesh portal, to facilitate better understanding of the functionality.
Signed-off-by Joel A Fernandes <[email protected]>
Acked-by Javier Cardona <[email protected]>
--
These changes are incremental to the patch "mac80211: Fix mesh portal communication with other mesh nodes" which was merged into wireless-testing (commit f76b57b47e5fd423f9827c7b0ba7bbd06cca6b9b). Resending the patch as v2 because Thunderbird managed to mess up the formatting yet again. --
net/mac80211/tx.c +4 -5
@@ -1815,19 +1815,18 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb, mppath =mpp_path_lookup (skb->data, sdata);/* -* Do not use address extension, if it is a packet from -* the same interface and the destination is not being -* proxied by any other mest point. +* Use address extension if it is a packet from another interface or if +* we know the destination is being proxied by a portal (i.e. portal address +* differs from proxied address) */ if (compare_ether_addr (sdata->vif.addr, skb->data +ETH_ALEN ) ==0 && - (!mppath || !compare_ether_addr (mppath->mpp, skb->data))) { + !(mppath &&compare_ether_addr (mppath->mpp, skb->data))) { hdrlen =ieee80211_fill_mesh_addresses (&hdr, &fc, skb->data, skb->data +ETH_ALEN ); meshhdrlen =ieee80211_new_mesh_header (&mesh_hdr, sdata,NULL ,NULL ); }else { -/* packet from other interface */ int is_mesh_mcast =1 ;const u8 *mesh_da;