Update is_multicast_ether_addr() definition; net/ieee80211.h cleanups.

+11 -39
+1 -1
include/linux/etherdevice.h
··· 65 65 */ 66 66 static inline int is_multicast_ether_addr(const u8 *addr) 67 67 { 68 - return addr[0] & 0x01; 68 + return ((addr[0] != 0xff) && (0x01 & addr[0])); 69 69 } 70 70 71 71 /**
+10 -38
include/net/ieee80211.h
··· 94 94 u16 length; 95 95 } __attribute__ ((packed)); 96 96 97 + #define IEEE80211_1ADDR_LEN 10 98 + #define IEEE80211_2ADDR_LEN 16 97 99 #define IEEE80211_3ADDR_LEN 24 98 100 #define IEEE80211_4ADDR_LEN 30 99 101 #define IEEE80211_FCS_LEN 4 ··· 302 300 #define WLAN_REASON_STA_REQ_ASSOC_WITHOUT_AUTH 9 303 301 304 302 305 - /* Information Element IDs */ 306 - #define WLAN_EID_SSID 0 307 - #define WLAN_EID_SUPP_RATES 1 308 - #define WLAN_EID_FH_PARAMS 2 309 - #define WLAN_EID_DS_PARAMS 3 310 - #define WLAN_EID_CF_PARAMS 4 311 - #define WLAN_EID_TIM 5 312 - #define WLAN_EID_IBSS_PARAMS 6 313 - #define WLAN_EID_CHALLENGE 16 314 - #define WLAN_EID_RSN 48 315 - #define WLAN_EID_GENERIC 221 316 - 317 - #define IEEE80211_MGMT_HDR_LEN 24 318 - #define IEEE80211_DATA_HDR3_LEN 24 319 - #define IEEE80211_DATA_HDR4_LEN 30 320 - 321 - 322 303 #define IEEE80211_STATMASK_SIGNAL (1<<0) 323 304 #define IEEE80211_STATMASK_RSSI (1<<1) 324 305 #define IEEE80211_STATMASK_NOISE (1<<2) ··· 426 441 427 442 struct ieee80211_device; 428 443 444 + #include "ieee80211_crypt.h" 445 + 429 446 #define SEC_KEY_1 (1<<0) 430 447 #define SEC_KEY_2 (1<<1) 431 448 #define SEC_KEY_3 (1<<2) ··· 475 488 476 489 */ 477 490 478 - struct ieee80211_header_data { 479 - u16 frame_ctl; 480 - u16 duration_id; 481 - u8 addr1[6]; 482 - u8 addr2[6]; 483 - u8 addr3[6]; 484 - u16 seq_ctrl; 485 - }; 486 - 487 491 #define BEACON_PROBE_SSID_ID_POSITION 12 488 492 489 493 /* Management Frame Information Element Types */ ··· 519 541 */ 520 542 521 543 struct ieee80211_authentication { 522 - struct ieee80211_header_data header; 544 + struct ieee80211_hdr_3addr header; 523 545 u16 algorithm; 524 546 u16 transaction; 525 547 u16 status; ··· 528 550 529 551 530 552 struct ieee80211_probe_response { 531 - struct ieee80211_header_data header; 553 + struct ieee80211_hdr_3addr header; 532 554 u32 time_stamp[2]; 533 555 u16 beacon_interval; 534 556 u16 capability; ··· 625 647 #define MAC_FMT "%02x:%02x:%02x:%02x:%02x:%02x" 626 648 #define MAC_ARG(x) ((u8*)(x))[0],((u8*)(x))[1],((u8*)(x))[2],((u8*)(x))[3],((u8*)(x))[4],((u8*)(x))[5] 627 649 628 - 629 - extern inline int is_broadcast_ether_addr(const u8 *addr) 630 - { 631 - return ((addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) && \ 632 - (addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff)); 633 - } 634 650 635 651 #define CFG_IEEE80211_RESERVE_FCS (1<<0) 636 652 #define CFG_IEEE80211_COMPUTE_FCS (1<<1) ··· 759 787 760 788 extern inline int ieee80211_get_hdrlen(u16 fc) 761 789 { 762 - int hdrlen = 24; 790 + int hdrlen = IEEE80211_3ADDR_LEN; 763 791 764 792 switch (WLAN_FC_GET_TYPE(fc)) { 765 793 case IEEE80211_FTYPE_DATA: 766 794 if ((fc & IEEE80211_FCTL_FROMDS) && (fc & IEEE80211_FCTL_TODS)) 767 - hdrlen = 30; /* Addr4 */ 795 + hdrlen = IEEE80211_4ADDR_LEN; 768 796 break; 769 797 case IEEE80211_FTYPE_CTL: 770 798 switch (WLAN_FC_GET_STYPE(fc)) { 771 799 case IEEE80211_STYPE_CTS: 772 800 case IEEE80211_STYPE_ACK: 773 - hdrlen = 10; 801 + hdrlen = IEEE80211_1ADDR_LEN; 774 802 break; 775 803 default: 776 - hdrlen = 16; 804 + hdrlen = IEEE80211_2ADDR_LEN; 777 805 break; 778 806 } 779 807 break;