Lines Matching refs:ieee

35 static void libipw_monitor_rx(struct libipw_device *ieee,  in libipw_monitor_rx()  argument
42 skb->dev = ieee->dev; in libipw_monitor_rx()
54 *ieee, in libipw_frag_cache_find()
64 entry = &ieee->frag_cache[i]; in libipw_frag_cache_find()
85 static struct sk_buff *libipw_frag_cache_get(struct libipw_device *ieee, in libipw_frag_cache_get() argument
99 skb = dev_alloc_skb(ieee->dev->mtu + in libipw_frag_cache_get()
107 entry = &ieee->frag_cache[ieee->frag_next_idx]; in libipw_frag_cache_get()
108 ieee->frag_next_idx++; in libipw_frag_cache_get()
109 if (ieee->frag_next_idx >= LIBIPW_FRAG_CACHE_LEN) in libipw_frag_cache_get()
110 ieee->frag_next_idx = 0; in libipw_frag_cache_get()
124 entry = libipw_frag_cache_find(ieee, seq, frag, hdr->addr2, in libipw_frag_cache_get()
136 static int libipw_frag_cache_invalidate(struct libipw_device *ieee, in libipw_frag_cache_invalidate() argument
146 entry = libipw_frag_cache_find(ieee, seq, -1, hdr->addr2, in libipw_frag_cache_invalidate()
166 libipw_rx_frame_mgmt(struct libipw_device *ieee, struct sk_buff *skb, in libipw_rx_frame_mgmt() argument
170 if (ieee->iw_mode == IW_MODE_MASTER) { in libipw_rx_frame_mgmt()
172 ieee->dev->name); in libipw_rx_frame_mgmt()
179 if (ieee->hostapd && type == WLAN_FC_TYPE_MGMT) { in libipw_rx_frame_mgmt()
181 ieee->iw_mode == IW_MODE_MASTER) { in libipw_rx_frame_mgmt()
192 ieee->apdevstats.rx_packets++; in libipw_rx_frame_mgmt()
193 ieee->apdevstats.rx_bytes += skb->len; in libipw_rx_frame_mgmt()
194 prism2_rx_80211(ieee->apdev, skb, rx_stats, PRISM2_RX_MGMT); in libipw_rx_frame_mgmt()
198 if (ieee->iw_mode == IW_MODE_MASTER) { in libipw_rx_frame_mgmt()
227 static int libipw_is_eapol_frame(struct libipw_device *ieee, in libipw_is_eapol_frame() argument
230 struct net_device *dev = ieee->dev; in libipw_is_eapol_frame()
268 libipw_rx_frame_decrypt(struct libipw_device *ieee, struct sk_buff *skb, in libipw_rx_frame_decrypt() argument
290 ieee->ieee_stats.rx_discards_undecryptable++; in libipw_rx_frame_decrypt()
299 libipw_rx_frame_decrypt_msdu(struct libipw_device *ieee, in libipw_rx_frame_decrypt_msdu() argument
317 " (SA=%pM keyidx=%d)\n", ieee->dev->name, hdr->addr2, in libipw_rx_frame_decrypt_msdu()
328 int libipw_rx(struct libipw_device *ieee, struct sk_buff *skb, in libipw_rx() argument
331 struct net_device *dev = ieee->dev; in libipw_rx()
376 if (ieee->spy_data.spy_number > 0) { in libipw_rx()
399 wireless_spy_update(ieee->dev, hdr->addr2, &wstats); in libipw_rx()
408 if (ieee->iw_mode == IW_MODE_MONITOR) { in libipw_rx()
411 libipw_monitor_rx(ieee, skb, rx_stats); in libipw_rx()
417 ieee->host_mc_decrypt : ieee->host_decrypt; in libipw_rx()
429 crypt = ieee->crypt_info.crypt[keyidx]; in libipw_rx()
459 ieee->ieee_stats.rx_discards_undecryptable++; in libipw_rx()
466 fc & IEEE80211_FCTL_PROTECTED && ieee->host_decrypt && in libipw_rx()
467 (keyidx = hostap_rx_frame_decrypt(ieee, skb, crypt)) < 0) { in libipw_rx()
475 if (libipw_rx_frame_mgmt(ieee, skb, rx_stats, type, stype)) in libipw_rx()
482 if (sc == ieee->prev_seq_ctl) in libipw_rx()
485 ieee->prev_seq_ctl = sc; in libipw_rx()
513 if (hostap_rx_frame_wds(ieee, hdr, fc, &wds)) in libipw_rx()
520 if (ieee->iw_mode == IW_MODE_MASTER && !wds && in libipw_rx()
522 IEEE80211_FCTL_FROMDS && ieee->stadev && in libipw_rx()
523 ether_addr_equal(hdr->addr2, ieee->assoc_ap_addr)) { in libipw_rx()
525 skb->dev = dev = ieee->stadev; in libipw_rx()
532 if ((ieee->iw_mode == IW_MODE_MASTER || in libipw_rx()
533 ieee->iw_mode == IW_MODE_REPEAT) && !from_assoc_ap) { in libipw_rx()
534 switch (hostap_handle_sta_rx(ieee, dev, skb, rx_stats, in libipw_rx()
570 (keyidx = libipw_rx_frame_decrypt(ieee, skb, crypt)) < 0) in libipw_rx()
580 struct sk_buff *frag_skb = libipw_frag_cache_get(ieee, hdr); in libipw_rx()
600 libipw_frag_cache_invalidate(ieee, hdr); in libipw_rx()
628 libipw_frag_cache_invalidate(ieee, hdr); in libipw_rx()
634 libipw_rx_frame_decrypt_msdu(ieee, skb, keyidx, crypt)) in libipw_rx()
638 if (crypt && !(fc & IEEE80211_FCTL_PROTECTED) && !ieee->open_wep) { in libipw_rx()
640 libipw_is_eapol_frame(ieee, skb)) { in libipw_rx()
651 if (crypt && !(fc & IEEE80211_FCTL_PROTECTED) && !ieee->open_wep && in libipw_rx()
652 !libipw_is_eapol_frame(ieee, skb)) { in libipw_rx()
662 ieee->host_strip_iv_icv) { in libipw_rx()
674 switch (ieee->sec.encode_alg[keyidx]) { in libipw_rx()
712 if (ieee->ieee802_1x && ieee->iw_mode == IW_MODE_MASTER) { in libipw_rx()
716 if (ieee->hostapd && ieee->apdev) { in libipw_rx()
719 prism2_rx_80211(ieee->apdev, skb, rx_stats, in libipw_rx()
721 ieee->apdevstats.rx_packets++; in libipw_rx()
722 ieee->apdevstats.rx_bytes += skb->len; in libipw_rx()
770 if (ieee->iw_mode == IW_MODE_MASTER && !wds && ieee->ap->bridge_packets) { in libipw_rx()
774 ieee->ap->bridged_multicast++; in libipw_rx()
779 } else if (hostap_is_sta_assoc(ieee->ap, dst)) { in libipw_rx()
782 ieee->ap->bridged_unicast++; in libipw_rx()
832 void libipw_rx_any(struct libipw_device *ieee, in libipw_rx_any() argument
839 if (ieee->iw_mode == IW_MODE_MONITOR) { in libipw_rx_any()
840 if (!libipw_rx(ieee, skb, stats)) in libipw_rx_any()
858 libipw_rx_mgt(ieee, hdr, stats); in libipw_rx_any()
870 switch (ieee->iw_mode) { in libipw_rx_any()
873 if (ether_addr_equal(hdr->addr3, ieee->bssid)) in libipw_rx_any()
876 if (ieee->dev->flags & IFF_PROMISC) in libipw_rx_any()
879 else if (ether_addr_equal(hdr->addr1, ieee->dev->dev_addr)) in libipw_rx_any()
888 if (ether_addr_equal(hdr->addr2, ieee->bssid)) in libipw_rx_any()
891 if (ieee->dev->flags & IFF_PROMISC) in libipw_rx_any()
894 else if (ether_addr_equal(hdr->addr1, ieee->dev->dev_addr)) in libipw_rx_any()
899 if (!ether_addr_equal(hdr->addr3, ieee->dev->dev_addr)) in libipw_rx_any()
910 if (!libipw_rx(ieee, skb, stats)) in libipw_rx_any()
916 ieee->dev->stats.rx_dropped++; in libipw_rx_any()
1298 static int libipw_handle_assoc_resp(struct libipw_device *ieee, struct libipw_assoc_response in libipw_handle_assoc_resp() argument
1303 struct net_device *dev = ieee->dev; in libipw_handle_assoc_resp()
1348 if (ieee->handle_assoc_response != NULL) in libipw_handle_assoc_resp()
1349 ieee->handle_assoc_response(dev, frame, network); in libipw_handle_assoc_resp()
1356 static int libipw_network_init(struct libipw_device *ieee, struct libipw_probe_response in libipw_network_init() argument
1503 *ieee, struct in libipw_process_probe_response()
1508 struct net_device *dev = ieee->dev; in libipw_process_probe_response()
1537 if (libipw_network_init(ieee, beacon, &network, stats)) { in libipw_process_probe_response()
1556 spin_lock_irqsave(&ieee->lock, flags); in libipw_process_probe_response()
1558 list_for_each_entry(target, &ieee->network_list, list) { in libipw_process_probe_response()
1569 if (&target->list == &ieee->network_list) { in libipw_process_probe_response()
1570 if (list_empty(&ieee->network_free_list)) { in libipw_process_probe_response()
1579 target = list_entry(ieee->network_free_list.next, in libipw_process_probe_response()
1581 list_del(ieee->network_free_list.next); in libipw_process_probe_response()
1592 list_add_tail(&target->list, &ieee->network_list); in libipw_process_probe_response()
1602 spin_unlock_irqrestore(&ieee->lock, flags); in libipw_process_probe_response()
1605 if (ieee->handle_beacon != NULL) in libipw_process_probe_response()
1606 ieee->handle_beacon(dev, beacon, target); in libipw_process_probe_response()
1608 if (ieee->handle_probe_response != NULL) in libipw_process_probe_response()
1609 ieee->handle_probe_response(dev, beacon, target); in libipw_process_probe_response()
1613 void libipw_rx_mgt(struct libipw_device *ieee, in libipw_rx_mgt() argument
1622 libipw_handle_assoc_resp(ieee, in libipw_rx_mgt()
1638 if (ieee->handle_probe_request != NULL) in libipw_rx_mgt()
1639 ieee->handle_probe_request(ieee->dev, in libipw_rx_mgt()
1650 libipw_process_probe_response(ieee, in libipw_rx_mgt()
1661 libipw_process_probe_response(ieee, in libipw_rx_mgt()
1672 if (ieee->handle_auth != NULL) in libipw_rx_mgt()
1673 ieee->handle_auth(ieee->dev, in libipw_rx_mgt()
1678 if (ieee->handle_disassoc != NULL) in libipw_rx_mgt()
1679 ieee->handle_disassoc(ieee->dev, in libipw_rx_mgt()
1686 if (ieee->handle_action) in libipw_rx_mgt()
1687 ieee->handle_action(ieee->dev, in libipw_rx_mgt()
1698 ieee->dev->name); in libipw_rx_mgt()
1699 if (ieee->handle_reassoc_request != NULL) in libipw_rx_mgt()
1700 ieee->handle_reassoc_request(ieee->dev, in libipw_rx_mgt()
1711 ieee->dev->name); in libipw_rx_mgt()
1712 if (ieee->handle_assoc_request != NULL) in libipw_rx_mgt()
1713 ieee->handle_assoc_request(ieee->dev); in libipw_rx_mgt()
1718 if (ieee->handle_deauth != NULL) in libipw_rx_mgt()
1719 ieee->handle_deauth(ieee->dev, in libipw_rx_mgt()
1728 ieee->dev->name, in libipw_rx_mgt()