Commit 7986cf95 authored by Johannes Berg's avatar Johannes Berg Committed by John W. Linville

mac80211: remove mixed-cell and userspace MLME code

Neither can currently be set from userspace, so there's no
regression potential, and neither will be supported from
userspace since the new userspace APIs allow the SME, which
is in userspace, to control all we need.
Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent ac7f9cfa
...@@ -247,8 +247,9 @@ struct mesh_preq_queue { ...@@ -247,8 +247,9 @@ struct mesh_preq_queue {
#define IEEE80211_STA_ASSOCIATED BIT(4) #define IEEE80211_STA_ASSOCIATED BIT(4)
#define IEEE80211_STA_PROBEREQ_POLL BIT(5) #define IEEE80211_STA_PROBEREQ_POLL BIT(5)
#define IEEE80211_STA_CREATE_IBSS BIT(6) #define IEEE80211_STA_CREATE_IBSS BIT(6)
#define IEEE80211_STA_MIXED_CELL BIT(7) /* hole at 7, please re-use */
#define IEEE80211_STA_WMM_ENABLED BIT(8) #define IEEE80211_STA_WMM_ENABLED BIT(8)
/* hole at 9, please re-use */
#define IEEE80211_STA_AUTO_SSID_SEL BIT(10) #define IEEE80211_STA_AUTO_SSID_SEL BIT(10)
#define IEEE80211_STA_AUTO_BSSID_SEL BIT(11) #define IEEE80211_STA_AUTO_BSSID_SEL BIT(11)
#define IEEE80211_STA_AUTO_CHANNEL_SEL BIT(12) #define IEEE80211_STA_AUTO_CHANNEL_SEL BIT(12)
...@@ -411,7 +412,6 @@ struct ieee80211_if_mesh { ...@@ -411,7 +412,6 @@ struct ieee80211_if_mesh {
* *
* @IEEE80211_SDATA_ALLMULTI: interface wants all multicast packets * @IEEE80211_SDATA_ALLMULTI: interface wants all multicast packets
* @IEEE80211_SDATA_PROMISC: interface is promisc * @IEEE80211_SDATA_PROMISC: interface is promisc
* @IEEE80211_SDATA_USERSPACE_MLME: userspace MLME is active
* @IEEE80211_SDATA_OPERATING_GMODE: operating in G-only mode * @IEEE80211_SDATA_OPERATING_GMODE: operating in G-only mode
* @IEEE80211_SDATA_DONT_BRIDGE_PACKETS: bridge packets between * @IEEE80211_SDATA_DONT_BRIDGE_PACKETS: bridge packets between
* associated stations and deliver multicast frames both * associated stations and deliver multicast frames both
...@@ -420,9 +420,8 @@ struct ieee80211_if_mesh { ...@@ -420,9 +420,8 @@ struct ieee80211_if_mesh {
enum ieee80211_sub_if_data_flags { enum ieee80211_sub_if_data_flags {
IEEE80211_SDATA_ALLMULTI = BIT(0), IEEE80211_SDATA_ALLMULTI = BIT(0),
IEEE80211_SDATA_PROMISC = BIT(1), IEEE80211_SDATA_PROMISC = BIT(1),
IEEE80211_SDATA_USERSPACE_MLME = BIT(2), IEEE80211_SDATA_OPERATING_GMODE = BIT(2),
IEEE80211_SDATA_OPERATING_GMODE = BIT(3), IEEE80211_SDATA_DONT_BRIDGE_PACKETS = BIT(3),
IEEE80211_SDATA_DONT_BRIDGE_PACKETS = BIT(4),
}; };
struct ieee80211_sub_if_data { struct ieee80211_sub_if_data {
......
...@@ -261,8 +261,7 @@ static int ieee80211_open(struct net_device *dev) ...@@ -261,8 +261,7 @@ static int ieee80211_open(struct net_device *dev)
ieee80211_bss_info_change_notify(sdata, changed); ieee80211_bss_info_change_notify(sdata, changed);
ieee80211_enable_keys(sdata); ieee80211_enable_keys(sdata);
if (sdata->vif.type == NL80211_IFTYPE_STATION && if (sdata->vif.type == NL80211_IFTYPE_STATION)
!(sdata->flags & IEEE80211_SDATA_USERSPACE_MLME))
netif_carrier_off(dev); netif_carrier_off(dev);
else else
netif_carrier_on(dev); netif_carrier_on(dev);
......
...@@ -849,8 +849,7 @@ static int ieee80211_privacy_mismatch(struct ieee80211_sub_if_data *sdata) ...@@ -849,8 +849,7 @@ static int ieee80211_privacy_mismatch(struct ieee80211_sub_if_data *sdata)
int wep_privacy; int wep_privacy;
int privacy_invoked; int privacy_invoked;
if (!ifmgd || (ifmgd->flags & (IEEE80211_STA_MIXED_CELL | if (!ifmgd || (ifmgd->flags & IEEE80211_STA_EXT_SME))
IEEE80211_STA_EXT_SME)))
return 0; return 0;
bss = ieee80211_rx_bss_get(local, ifmgd->bssid, bss = ieee80211_rx_bss_get(local, ifmgd->bssid,
......
...@@ -1877,18 +1877,13 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_data *rx) ...@@ -1877,18 +1877,13 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_data *rx)
if (ieee80211_vif_is_mesh(&sdata->vif)) if (ieee80211_vif_is_mesh(&sdata->vif))
return ieee80211_mesh_rx_mgmt(sdata, rx->skb, rx->status); return ieee80211_mesh_rx_mgmt(sdata, rx->skb, rx->status);
if (sdata->vif.type != NL80211_IFTYPE_STATION && if (sdata->vif.type != NL80211_IFTYPE_ADHOC)
sdata->vif.type != NL80211_IFTYPE_ADHOC) return ieee80211_ibss_rx_mgmt(sdata, rx->skb, rx->status);
return RX_DROP_MONITOR;
if (sdata->vif.type == NL80211_IFTYPE_STATION) { if (sdata->vif.type == NL80211_IFTYPE_STATION)
if (sdata->flags & IEEE80211_SDATA_USERSPACE_MLME)
return RX_DROP_MONITOR;
return ieee80211_sta_rx_mgmt(sdata, rx->skb, rx->status); return ieee80211_sta_rx_mgmt(sdata, rx->skb, rx->status);
}
return ieee80211_ibss_rx_mgmt(sdata, rx->skb, rx->status); return RX_DROP_MONITOR;
} }
static void ieee80211_rx_michael_mic_report(struct net_device *dev, static void ieee80211_rx_michael_mic_report(struct net_device *dev,
......
...@@ -129,9 +129,6 @@ static int ieee80211_ioctl_siwgenie(struct net_device *dev, ...@@ -129,9 +129,6 @@ static int ieee80211_ioctl_siwgenie(struct net_device *dev,
sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata = IEEE80211_DEV_TO_SUB_IF(dev);
if (sdata->flags & IEEE80211_SDATA_USERSPACE_MLME)
return -EOPNOTSUPP;
if (sdata->vif.type == NL80211_IFTYPE_STATION) { if (sdata->vif.type == NL80211_IFTYPE_STATION) {
int ret = ieee80211_sta_set_extra_ie(sdata, extra, data->length); int ret = ieee80211_sta_set_extra_ie(sdata, extra, data->length);
if (ret) if (ret)
...@@ -208,14 +205,6 @@ static int ieee80211_ioctl_siwessid(struct net_device *dev, ...@@ -208,14 +205,6 @@ static int ieee80211_ioctl_siwessid(struct net_device *dev,
sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata = IEEE80211_DEV_TO_SUB_IF(dev);
if (sdata->vif.type == NL80211_IFTYPE_STATION) { if (sdata->vif.type == NL80211_IFTYPE_STATION) {
if (sdata->flags & IEEE80211_SDATA_USERSPACE_MLME) {
if (len > IEEE80211_MAX_SSID_LEN)
return -EINVAL;
memcpy(sdata->u.mgd.ssid, ssid, len);
sdata->u.mgd.ssid_len = len;
return 0;
}
if (data->flags) if (data->flags)
sdata->u.mgd.flags &= ~IEEE80211_STA_AUTO_SSID_SEL; sdata->u.mgd.flags &= ~IEEE80211_STA_AUTO_SSID_SEL;
else else
...@@ -274,11 +263,7 @@ static int ieee80211_ioctl_siwap(struct net_device *dev, ...@@ -274,11 +263,7 @@ static int ieee80211_ioctl_siwap(struct net_device *dev,
sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata = IEEE80211_DEV_TO_SUB_IF(dev);
if (sdata->vif.type == NL80211_IFTYPE_STATION) { if (sdata->vif.type == NL80211_IFTYPE_STATION) {
int ret; int ret;
if (sdata->flags & IEEE80211_SDATA_USERSPACE_MLME) {
memcpy(sdata->u.mgd.bssid, (u8 *) &ap_addr->sa_data,
ETH_ALEN);
return 0;
}
if (is_zero_ether_addr((u8 *) &ap_addr->sa_data)) if (is_zero_ether_addr((u8 *) &ap_addr->sa_data))
sdata->u.mgd.flags |= IEEE80211_STA_AUTO_BSSID_SEL | sdata->u.mgd.flags |= IEEE80211_STA_AUTO_BSSID_SEL |
IEEE80211_STA_AUTO_CHANNEL_SEL; IEEE80211_STA_AUTO_CHANNEL_SEL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment