forked from Minki/linux
mac80211: add mesh interface type
This adds the mesh interface type. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
2ec600d672
commit
6032f934c8
@ -443,6 +443,7 @@ enum ieee80211_if_types {
|
||||
IEEE80211_IF_TYPE_AP,
|
||||
IEEE80211_IF_TYPE_STA,
|
||||
IEEE80211_IF_TYPE_IBSS,
|
||||
IEEE80211_IF_TYPE_MESH_POINT,
|
||||
IEEE80211_IF_TYPE_MNTR,
|
||||
IEEE80211_IF_TYPE_WDS,
|
||||
IEEE80211_IF_TYPE_VLAN,
|
||||
|
@ -258,6 +258,7 @@ static int ieee80211_open(struct net_device *dev)
|
||||
case IEEE80211_IF_TYPE_STA:
|
||||
case IEEE80211_IF_TYPE_MNTR:
|
||||
case IEEE80211_IF_TYPE_IBSS:
|
||||
case IEEE80211_IF_TYPE_MESH_POINT:
|
||||
/* no special treatment */
|
||||
break;
|
||||
case IEEE80211_IF_TYPE_INVALID:
|
||||
|
@ -235,6 +235,7 @@ void ieee80211_if_reinit(struct net_device *dev)
|
||||
#endif /* CONFIG_MAC80211_VERBOSE_DEBUG */
|
||||
}
|
||||
break;
|
||||
case IEEE80211_IF_TYPE_MESH_POINT:
|
||||
case IEEE80211_IF_TYPE_STA:
|
||||
case IEEE80211_IF_TYPE_IBSS:
|
||||
kfree(sdata->u.sta.extra_ie);
|
||||
|
@ -1713,6 +1713,16 @@ static int prepare_for_handlers(struct ieee80211_sub_if_data *sdata,
|
||||
rx->sta = ieee80211_ibss_add_sta(sdata->dev, rx->skb,
|
||||
bssid, hdr->addr2);
|
||||
break;
|
||||
case IEEE80211_IF_TYPE_MESH_POINT:
|
||||
if (!multicast &&
|
||||
compare_ether_addr(sdata->dev->dev_addr,
|
||||
hdr->addr1) != 0) {
|
||||
if (!(sdata->dev->flags & IFF_PROMISC))
|
||||
return 0;
|
||||
|
||||
rx->flags &= ~IEEE80211_TXRXD_RXRA_MATCH;
|
||||
}
|
||||
break;
|
||||
case IEEE80211_IF_TYPE_VLAN:
|
||||
case IEEE80211_IF_TYPE_AP:
|
||||
if (!bssid) {
|
||||
|
@ -382,6 +382,7 @@ void ieee80211_iterate_active_interfaces(
|
||||
case IEEE80211_IF_TYPE_STA:
|
||||
case IEEE80211_IF_TYPE_IBSS:
|
||||
case IEEE80211_IF_TYPE_WDS:
|
||||
case IEEE80211_IF_TYPE_MESH_POINT:
|
||||
break;
|
||||
}
|
||||
if (sdata->dev == local->mdev)
|
||||
|
Loading…
Reference in New Issue
Block a user