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: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Michael Wu <flamingice@sourmilk.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
                      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",
        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);
        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);
 
        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,
 
        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);
 
        /* 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 */
 };
 
 
        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
                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;
 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;
 
                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;
                *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;
 
 
        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;
 
 
        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;