|
@@ -236,51 +236,6 @@ ieee80211_rx_frame_mgmt(struct ieee80211_device *ieee, struct sk_buff *skb,
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
- #ifdef NOT_YET
|
|
|
- if (ieee->iw_mode == IW_MODE_MASTER) {
|
|
|
- printk(KERN_DEBUG "%s: Master mode not yet suppported.\n",
|
|
|
- ieee->dev->name);
|
|
|
- return 0;
|
|
|
-/*
|
|
|
- hostap_update_sta_ps(ieee, (struct hostap_ieee80211_hdr_4addr *)
|
|
|
- skb->data);*/
|
|
|
- }
|
|
|
-
|
|
|
- if (ieee->hostapd && type == IEEE80211_TYPE_MGMT) {
|
|
|
- if (stype == WLAN_FC_STYPE_BEACON &&
|
|
|
- ieee->iw_mode == IW_MODE_MASTER) {
|
|
|
- struct sk_buff *skb2;
|
|
|
- /* Process beacon frames also in kernel driver to
|
|
|
- * update STA(AP) table statistics */
|
|
|
- skb2 = skb_clone(skb, GFP_ATOMIC);
|
|
|
- if (skb2)
|
|
|
- hostap_rx(skb2->dev, skb2, rx_stats);
|
|
|
- }
|
|
|
-
|
|
|
- /* send management frames to the user space daemon for
|
|
|
- * processing */
|
|
|
- ieee->apdevstats.rx_packets++;
|
|
|
- ieee->apdevstats.rx_bytes += skb->len;
|
|
|
- prism2_rx_80211(ieee->apdev, skb, rx_stats, PRISM2_RX_MGMT);
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
- if (ieee->iw_mode == IW_MODE_MASTER) {
|
|
|
- if (type != WLAN_FC_TYPE_MGMT && type != WLAN_FC_TYPE_CTRL) {
|
|
|
- printk(KERN_DEBUG "%s: unknown management frame "
|
|
|
- "(type=0x%02x, stype=0x%02x) dropped\n",
|
|
|
- skb->dev->name, type, stype);
|
|
|
- return -1;
|
|
|
- }
|
|
|
-
|
|
|
- hostap_rx(skb->dev, skb, rx_stats);
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
- printk(KERN_DEBUG "%s: hostap_rx_frame_mgmt: management frame "
|
|
|
- "received in non-Host AP mode\n", skb->dev->name);
|
|
|
- return -1;
|
|
|
- #endif
|
|
|
}
|
|
|
|
|
|
|
|
@@ -923,14 +878,6 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
|
|
|
PRX_TS_RECORD pTS = NULL;
|
|
|
//bool bIsAggregateFrame = false;
|
|
|
//added by amy for reorder
|
|
|
-#ifdef NOT_YET
|
|
|
- struct net_device *wds = NULL;
|
|
|
- struct sk_buff *skb2 = NULL;
|
|
|
- struct net_device *wds = NULL;
|
|
|
- int frame_authorized = 0;
|
|
|
- int from_assoc_ap = 0;
|
|
|
- void *sta = NULL;
|
|
|
-#endif
|
|
|
// u16 qos_ctl = 0;
|
|
|
u8 dst[ETH_ALEN];
|
|
|
u8 src[ETH_ALEN];
|
|
@@ -967,22 +914,6 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
|
|
|
}
|
|
|
|
|
|
//IEEE80211_DEBUG_DATA(IEEE80211_DL_DATA, skb->data, skb->len);
|
|
|
-#ifdef NOT_YET
|
|
|
- /* Put this code here so that we avoid duplicating it in all
|
|
|
- * Rx paths. - Jean II */
|
|
|
-#ifdef IW_WIRELESS_SPY /* defined in iw_handler.h */
|
|
|
- /* If spy monitoring on */
|
|
|
- if (iface->spy_data.spy_number > 0) {
|
|
|
- struct iw_quality wstats;
|
|
|
- wstats.level = rx_stats->rssi;
|
|
|
- wstats.noise = rx_stats->noise;
|
|
|
- wstats.updated = 6; /* No qual value */
|
|
|
- /* Update spy records */
|
|
|
- wireless_spy_update(dev, hdr->addr2, &wstats);
|
|
|
- }
|
|
|
-#endif /* IW_WIRELESS_SPY */
|
|
|
- hostap_update_rx_stats(local->ap, hdr, rx_stats);
|
|
|
-#endif
|
|
|
|
|
|
if (ieee->iw_mode == IW_MODE_MONITOR) {
|
|
|
ieee80211_monitor_rx(ieee, skb, rx_stats);
|
|
@@ -996,20 +927,6 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
|
|
|
if (skb->len >= hdrlen + 3)
|
|
|
idx = skb->data[hdrlen + 3] >> 6;
|
|
|
crypt = ieee->crypt[idx];
|
|
|
-#ifdef NOT_YET
|
|
|
- sta = NULL;
|
|
|
-
|
|
|
- /* Use station specific key to override default keys if the
|
|
|
- * receiver address is a unicast address ("individual RA"). If
|
|
|
- * bcrx_sta_key parameter is set, station specific key is used
|
|
|
- * even with broad/multicast targets (this is against IEEE
|
|
|
- * 802.11, but makes it easier to use different keys with
|
|
|
- * stations that do not support WEP key mapping). */
|
|
|
-
|
|
|
- if (!(hdr->addr1[0] & 0x01) || local->bcrx_sta_key)
|
|
|
- (void) hostap_handle_sta_crypto(local, hdr, &crypt,
|
|
|
- &sta);
|
|
|
-#endif
|
|
|
|
|
|
/* allow NULL decrypt to indicate an station specific override
|
|
|
* for default encryption */
|
|
@@ -1108,46 +1025,9 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
-#ifdef NOT_YET
|
|
|
- if (hostap_rx_frame_wds(ieee, hdr, fc, &wds))
|
|
|
- goto rx_dropped;
|
|
|
- if (wds) {
|
|
|
- skb->dev = dev = wds;
|
|
|
- stats = hostap_get_stats(dev);
|
|
|
- }
|
|
|
-
|
|
|
- if (ieee->iw_mode == IW_MODE_MASTER && !wds &&
|
|
|
- (fc & (IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS)) == IEEE80211_FCTL_FROMDS &&
|
|
|
- ieee->stadev &&
|
|
|
- memcmp(hdr->addr2, ieee->assoc_ap_addr, ETH_ALEN) == 0) {
|
|
|
- /* Frame from BSSID of the AP for which we are a client */
|
|
|
- skb->dev = dev = ieee->stadev;
|
|
|
- stats = hostap_get_stats(dev);
|
|
|
- from_assoc_ap = 1;
|
|
|
- }
|
|
|
-#endif
|
|
|
|
|
|
dev->last_rx = jiffies;
|
|
|
|
|
|
-#ifdef NOT_YET
|
|
|
- if ((ieee->iw_mode == IW_MODE_MASTER ||
|
|
|
- ieee->iw_mode == IW_MODE_REPEAT) &&
|
|
|
- !from_assoc_ap) {
|
|
|
- switch (hostap_handle_sta_rx(ieee, dev, skb, rx_stats,
|
|
|
- wds != NULL)) {
|
|
|
- case AP_RX_CONTINUE_NOT_AUTHORIZED:
|
|
|
- frame_authorized = 0;
|
|
|
- break;
|
|
|
- case AP_RX_CONTINUE:
|
|
|
- frame_authorized = 1;
|
|
|
- break;
|
|
|
- case AP_RX_DROP:
|
|
|
- goto rx_dropped;
|
|
|
- case AP_RX_EXIT:
|
|
|
- goto rx_exit;
|
|
|
- }
|
|
|
- }
|
|
|
-#endif
|
|
|
//IEEE80211_DEBUG_DATA(IEEE80211_DL_DATA, skb->data, skb->len);
|
|
|
/* Nullfunc frames may have PS-bit set, so they must be passed to
|
|
|
* hostap_handle_sta_rx() before being dropped here. */
|
|
@@ -1389,10 +1269,6 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
|
|
|
#endif
|
|
|
|
|
|
rx_exit:
|
|
|
-#ifdef NOT_YET
|
|
|
- if (sta)
|
|
|
- hostap_handle_sta_release(sta);
|
|
|
-#endif
|
|
|
return 1;
|
|
|
|
|
|
rx_dropped:
|