• Home
  • Raw
  • Download

Lines Matching refs:ieee

39 static void libipw_monitor_rx(struct libipw_device *ieee,  in libipw_monitor_rx()  argument
46 skb->dev = ieee->dev; in libipw_monitor_rx()
58 *ieee, in libipw_frag_cache_find()
68 entry = &ieee->frag_cache[i]; in libipw_frag_cache_find()
89 static struct sk_buff *libipw_frag_cache_get(struct libipw_device *ieee, in libipw_frag_cache_get() argument
103 skb = dev_alloc_skb(ieee->dev->mtu + in libipw_frag_cache_get()
111 entry = &ieee->frag_cache[ieee->frag_next_idx]; in libipw_frag_cache_get()
112 ieee->frag_next_idx++; in libipw_frag_cache_get()
113 if (ieee->frag_next_idx >= LIBIPW_FRAG_CACHE_LEN) in libipw_frag_cache_get()
114 ieee->frag_next_idx = 0; in libipw_frag_cache_get()
128 entry = libipw_frag_cache_find(ieee, seq, frag, hdr->addr2, in libipw_frag_cache_get()
140 static int libipw_frag_cache_invalidate(struct libipw_device *ieee, in libipw_frag_cache_invalidate() argument
150 entry = libipw_frag_cache_find(ieee, seq, -1, hdr->addr2, in libipw_frag_cache_invalidate()
170 libipw_rx_frame_mgmt(struct libipw_device *ieee, struct sk_buff *skb, in libipw_rx_frame_mgmt() argument
174 if (ieee->iw_mode == IW_MODE_MASTER) { in libipw_rx_frame_mgmt()
176 ieee->dev->name); in libipw_rx_frame_mgmt()
183 if (ieee->hostapd && type == WLAN_FC_TYPE_MGMT) { in libipw_rx_frame_mgmt()
185 ieee->iw_mode == IW_MODE_MASTER) { in libipw_rx_frame_mgmt()
196 ieee->apdevstats.rx_packets++; in libipw_rx_frame_mgmt()
197 ieee->apdevstats.rx_bytes += skb->len; in libipw_rx_frame_mgmt()
198 prism2_rx_80211(ieee->apdev, skb, rx_stats, PRISM2_RX_MGMT); in libipw_rx_frame_mgmt()
202 if (ieee->iw_mode == IW_MODE_MASTER) { in libipw_rx_frame_mgmt()
231 static int libipw_is_eapol_frame(struct libipw_device *ieee, in libipw_is_eapol_frame() argument
234 struct net_device *dev = ieee->dev; in libipw_is_eapol_frame()
272 libipw_rx_frame_decrypt(struct libipw_device *ieee, struct sk_buff *skb, in libipw_rx_frame_decrypt() argument
294 ieee->ieee_stats.rx_discards_undecryptable++; in libipw_rx_frame_decrypt()
303 libipw_rx_frame_decrypt_msdu(struct libipw_device *ieee, in libipw_rx_frame_decrypt_msdu() argument
321 " (SA=%pM keyidx=%d)\n", ieee->dev->name, hdr->addr2, in libipw_rx_frame_decrypt_msdu()
332 int libipw_rx(struct libipw_device *ieee, struct sk_buff *skb, in libipw_rx() argument
335 struct net_device *dev = ieee->dev; in libipw_rx()
380 if (ieee->spy_data.spy_number > 0) { in libipw_rx()
403 wireless_spy_update(ieee->dev, hdr->addr2, &wstats); in libipw_rx()
412 if (ieee->iw_mode == IW_MODE_MONITOR) { in libipw_rx()
415 libipw_monitor_rx(ieee, skb, rx_stats); in libipw_rx()
421 ieee->host_mc_decrypt : ieee->host_decrypt; in libipw_rx()
433 crypt = ieee->crypt_info.crypt[keyidx]; in libipw_rx()
463 ieee->ieee_stats.rx_discards_undecryptable++; in libipw_rx()
470 fc & IEEE80211_FCTL_PROTECTED && ieee->host_decrypt && in libipw_rx()
471 (keyidx = hostap_rx_frame_decrypt(ieee, skb, crypt)) < 0) { in libipw_rx()
479 if (libipw_rx_frame_mgmt(ieee, skb, rx_stats, type, stype)) in libipw_rx()
486 if (sc == ieee->prev_seq_ctl) in libipw_rx()
489 ieee->prev_seq_ctl = sc; in libipw_rx()
517 if (hostap_rx_frame_wds(ieee, hdr, fc, &wds)) in libipw_rx()
524 if (ieee->iw_mode == IW_MODE_MASTER && !wds && in libipw_rx()
526 IEEE80211_FCTL_FROMDS && ieee->stadev && in libipw_rx()
527 ether_addr_equal(hdr->addr2, ieee->assoc_ap_addr)) { in libipw_rx()
529 skb->dev = dev = ieee->stadev; in libipw_rx()
536 if ((ieee->iw_mode == IW_MODE_MASTER || in libipw_rx()
537 ieee->iw_mode == IW_MODE_REPEAT) && !from_assoc_ap) { in libipw_rx()
538 switch (hostap_handle_sta_rx(ieee, dev, skb, rx_stats, in libipw_rx()
574 (keyidx = libipw_rx_frame_decrypt(ieee, skb, crypt)) < 0) in libipw_rx()
584 struct sk_buff *frag_skb = libipw_frag_cache_get(ieee, hdr); in libipw_rx()
604 libipw_frag_cache_invalidate(ieee, hdr); in libipw_rx()
632 libipw_frag_cache_invalidate(ieee, hdr); in libipw_rx()
638 libipw_rx_frame_decrypt_msdu(ieee, skb, keyidx, crypt)) in libipw_rx()
642 if (crypt && !(fc & IEEE80211_FCTL_PROTECTED) && !ieee->open_wep) { in libipw_rx()
644 libipw_is_eapol_frame(ieee, skb)) { in libipw_rx()
655 if (crypt && !(fc & IEEE80211_FCTL_PROTECTED) && !ieee->open_wep && in libipw_rx()
656 !libipw_is_eapol_frame(ieee, skb)) { in libipw_rx()
666 ieee->host_strip_iv_icv) { in libipw_rx()
678 switch (ieee->sec.encode_alg[keyidx]) { in libipw_rx()
716 if (ieee->ieee802_1x && ieee->iw_mode == IW_MODE_MASTER) { in libipw_rx()
720 if (ieee->hostapd && ieee->apdev) { in libipw_rx()
723 prism2_rx_80211(ieee->apdev, skb, rx_stats, in libipw_rx()
725 ieee->apdevstats.rx_packets++; in libipw_rx()
726 ieee->apdevstats.rx_bytes += skb->len; in libipw_rx()
774 if (ieee->iw_mode == IW_MODE_MASTER && !wds && ieee->ap->bridge_packets) { in libipw_rx()
778 ieee->ap->bridged_multicast++; in libipw_rx()
783 } else if (hostap_is_sta_assoc(ieee->ap, dst)) { in libipw_rx()
786 ieee->ap->bridged_unicast++; in libipw_rx()
836 void libipw_rx_any(struct libipw_device *ieee, in libipw_rx_any() argument
843 if (ieee->iw_mode == IW_MODE_MONITOR) { in libipw_rx_any()
844 if (!libipw_rx(ieee, skb, stats)) in libipw_rx_any()
862 libipw_rx_mgt(ieee, hdr, stats); in libipw_rx_any()
874 switch (ieee->iw_mode) { in libipw_rx_any()
877 if (ether_addr_equal(hdr->addr3, ieee->bssid)) in libipw_rx_any()
880 if (ieee->dev->flags & IFF_PROMISC) in libipw_rx_any()
883 else if (ether_addr_equal(hdr->addr1, ieee->dev->dev_addr)) in libipw_rx_any()
892 if (ether_addr_equal(hdr->addr2, ieee->bssid)) in libipw_rx_any()
895 if (ieee->dev->flags & IFF_PROMISC) in libipw_rx_any()
898 else if (ether_addr_equal(hdr->addr1, ieee->dev->dev_addr)) in libipw_rx_any()
903 if (!ether_addr_equal(hdr->addr3, ieee->dev->dev_addr)) in libipw_rx_any()
914 if (!libipw_rx(ieee, skb, stats)) in libipw_rx_any()
920 ieee->dev->stats.rx_dropped++; in libipw_rx_any()
1326 static int libipw_handle_assoc_resp(struct libipw_device *ieee, struct libipw_assoc_response in libipw_handle_assoc_resp() argument
1331 struct net_device *dev = ieee->dev; in libipw_handle_assoc_resp()
1376 if (ieee->handle_assoc_response != NULL) in libipw_handle_assoc_resp()
1377 ieee->handle_assoc_response(dev, frame, network); in libipw_handle_assoc_resp()
1384 static int libipw_network_init(struct libipw_device *ieee, struct libipw_probe_response in libipw_network_init() argument
1531 *ieee, struct in libipw_process_probe_response()
1536 struct net_device *dev = ieee->dev; in libipw_process_probe_response()
1565 if (libipw_network_init(ieee, beacon, &network, stats)) { in libipw_process_probe_response()
1584 spin_lock_irqsave(&ieee->lock, flags); in libipw_process_probe_response()
1586 list_for_each_entry(target, &ieee->network_list, list) { in libipw_process_probe_response()
1597 if (&target->list == &ieee->network_list) { in libipw_process_probe_response()
1598 if (list_empty(&ieee->network_free_list)) { in libipw_process_probe_response()
1607 target = list_entry(ieee->network_free_list.next, in libipw_process_probe_response()
1609 list_del(ieee->network_free_list.next); in libipw_process_probe_response()
1620 list_add_tail(&target->list, &ieee->network_list); in libipw_process_probe_response()
1630 spin_unlock_irqrestore(&ieee->lock, flags); in libipw_process_probe_response()
1633 if (ieee->handle_beacon != NULL) in libipw_process_probe_response()
1634 ieee->handle_beacon(dev, beacon, target); in libipw_process_probe_response()
1636 if (ieee->handle_probe_response != NULL) in libipw_process_probe_response()
1637 ieee->handle_probe_response(dev, beacon, target); in libipw_process_probe_response()
1641 void libipw_rx_mgt(struct libipw_device *ieee, in libipw_rx_mgt() argument
1650 libipw_handle_assoc_resp(ieee, in libipw_rx_mgt()
1666 if (ieee->handle_probe_request != NULL) in libipw_rx_mgt()
1667 ieee->handle_probe_request(ieee->dev, in libipw_rx_mgt()
1678 libipw_process_probe_response(ieee, in libipw_rx_mgt()
1689 libipw_process_probe_response(ieee, in libipw_rx_mgt()
1700 if (ieee->handle_auth != NULL) in libipw_rx_mgt()
1701 ieee->handle_auth(ieee->dev, in libipw_rx_mgt()
1706 if (ieee->handle_disassoc != NULL) in libipw_rx_mgt()
1707 ieee->handle_disassoc(ieee->dev, in libipw_rx_mgt()
1714 if (ieee->handle_action) in libipw_rx_mgt()
1715 ieee->handle_action(ieee->dev, in libipw_rx_mgt()
1726 ieee->dev->name); in libipw_rx_mgt()
1727 if (ieee->handle_reassoc_request != NULL) in libipw_rx_mgt()
1728 ieee->handle_reassoc_request(ieee->dev, in libipw_rx_mgt()
1739 ieee->dev->name); in libipw_rx_mgt()
1740 if (ieee->handle_assoc_request != NULL) in libipw_rx_mgt()
1741 ieee->handle_assoc_request(ieee->dev); in libipw_rx_mgt()
1746 if (ieee->handle_deauth != NULL) in libipw_rx_mgt()
1747 ieee->handle_deauth(ieee->dev, in libipw_rx_mgt()
1756 ieee->dev->name, in libipw_rx_mgt()