提交 011bfcc4 编写于 作者: J Johannes Berg 提交者: David S. Miller

[MAC80211]: remove key threshold stuff

This patch removes the key threshold stuff from mac80211.
I have patches for later that add it as a per-key setting
to nl/cfg80211.
Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
Signed-off-by: NMichael Wu <flamingice@sourmilk.net>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 72abd81b
......@@ -90,8 +90,6 @@ DEBUGFS_READONLY_FILE(antenna_sel_rx, 20, "%d",
local->hw.conf.antenna_sel_rx);
DEBUGFS_READONLY_FILE(bridge_packets, 20, "%d",
local->bridge_packets);
DEBUGFS_READONLY_FILE(key_tx_rx_threshold, 20, "%d",
local->key_tx_rx_threshold);
DEBUGFS_READONLY_FILE(rts_threshold, 20, "%d",
local->rts_threshold);
DEBUGFS_READONLY_FILE(fragmentation_threshold, 20, "%d",
......@@ -301,7 +299,6 @@ void debugfs_hw_add(struct ieee80211_local *local)
DEBUGFS_ADD(antenna_sel_tx);
DEBUGFS_ADD(antenna_sel_rx);
DEBUGFS_ADD(bridge_packets);
DEBUGFS_ADD(key_tx_rx_threshold);
DEBUGFS_ADD(rts_threshold);
DEBUGFS_ADD(fragmentation_threshold);
DEBUGFS_ADD(short_retry_limit);
......@@ -364,7 +361,6 @@ void debugfs_hw_del(struct ieee80211_local *local)
DEBUGFS_DEL(antenna_sel_tx);
DEBUGFS_DEL(antenna_sel_rx);
DEBUGFS_DEL(bridge_packets);
DEBUGFS_DEL(key_tx_rx_threshold);
DEBUGFS_DEL(rts_threshold);
DEBUGFS_DEL(fragmentation_threshold);
DEBUGFS_DEL(short_retry_limit);
......
......@@ -32,7 +32,6 @@ enum {
PRISM2_PARAM_PREAMBLE = 1003,
PRISM2_PARAM_SHORT_SLOT_TIME = 1006,
PRISM2_PARAM_NEXT_MODE = 1008,
PRISM2_PARAM_KEY_TX_RX_THRESHOLD = 1024,
PRISM2_PARAM_WIFI_WME_NOACK_TEST = 1033,
PRISM2_PARAM_SCAN_FLAGS = 1035,
PRISM2_PARAM_HW_MODES = 1036,
......
......@@ -189,41 +189,6 @@ ieee80211_rx_mgmt(struct ieee80211_local *local, struct sk_buff *skb,
netif_rx(skb);
}
void ieee80211_key_threshold_notify(struct net_device *dev,
struct ieee80211_key *key,
struct sta_info *sta)
{
struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
struct sk_buff *skb;
struct ieee80211_msg_key_notification *msg;
/* if no one will get it anyway, don't even allocate it.
* unlikely because this is only relevant for APs
* where the device must be open... */
if (unlikely(!local->apdev))
return;
skb = dev_alloc_skb(sizeof(struct ieee80211_frame_info) +
sizeof(struct ieee80211_msg_key_notification));
if (!skb)
return;
skb_reserve(skb, sizeof(struct ieee80211_frame_info));
msg = (struct ieee80211_msg_key_notification *)
skb_put(skb, sizeof(struct ieee80211_msg_key_notification));
msg->tx_rx_count = key->tx_rx_count;
memcpy(msg->ifname, dev->name, IFNAMSIZ);
if (sta)
memcpy(msg->addr, sta->addr, ETH_ALEN);
else
memset(msg->addr, 0xff, ETH_ALEN);
key->tx_rx_count = 0;
ieee80211_rx_mgmt(local, skb, NULL,
ieee80211_msg_key_threshold_notification);
}
static int ieee80211_mgmt_open(struct net_device *dev)
{
struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
......
......@@ -53,7 +53,7 @@ enum ieee80211_msg_type {
/* hole at 6, was monitor but never sent to userspace */
ieee80211_msg_sta_not_assoc = 7,
/* 8 was ieee80211_msg_set_aid_for_sta */
ieee80211_msg_key_threshold_notification = 9,
/* 9 was ieee80211_msg_key_threshold_notification */
/* 11 was ieee80211_msg_radar */
};
......
......@@ -465,9 +465,6 @@ struct ieee80211_local {
struct crypto_blkcipher *wep_tx_tfm;
struct crypto_blkcipher *wep_rx_tfm;
u32 wep_iv;
int key_tx_rx_threshold; /* number of times any key can be used in TX
* or RX before generating a rekey
* notification; 0 = notification disabled. */
int bridge_packets; /* bridge packets between associated stations and
* deliver multicast frames both back to wireless
......@@ -573,7 +570,6 @@ struct ieee80211_local {
struct dentry *antenna_sel_tx;
struct dentry *antenna_sel_rx;
struct dentry *bridge_packets;
struct dentry *key_tx_rx_threshold;
struct dentry *rts_threshold;
struct dentry *fragmentation_threshold;
struct dentry *short_retry_limit;
......@@ -724,9 +720,6 @@ void ieee80211_if_setup(struct net_device *dev);
void ieee80211_if_mgmt_setup(struct net_device *dev);
struct ieee80211_rate *ieee80211_get_rate(struct ieee80211_local *local,
int phymode, int hwrate);
void ieee80211_key_threshold_notify(struct net_device *dev,
struct ieee80211_key *key,
struct sta_info *sta);
/* ieee80211_ioctl.c */
extern const struct iw_handler_def ieee80211_iw_handler_def;
......
......@@ -912,10 +912,6 @@ static int ieee80211_ioctl_prism2_param(struct net_device *dev,
local->next_mode = hostapd_mode_to_mode(value);
break;
case PRISM2_PARAM_KEY_TX_RX_THRESHOLD:
local->key_tx_rx_threshold = value;
break;
case PRISM2_PARAM_WIFI_WME_NOACK_TEST:
local->wifi_wme_noack_test = value;
break;
......@@ -1011,10 +1007,6 @@ static int ieee80211_ioctl_get_prism2_param(struct net_device *dev,
*param = local->next_mode;
break;
case PRISM2_PARAM_KEY_TX_RX_THRESHOLD:
*param = local->key_tx_rx_threshold;
break;
case PRISM2_PARAM_WIFI_WME_NOACK_TEST:
*param = local->wifi_wme_noack_test;
break;
......
......@@ -409,12 +409,7 @@ ieee80211_rx_h_load_key(struct ieee80211_txrx_data *rx)
if (rx->key) {
rx->key->tx_rx_count++;
if (unlikely(rx->local->key_tx_rx_threshold &&
rx->key->tx_rx_count >
rx->local->key_tx_rx_threshold)) {
ieee80211_key_threshold_notify(rx->dev, rx->key,
rx->sta);
}
/* TODO: add threshold stuff again */
}
return TXRX_CONTINUE;
......
......@@ -451,12 +451,7 @@ ieee80211_tx_h_select_key(struct ieee80211_txrx_data *tx)
if (tx->key) {
tx->key->tx_rx_count++;
if (unlikely(tx->local->key_tx_rx_threshold &&
tx->key->tx_rx_count >
tx->local->key_tx_rx_threshold)) {
ieee80211_key_threshold_notify(tx->dev, tx->key,
tx->sta);
}
/* TODO: add threshold stuff again */
}
return TXRX_CONTINUE;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册