aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2008-02-23 09:17:07 -0500
committerJohn W. Linville <linville@tuxdriver.com>2008-03-06 15:30:41 -0500
commit6032f934c818e5c3435c9f17274fe1983f53c6b4 (patch)
treec095cb07ffb67dd81df0d4d0573e060e132fe082 /net/mac80211
parent2ec600d672e74488f8d1acf67a0a2baed222564c (diff)
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>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/ieee80211.c1
-rw-r--r--net/mac80211/ieee80211_iface.c1
-rw-r--r--net/mac80211/rx.c10
-rw-r--r--net/mac80211/util.c1
4 files changed, 13 insertions, 0 deletions
diff --git a/net/mac80211/ieee80211.c b/net/mac80211/ieee80211.c
index 2133c9fd27a4..1ddb8e1b6ab6 100644
--- a/net/mac80211/ieee80211.c
+++ b/net/mac80211/ieee80211.c
@@ -258,6 +258,7 @@ static int ieee80211_open(struct net_device *dev)
258 case IEEE80211_IF_TYPE_STA: 258 case IEEE80211_IF_TYPE_STA:
259 case IEEE80211_IF_TYPE_MNTR: 259 case IEEE80211_IF_TYPE_MNTR:
260 case IEEE80211_IF_TYPE_IBSS: 260 case IEEE80211_IF_TYPE_IBSS:
261 case IEEE80211_IF_TYPE_MESH_POINT:
261 /* no special treatment */ 262 /* no special treatment */
262 break; 263 break;
263 case IEEE80211_IF_TYPE_INVALID: 264 case IEEE80211_IF_TYPE_INVALID:
diff --git a/net/mac80211/ieee80211_iface.c b/net/mac80211/ieee80211_iface.c
index 677705046c6d..9523aeb71032 100644
--- a/net/mac80211/ieee80211_iface.c
+++ b/net/mac80211/ieee80211_iface.c
@@ -235,6 +235,7 @@ void ieee80211_if_reinit(struct net_device *dev)
235#endif /* CONFIG_MAC80211_VERBOSE_DEBUG */ 235#endif /* CONFIG_MAC80211_VERBOSE_DEBUG */
236 } 236 }
237 break; 237 break;
238 case IEEE80211_IF_TYPE_MESH_POINT:
238 case IEEE80211_IF_TYPE_STA: 239 case IEEE80211_IF_TYPE_STA:
239 case IEEE80211_IF_TYPE_IBSS: 240 case IEEE80211_IF_TYPE_IBSS:
240 kfree(sdata->u.sta.extra_ie); 241 kfree(sdata->u.sta.extra_ie);
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 48574f6c0e74..b7eeae0d3956 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1713,6 +1713,16 @@ static int prepare_for_handlers(struct ieee80211_sub_if_data *sdata,
1713 rx->sta = ieee80211_ibss_add_sta(sdata->dev, rx->skb, 1713 rx->sta = ieee80211_ibss_add_sta(sdata->dev, rx->skb,
1714 bssid, hdr->addr2); 1714 bssid, hdr->addr2);
1715 break; 1715 break;
1716 case IEEE80211_IF_TYPE_MESH_POINT:
1717 if (!multicast &&
1718 compare_ether_addr(sdata->dev->dev_addr,
1719 hdr->addr1) != 0) {
1720 if (!(sdata->dev->flags & IFF_PROMISC))
1721 return 0;
1722
1723 rx->flags &= ~IEEE80211_TXRXD_RXRA_MATCH;
1724 }
1725 break;
1716 case IEEE80211_IF_TYPE_VLAN: 1726 case IEEE80211_IF_TYPE_VLAN:
1717 case IEEE80211_IF_TYPE_AP: 1727 case IEEE80211_IF_TYPE_AP:
1718 if (!bssid) { 1728 if (!bssid) {
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index f64804fed0a9..790c32f894c0 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -382,6 +382,7 @@ void ieee80211_iterate_active_interfaces(
382 case IEEE80211_IF_TYPE_STA: 382 case IEEE80211_IF_TYPE_STA:
383 case IEEE80211_IF_TYPE_IBSS: 383 case IEEE80211_IF_TYPE_IBSS:
384 case IEEE80211_IF_TYPE_WDS: 384 case IEEE80211_IF_TYPE_WDS:
385 case IEEE80211_IF_TYPE_MESH_POINT:
385 break; 386 break;
386 } 387 }
387 if (sdata->dev == local->mdev) 388 if (sdata->dev == local->mdev)