aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/mac80211/debugfs.c4
-rw-r--r--net/mac80211/hostapd_ioctl.h1
-rw-r--r--net/mac80211/ieee80211.c35
-rw-r--r--net/mac80211/ieee80211_common.h2
-rw-r--r--net/mac80211/ieee80211_i.h7
-rw-r--r--net/mac80211/ieee80211_ioctl.c8
-rw-r--r--net/mac80211/rx.c7
-rw-r--r--net/mac80211/tx.c7
8 files changed, 3 insertions, 68 deletions
diff --git a/net/mac80211/debugfs.c b/net/mac80211/debugfs.c
index 12db9adc0361..60514b2c97b9 100644
--- a/net/mac80211/debugfs.c
+++ b/net/mac80211/debugfs.c
@@ -90,8 +90,6 @@ DEBUGFS_READONLY_FILE(antenna_sel_rx, 20, "%d",
90 local->hw.conf.antenna_sel_rx); 90 local->hw.conf.antenna_sel_rx);
91DEBUGFS_READONLY_FILE(bridge_packets, 20, "%d", 91DEBUGFS_READONLY_FILE(bridge_packets, 20, "%d",
92 local->bridge_packets); 92 local->bridge_packets);
93DEBUGFS_READONLY_FILE(key_tx_rx_threshold, 20, "%d",
94 local->key_tx_rx_threshold);
95DEBUGFS_READONLY_FILE(rts_threshold, 20, "%d", 93DEBUGFS_READONLY_FILE(rts_threshold, 20, "%d",
96 local->rts_threshold); 94 local->rts_threshold);
97DEBUGFS_READONLY_FILE(fragmentation_threshold, 20, "%d", 95DEBUGFS_READONLY_FILE(fragmentation_threshold, 20, "%d",
@@ -301,7 +299,6 @@ void debugfs_hw_add(struct ieee80211_local *local)
301 DEBUGFS_ADD(antenna_sel_tx); 299 DEBUGFS_ADD(antenna_sel_tx);
302 DEBUGFS_ADD(antenna_sel_rx); 300 DEBUGFS_ADD(antenna_sel_rx);
303 DEBUGFS_ADD(bridge_packets); 301 DEBUGFS_ADD(bridge_packets);
304 DEBUGFS_ADD(key_tx_rx_threshold);
305 DEBUGFS_ADD(rts_threshold); 302 DEBUGFS_ADD(rts_threshold);
306 DEBUGFS_ADD(fragmentation_threshold); 303 DEBUGFS_ADD(fragmentation_threshold);
307 DEBUGFS_ADD(short_retry_limit); 304 DEBUGFS_ADD(short_retry_limit);
@@ -364,7 +361,6 @@ void debugfs_hw_del(struct ieee80211_local *local)
364 DEBUGFS_DEL(antenna_sel_tx); 361 DEBUGFS_DEL(antenna_sel_tx);
365 DEBUGFS_DEL(antenna_sel_rx); 362 DEBUGFS_DEL(antenna_sel_rx);
366 DEBUGFS_DEL(bridge_packets); 363 DEBUGFS_DEL(bridge_packets);
367 DEBUGFS_DEL(key_tx_rx_threshold);
368 DEBUGFS_DEL(rts_threshold); 364 DEBUGFS_DEL(rts_threshold);
369 DEBUGFS_DEL(fragmentation_threshold); 365 DEBUGFS_DEL(fragmentation_threshold);
370 DEBUGFS_DEL(short_retry_limit); 366 DEBUGFS_DEL(short_retry_limit);
diff --git a/net/mac80211/hostapd_ioctl.h b/net/mac80211/hostapd_ioctl.h
index ac812ec9fa2f..2300c5516458 100644
--- a/net/mac80211/hostapd_ioctl.h
+++ b/net/mac80211/hostapd_ioctl.h
@@ -32,7 +32,6 @@ enum {
32 PRISM2_PARAM_PREAMBLE = 1003, 32 PRISM2_PARAM_PREAMBLE = 1003,
33 PRISM2_PARAM_SHORT_SLOT_TIME = 1006, 33 PRISM2_PARAM_SHORT_SLOT_TIME = 1006,
34 PRISM2_PARAM_NEXT_MODE = 1008, 34 PRISM2_PARAM_NEXT_MODE = 1008,
35 PRISM2_PARAM_KEY_TX_RX_THRESHOLD = 1024,
36 PRISM2_PARAM_WIFI_WME_NOACK_TEST = 1033, 35 PRISM2_PARAM_WIFI_WME_NOACK_TEST = 1033,
37 PRISM2_PARAM_SCAN_FLAGS = 1035, 36 PRISM2_PARAM_SCAN_FLAGS = 1035,
38 PRISM2_PARAM_HW_MODES = 1036, 37 PRISM2_PARAM_HW_MODES = 1036,
diff --git a/net/mac80211/ieee80211.c b/net/mac80211/ieee80211.c
index 23853331e8db..5e924588e9a2 100644
--- a/net/mac80211/ieee80211.c
+++ b/net/mac80211/ieee80211.c
@@ -189,41 +189,6 @@ ieee80211_rx_mgmt(struct ieee80211_local *local, struct sk_buff *skb,
189 netif_rx(skb); 189 netif_rx(skb);
190} 190}
191 191
192void ieee80211_key_threshold_notify(struct net_device *dev,
193 struct ieee80211_key *key,
194 struct sta_info *sta)
195{
196 struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
197 struct sk_buff *skb;
198 struct ieee80211_msg_key_notification *msg;
199
200 /* if no one will get it anyway, don't even allocate it.
201 * unlikely because this is only relevant for APs
202 * where the device must be open... */
203 if (unlikely(!local->apdev))
204 return;
205
206 skb = dev_alloc_skb(sizeof(struct ieee80211_frame_info) +
207 sizeof(struct ieee80211_msg_key_notification));
208 if (!skb)
209 return;
210
211 skb_reserve(skb, sizeof(struct ieee80211_frame_info));
212 msg = (struct ieee80211_msg_key_notification *)
213 skb_put(skb, sizeof(struct ieee80211_msg_key_notification));
214 msg->tx_rx_count = key->tx_rx_count;
215 memcpy(msg->ifname, dev->name, IFNAMSIZ);
216 if (sta)
217 memcpy(msg->addr, sta->addr, ETH_ALEN);
218 else
219 memset(msg->addr, 0xff, ETH_ALEN);
220
221 key->tx_rx_count = 0;
222
223 ieee80211_rx_mgmt(local, skb, NULL,
224 ieee80211_msg_key_threshold_notification);
225}
226
227static int ieee80211_mgmt_open(struct net_device *dev) 192static int ieee80211_mgmt_open(struct net_device *dev)
228{ 193{
229 struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); 194 struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
diff --git a/net/mac80211/ieee80211_common.h b/net/mac80211/ieee80211_common.h
index 5b5fb7bcfd72..c15295d43d87 100644
--- a/net/mac80211/ieee80211_common.h
+++ b/net/mac80211/ieee80211_common.h
@@ -53,7 +53,7 @@ enum ieee80211_msg_type {
53 /* hole at 6, was monitor but never sent to userspace */ 53 /* hole at 6, was monitor but never sent to userspace */
54 ieee80211_msg_sta_not_assoc = 7, 54 ieee80211_msg_sta_not_assoc = 7,
55 /* 8 was ieee80211_msg_set_aid_for_sta */ 55 /* 8 was ieee80211_msg_set_aid_for_sta */
56 ieee80211_msg_key_threshold_notification = 9, 56 /* 9 was ieee80211_msg_key_threshold_notification */
57 /* 11 was ieee80211_msg_radar */ 57 /* 11 was ieee80211_msg_radar */
58}; 58};
59 59
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 14e8c366af3d..c3f6f89755b1 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -465,9 +465,6 @@ struct ieee80211_local {
465 struct crypto_blkcipher *wep_tx_tfm; 465 struct crypto_blkcipher *wep_tx_tfm;
466 struct crypto_blkcipher *wep_rx_tfm; 466 struct crypto_blkcipher *wep_rx_tfm;
467 u32 wep_iv; 467 u32 wep_iv;
468 int key_tx_rx_threshold; /* number of times any key can be used in TX
469 * or RX before generating a rekey
470 * notification; 0 = notification disabled. */
471 468
472 int bridge_packets; /* bridge packets between associated stations and 469 int bridge_packets; /* bridge packets between associated stations and
473 * deliver multicast frames both back to wireless 470 * deliver multicast frames both back to wireless
@@ -573,7 +570,6 @@ struct ieee80211_local {
573 struct dentry *antenna_sel_tx; 570 struct dentry *antenna_sel_tx;
574 struct dentry *antenna_sel_rx; 571 struct dentry *antenna_sel_rx;
575 struct dentry *bridge_packets; 572 struct dentry *bridge_packets;
576 struct dentry *key_tx_rx_threshold;
577 struct dentry *rts_threshold; 573 struct dentry *rts_threshold;
578 struct dentry *fragmentation_threshold; 574 struct dentry *fragmentation_threshold;
579 struct dentry *short_retry_limit; 575 struct dentry *short_retry_limit;
@@ -724,9 +720,6 @@ void ieee80211_if_setup(struct net_device *dev);
724void ieee80211_if_mgmt_setup(struct net_device *dev); 720void ieee80211_if_mgmt_setup(struct net_device *dev);
725struct ieee80211_rate *ieee80211_get_rate(struct ieee80211_local *local, 721struct ieee80211_rate *ieee80211_get_rate(struct ieee80211_local *local,
726 int phymode, int hwrate); 722 int phymode, int hwrate);
727void ieee80211_key_threshold_notify(struct net_device *dev,
728 struct ieee80211_key *key,
729 struct sta_info *sta);
730 723
731/* ieee80211_ioctl.c */ 724/* ieee80211_ioctl.c */
732extern const struct iw_handler_def ieee80211_iw_handler_def; 725extern const struct iw_handler_def ieee80211_iw_handler_def;
diff --git a/net/mac80211/ieee80211_ioctl.c b/net/mac80211/ieee80211_ioctl.c
index b4cce441d7e6..99023d0d7edc 100644
--- a/net/mac80211/ieee80211_ioctl.c
+++ b/net/mac80211/ieee80211_ioctl.c
@@ -912,10 +912,6 @@ static int ieee80211_ioctl_prism2_param(struct net_device *dev,
912 local->next_mode = hostapd_mode_to_mode(value); 912 local->next_mode = hostapd_mode_to_mode(value);
913 break; 913 break;
914 914
915 case PRISM2_PARAM_KEY_TX_RX_THRESHOLD:
916 local->key_tx_rx_threshold = value;
917 break;
918
919 case PRISM2_PARAM_WIFI_WME_NOACK_TEST: 915 case PRISM2_PARAM_WIFI_WME_NOACK_TEST:
920 local->wifi_wme_noack_test = value; 916 local->wifi_wme_noack_test = value;
921 break; 917 break;
@@ -1011,10 +1007,6 @@ static int ieee80211_ioctl_get_prism2_param(struct net_device *dev,
1011 *param = local->next_mode; 1007 *param = local->next_mode;
1012 break; 1008 break;
1013 1009
1014 case PRISM2_PARAM_KEY_TX_RX_THRESHOLD:
1015 *param = local->key_tx_rx_threshold;
1016 break;
1017
1018 case PRISM2_PARAM_WIFI_WME_NOACK_TEST: 1010 case PRISM2_PARAM_WIFI_WME_NOACK_TEST:
1019 *param = local->wifi_wme_noack_test; 1011 *param = local->wifi_wme_noack_test;
1020 break; 1012 break;
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index cf2a72f89d68..9700c1c5b3cf 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -409,12 +409,7 @@ ieee80211_rx_h_load_key(struct ieee80211_txrx_data *rx)
409 409
410 if (rx->key) { 410 if (rx->key) {
411 rx->key->tx_rx_count++; 411 rx->key->tx_rx_count++;
412 if (unlikely(rx->local->key_tx_rx_threshold && 412 /* TODO: add threshold stuff again */
413 rx->key->tx_rx_count >
414 rx->local->key_tx_rx_threshold)) {
415 ieee80211_key_threshold_notify(rx->dev, rx->key,
416 rx->sta);
417 }
418 } 413 }
419 414
420 return TXRX_CONTINUE; 415 return TXRX_CONTINUE;
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 04b4fa9c69ea..e33f7641e6b4 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -451,12 +451,7 @@ ieee80211_tx_h_select_key(struct ieee80211_txrx_data *tx)
451 451
452 if (tx->key) { 452 if (tx->key) {
453 tx->key->tx_rx_count++; 453 tx->key->tx_rx_count++;
454 if (unlikely(tx->local->key_tx_rx_threshold && 454 /* TODO: add threshold stuff again */
455 tx->key->tx_rx_count >
456 tx->local->key_tx_rx_threshold)) {
457 ieee80211_key_threshold_notify(tx->dev, tx->key,
458 tx->sta);
459 }
460 } 455 }
461 456
462 return TXRX_CONTINUE; 457 return TXRX_CONTINUE;