source: trunk/target/linux/generic-2.6/patches-2.6.23/210-mac80211_include_wireless_dev.patch @ 9114

Last change on this file since 9114 was 9114, checked in by ejka, 9 years ago

add generic 2.6.23 patches and config

File size: 26.1 KB
  • include/linux/ieee80211.h

    old new  
    106106} __attribute__ ((packed)); 
    107107 
    108108 
     109struct ieee80211_ht_capability { 
     110        __le16 capabilities_info; 
     111        u8 mac_ht_params_info; 
     112        u8 supported_mcs_set[16]; 
     113        __le16 extended_ht_capability_info; 
     114        __le32 tx_BF_capability_info; 
     115        u8 antenna_selection_info; 
     116}__attribute__ ((packed)); 
     117 
     118struct ieee80211_ht_additional_info { 
     119        u8 control_chan; 
     120        u8 ht_param; 
     121        __le16 operation_mode; 
     122        __le16 stbc_param; 
     123        u8 basic_set[16]; 
     124}__attribute__ ((packed)); 
     125 
     126 
     127#define IEEE80211_TSINFO_TYPE(a)        ((a.byte1 & 0x01) >> 0) 
     128#define IEEE80211_TSINFO_TSID(a)        ((a.byte1 & 0x1E) >> 1) 
     129#define IEEE80211_TSINFO_DIR(a)         ((a.byte1 & 0x60) >> 5) 
     130#define IEEE80211_TSINFO_POLICY(a)      ((a.byte1 & 0x80) >> 7 + \ 
     131                                         (a.byte2 & 0x01) << 1) 
     132#define IEEE80211_TSINFO_AGG(a)         ((a.byte2 & 0x02) >> 1) 
     133#define IEEE80211_TSINFO_APSD(a)        ((a.byte2 & 0x04) >> 2) 
     134#define IEEE80211_TSINFO_UP(a)          ((a.byte2 & 0x38) >> 3) 
     135#define IEEE80211_TSINFO_ACK(a)         ((a.byte2 & 0xC0) >> 6) 
     136#define IEEE80211_TSINFO_SCHEDULE(a)    ((a.byte3 & 0x01) >> 0) 
     137 
     138#define IEEE80211_SET_TSINFO_TYPE(i, d)         (i.byte1 |= (d << 0) & 0x01) 
     139#define IEEE80211_SET_TSINFO_TSID(i, d)         (i.byte1 |= (d << 1) & 0x1E) 
     140#define IEEE80211_SET_TSINFO_DIR(i, d)          (i.byte1 |= (d << 5) & 0x60) 
     141#define IEEE80211_SET_TSINFO_POLICY(i, d)       \ 
     142do {                                            \ 
     143                                                i.byte1 |= (d & 0x01) << 7; \ 
     144                                                i.byte2 |= (d & 0x02) >> 1; \ 
     145} while(0) 
     146#define IEEE80211_SET_TSINFO_AGG(i, d)          (i.byte2 |= (d << 1) & 0x02) 
     147#define IEEE80211_SET_TSINFO_APSD(i, d)         (i.byte2 |= (d << 2) & 0x04) 
     148#define IEEE80211_SET_TSINFO_UP(i, d)           (i.byte2 |= (d << 3) & 0x38) 
     149#define IEEE80211_SET_TSINFO_ACK(i, d)          (i.byte2 |= (d << 6) & 0xC0) 
     150#define IEEE80211_SET_TSINFO_SCHEDULE(i, d)     (i.byte3 |= (d << 0) & 0x01) 
     151 
     152struct ieee80211_ts_info { 
     153        u8 byte1; 
     154        u8 byte2; 
     155        u8 byte3; 
     156} __attribute__ ((packed)); 
     157 
     158struct ieee80211_elem_tspec { 
     159        struct ieee80211_ts_info ts_info; 
     160        __le16 nominal_msdu_size; 
     161        __le16 max_msdu_size; 
     162        __le32 min_service_interval; 
     163        __le32 max_service_interval; 
     164        __le32 inactivity_interval; 
     165        __le32 suspension_interval; 
     166        __le32 service_start_time; 
     167        __le32 min_data_rate; 
     168        __le32 mean_data_rate; 
     169        __le32 peak_data_rate; 
     170        __le32 burst_size; 
     171        __le32 delay_bound; 
     172        __le32 min_phy_rate; 
     173        __le16 surplus_band_allow; 
     174        __le16 medium_time; 
     175} __attribute__ ((packed)); 
     176 
     177 
    109178struct ieee80211_mgmt { 
    110179        __le16 frame_control; 
    111180        __le16 duration; 
     
    173242                                struct { 
    174243                                        u8 action_code; 
    175244                                        u8 dialog_token; 
     245                                        u8 variable[0]; 
     246                                } __attribute__ ((packed)) addts_req; 
     247                                struct { 
     248                                        u8 action_code; 
     249                                        u8 dialog_token; 
     250                                        __le16 status_code; 
     251                                        u8 variable[0]; 
     252                                } __attribute__ ((packed)) addts_resp; 
     253                                struct { 
     254                                        u8 action_code; 
     255                                        struct ieee80211_ts_info ts_info; 
     256                                        __le16 reason_code; 
     257                                } __attribute__ ((packed)) delts; 
     258                                struct { 
     259                                        u8 action_code; 
     260                                        u8 dialog_token; 
    176261                                        u8 status_code; 
    177262                                        u8 variable[0]; 
    178263                                } __attribute__ ((packed)) wme_action; 
     264                                struct { 
     265                                        u8 action_code; 
     266                                        u8 dest[6]; 
     267                                        u8 src[6]; 
     268                                        __le16 capab_info; 
     269                                        __le16 timeout; 
     270                                        /* Followed by Supported Rates and 
     271                                         * Extended Supported Rates */ 
     272                                        u8 variable[0]; 
     273                                } __attribute__ ((packed)) dls_req; 
     274                                struct { 
     275                                        u8 action_code; 
     276                                        __le16 status_code; 
     277                                        u8 dest[6]; 
     278                                        u8 src[6]; 
     279                                        /* Followed by Capability Information, 
     280                                         * Supported Rates and Extended 
     281                                         * Supported Rates */ 
     282                                        u8 variable[0]; 
     283                                } __attribute__ ((packed)) dls_resp; 
     284                                struct { 
     285                                        u8 action_code; 
     286                                        u8 dest[6]; 
     287                                        u8 src[6]; 
     288                                        __le16 reason_code; 
     289                                } __attribute__ ((packed)) dls_teardown; 
    179290                                struct{ 
    180291                                        u8 action_code; 
    181292                                        u8 element_id; 
     
    184295                                        u8 new_chan; 
    185296                                        u8 switch_count; 
    186297                                } __attribute__((packed)) chan_switch; 
     298                                struct{ 
     299                                        u8 action_code; 
     300                                        u8 dialog_token; 
     301                                        __le16 capab; 
     302                                        __le16 timeout; 
     303                                        __le16 start_seq_num; 
     304                                } __attribute__((packed)) addba_req; 
     305                                struct{ 
     306                                        u8 action_code; 
     307                                        u8 dialog_token; 
     308                                        __le16 status; 
     309                                        __le16 capab; 
     310                                        __le16 timeout; 
     311                                } __attribute__((packed)) addba_resp; 
     312                                struct{ 
     313                                        u8 action_code; 
     314                                        __le16 params; 
     315                                        __le16 reason_code; 
     316                                }__attribute__((packed)) delba; 
    187317                        } u; 
    188318                } __attribute__ ((packed)) action; 
    189319        } u; 
     
    270400        WLAN_STATUS_UNSUPP_RSN_VERSION = 44, 
    271401        WLAN_STATUS_INVALID_RSN_IE_CAP = 45, 
    272402        WLAN_STATUS_CIPHER_SUITE_REJECTED = 46, 
     403        /* 802.11e */ 
     404        WLAN_STATUS_UNSPECIFIED_QOS = 32, 
     405        WLAN_STATUS_ASSOC_DENIED_NOBANDWIDTH = 33, 
     406        WLAN_STATUS_ASSOC_DENIED_LOWACK = 34, 
     407        WLAN_STATUS_ASSOC_DENIED_UNSUPP_QOS = 35, 
     408        WLAN_STATUS_REQUEST_DECLINED = 37, 
     409        WLAN_STATUS_INVALID_QOS_PARAM = 38, 
     410        WLAN_STATUS_CHANGE_TSPEC = 39, 
     411        WLAN_STATUS_WAIT_TS_DELAY = 47, 
     412        WLAN_STATUS_NO_DIRECT_LINK = 48, 
     413        WLAN_STATUS_STA_NOT_PRESENT = 49, 
     414        WLAN_STATUS_STA_NOT_QSTA = 50, 
    273415}; 
    274416 
    275417 
     
    300442        WLAN_REASON_INVALID_RSN_IE_CAP = 22, 
    301443        WLAN_REASON_IEEE8021X_FAILED = 23, 
    302444        WLAN_REASON_CIPHER_SUITE_REJECTED = 24, 
     445        /* 802.11e */ 
     446        WLAN_REASON_DISASSOC_UNSPECIFIED_QOS = 32, 
     447        WLAN_REASON_DISASSOC_QAP_NO_BANDWIDTH = 33, 
     448        WLAN_REASON_DISASSOC_LOW_ACK = 34, 
     449        WLAN_REASON_DISASSOC_QAP_EXCEED_TXOP = 35, 
     450        WLAN_REASON_QSTA_LEAVE_QBSS = 36, 
     451        WLAN_REASON_QSTA_NOT_USE = 37, 
     452        WLAN_REASON_QSTA_REQUIRE_SETUP = 38, 
     453        WLAN_REASON_QSTA_TIMEOUT = 39, 
     454        WLAN_REASON_QSTA_CIPHER_NOT_SUPP = 45, 
    303455}; 
    304456 
    305457 
     458/* Category Code */ 
     459enum ieee80211_category { 
     460        WLAN_CATEGORY_SPECTRUM_MGMT = 0, 
     461        WLAN_CATEGORY_QOS = 1, 
     462        WLAN_CATEGORY_DLS = 2, 
     463        WLAN_CATEGORY_BACK = 3, 
     464        WLAN_CATEGORY_WMM = 17, 
     465}; 
     466 
     467/* QoS Action Code */ 
     468enum ieee80211_qos_actioncode { 
     469        WLAN_ACTION_QOS_ADDTS_REQ = 0, 
     470        WLAN_ACTION_QOS_ADDTS_RESP = 1, 
     471        WLAN_ACTION_QOS_DELTS = 2, 
     472        WLAN_ACTION_QOS_SCHEDULE = 3, 
     473}; 
     474 
     475/* DLS Action Code */ 
     476enum ieee80211_dls_actioncode { 
     477        WLAN_ACTION_DLS_REQ = 0, 
     478        WLAN_ACTION_DLS_RESP = 1, 
     479        WLAN_ACTION_DLS_TEARDOWN = 2, 
     480}; 
     481 
     482/* BACK Action Code */ 
     483enum ieee80211_back_actioncode { 
     484        WLAN_ACTION_ADDBA_REQ = 0, 
     485        WLAN_ACTION_ADDBA_RESP = 1, 
     486        WLAN_ACTION_DELBA = 2, 
     487}; 
     488 
    306489/* Information Element IDs */ 
    307490enum ieee80211_eid { 
    308491        WLAN_EID_SSID = 0, 
     
    318501        WLAN_EID_HP_PARAMS = 8, 
    319502        WLAN_EID_HP_TABLE = 9, 
    320503        WLAN_EID_REQUEST = 10, 
     504        /* 802.11e */ 
     505        WLAN_EID_QBSS_LOAD = 11, 
     506        WLAN_EID_EDCA_PARAM_SET = 12, 
     507        WLAN_EID_TSPEC = 13, 
     508        WLAN_EID_TCLAS = 14, 
     509        WLAN_EID_SCHEDULE = 15, 
     510        WLAN_EID_TS_DELAY = 43, 
     511        WLAN_EID_TCLAS_PROCESSING = 44, 
     512        WLAN_EID_QOS_CAPA = 46, 
    321513        /* 802.11h */ 
    322514        WLAN_EID_PWR_CONSTRAINT = 32, 
    323515        WLAN_EID_PWR_CAPABILITY = 33, 
     
    332524        /* 802.11g */ 
    333525        WLAN_EID_ERP_INFO = 42, 
    334526        WLAN_EID_EXT_SUPP_RATES = 50, 
     527        /* 802.11n */ 
     528        WLAN_EID_HT_CAPABILITY = 45, 
     529        WLAN_EID_HT_EXTRA_INFO = 61, 
    335530        /* 802.11i */ 
    336531        WLAN_EID_RSN = 48, 
    337532        WLAN_EID_WPA = 221, 
     
    340535        WLAN_EID_QOS_PARAMETER = 222 
    341536}; 
    342537 
     538/* 80211n */ 
     539#define IEEE80211_QOS_CONTROL_A_MSDU_PRESENT 0x0080 
     540 
    343541/* cipher suite selectors */ 
    344542#define WLAN_CIPHER_SUITE_USE_GROUP     0x000FAC00 
    345543#define WLAN_CIPHER_SUITE_WEP40         0x000FAC01 
     
    350548 
    351549#define WLAN_MAX_KEY_LEN                32 
    352550 
     551enum ieee80211_tsinfo_direction { 
     552        WLAN_TSINFO_UPLINK = 0, 
     553        WLAN_TSINFO_DOWNLINK = 1, 
     554        WLAN_TSINFO_DIRECTLINK = 2, 
     555        WLAN_TSINFO_BIDIRECTIONAL = 3, 
     556}; 
     557 
     558enum ieee80211_tsinfo_access { 
     559        WLAN_TSINFO_EDCA = 1, 
     560        WLAN_TSINFO_HCCA = 2, 
     561        WLAN_TSINFO_HEMM = 3, 
     562}; 
     563 
     564enum ieee80211_tsinfo_psb { 
     565        WLAN_TSINFO_PSB_LEGACY = 0, 
     566        WLAN_TSINFO_PSB_APSD = 1, 
     567}; 
     568 
     569 
     570/* WI-FI Alliance OUI Type and Subtype */ 
     571enum wifi_oui_type { 
     572        WIFI_OUI_TYPE_WPA = 1, 
     573        WIFI_OUI_TYPE_WMM = 2, 
     574        WIFI_OUI_TYPE_WSC = 4, 
     575        WIFI_OUI_TYPE_PSD = 6, 
     576}; 
     577 
     578enum wifi_oui_stype_wmm { 
     579        WIFI_OUI_STYPE_WMM_INFO = 0, 
     580        WIFI_OUI_STYPE_WMM_PARAM = 1, 
     581        WIFI_OUI_STYPE_WMM_TSPEC = 2, 
     582}; 
     583 
    353584#endif /* IEEE80211_H */ 
  • include/linux/nl80211.h

    old new  
    77 */ 
    88 
    99/** 
     10 * enum nl80211_commands - supported nl80211 commands 
     11 * @NL80211_CMD_UNSPEC: unspecified command to catch errors 
     12 * @NL80211_CMD_RENAME_WIPHY: rename a wiphy, needs 
     13 *      %NL80211_ATTR_WIPHY and %NL80211_ATTR_WIPHY_NAME 
     14 * @NL80211_CMD_WIPHY_NEWNAME: rename notification 
     15 * @NL80211_CMD_GET_CMDLIST: TO BE DEFINED PROPERLY. currently the code makes 
     16 *      it depend on the wiphy only but it really should depend on the 
     17 *      interface type too.... 
     18 * @NL80211_CMD_NEW_CMDLIST: command list result 
     19 * @NL80211_CMD_ADD_VIRTUAL_INTERFACE: create a virtual interface for the 
     20 *      wiphy identified by an %NL80211_ATTR_WIPHY attribute with the given 
     21 *      %NL80211_ATTR_IFTYPE and %NL80211_ATTR_IFNAME. 
     22 * @NL80211_CMD_DEL_VIRTUAL_INTERFACE: destroy a virtual interface identified 
     23 *      by %NL80211_ATTR_IFINDEX. 
     24 * @NL80211_CMD_CHANGE_VIRTUAL_INTERFACE: change type of virtual interface to 
     25 *      the type given by %NL80211_ATTR_IFTYPE, the interface is identified by 
     26 *      %NL80211_ATTR_IFINDEX. 
     27 * @NL80211_CMD_GET_WIPHYS: request a list of all wiphys present in the system 
     28 * @NL80211_CMD_NEW_WIPHYS: returned list of all wiphys 
     29 * @NL80211_CMD_GET_INTERFACES: request a list of all interfaces belonging to 
     30 *      the wiphy identified by %NL80211_ATTR_WIPHY 
     31 * @NL80211_CMD_NEW_INTERFACES: result for %NL80211_CMD_GET_INTERFACES 
     32 * @NL80211_CMD_INITIATE_SCAN: initiate a scan with the passed parameters. THe 
     33 *      parameters may contain %NL80211_ATTR_FLAG_SCAN_ACTIVE, 
     34 *      %NL80211_ATTR_PHYMODE and a list of channels in an 
     35 *      %NL80211_ATTR_CHANNEL_LIST attribute (an array of nested attributes) 
     36 *      containing %NL80211_ATTR_CHANNEL, %NL80211_ATTR_PHYMODE, and possibly 
     37 *      %NL80211_ATTR_FLAG_SCAN_ACTIVE. The outer %NL80211_ATTR_FLAG_SCAN_ACTIVE 
     38 *      is ignored when a channel list is present. 
     39 * @NL80211_CMD_SCAN_RESULT: scan result, contains an array in 
     40 *      %NL80211_ATTR_BSS_LIST. 
     41 * @NL80211_CMD_ASSOCIATE: associate with the given parameters 
     42 *      (%NL80211_ATTR_SSID is mandatory, %NL80211_ATTR_TIMEOUT_TU, 
     43 *      %NL80211_ATTR_BSSID, %NL80211_ATTR_CHANNEL, %NL80211_ATTR_PHYMODE, 
     44 *      and %NL80211_ATTR_IE may be given) 
     45 * @NL80211_CMD_ADD_KEY: add a key with given %NL80211_ATTR_KEY_DATA, 
     46 *      %NL80211_ATTR_KEY_ID, %NL80211_ATTR_KEY_TYPE, %NL80211_ATTR_MAC and 
     47 *      %NL80211_ATTR_KEY_CIPHER attributes. 
     48 * @NL80211_CMD_DEL_KEY: delete a key identified by %NL80211_ATTR_KEY_ID, 
     49 *      %NL80211_ATTR_KEY_TYPE and %NL80211_ATTR_MAC or all keys. 
     50 * @__NL80211_CMD_AFTER_LAST: internal use 
     51 */ 
     52enum nl80211_commands { 
     53/* don't change the order or add anything inbetween, this is ABI! */ 
     54        NL80211_CMD_UNSPEC, 
     55        /* %input: wiphy, wiphy_name */ 
     56        NL80211_CMD_RENAME_WIPHY, 
     57        NL80211_CMD_WIPHY_NEWNAME, 
     58        /* %input: wiphy|ifindex */ 
     59        NL80211_CMD_GET_CMDLIST, 
     60        NL80211_CMD_NEW_CMDLIST, 
     61        /* %input: wiphy, ifname, {iftype} */ 
     62        NL80211_CMD_ADD_VIRTUAL_INTERFACE, 
     63        /* %input: wiphy, ifindex */ 
     64        NL80211_CMD_DEL_VIRTUAL_INTERFACE, 
     65        /* %input: ifindex, iftype */ 
     66        NL80211_CMD_CHANGE_VIRTUAL_INTERFACE, 
     67        /* %input: */ 
     68        NL80211_CMD_GET_WIPHYS, 
     69        NL80211_CMD_NEW_WIPHYS, 
     70        /* %input: wiphy */ 
     71        NL80211_CMD_GET_INTERFACES, 
     72        NL80211_CMD_NEW_INTERFACES, 
     73        NL80211_CMD_INITIATE_SCAN, 
     74        NL80211_CMD_SCAN_RESULT, 
     75        NL80211_CMD_GET_ASSOCIATION, 
     76        NL80211_CMD_ASSOCIATION_CHANGED, 
     77        NL80211_CMD_ASSOCIATE, 
     78        NL80211_CMD_DISASSOCIATE, 
     79        NL80211_CMD_DEAUTH, 
     80        NL80211_CMD_GET_AUTH_LIST, 
     81        NL80211_CMD_NEW_AUTH_LIST, 
     82        NL80211_CMD_AUTHENTICATION_CHANGED, 
     83        NL80211_CMD_AP_SET_BEACON, 
     84        NL80211_CMD_AP_ADD_STA, 
     85        NL80211_CMD_AP_UPDATE_STA, 
     86        NL80211_CMD_AP_GET_STA_INFO, 
     87        NL80211_CMD_AP_SET_RATESETS, 
     88        NL80211_CMD_ADD_KEY, 
     89        NL80211_CMD_DEL_KEY, 
     90 
     91        /* add commands here */ 
     92 
     93        /* used to define NL80211_CMD_MAX below */ 
     94        __NL80211_CMD_AFTER_LAST 
     95}; 
     96#define NL80211_CMD_MAX (__NL80211_CMD_AFTER_LAST - 1) 
     97 
     98 
     99/** 
     100 * enum nl80211_attrs - nl80211 netlink attributes 
     101 * @NL80211_ATTR_UNSPEC: unspecified attribute to catch errors 
     102 * @NL80211_ATTR_IFINDEX: network interface index of the device to operate on 
     103 * @NL80211_ATTR_IFNAME: network interface name 
     104 * @NL80211_ATTR_WIPHY: index of wiphy to operate on, cf. 
     105 *      /sys/class/ieee80211/<phyname>/index 
     106 * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming) 
     107 * @NL80211_ATTR_CMDS: list of u8's identifying commands a device supports 
     108 * @NL80211_ATTR_IFTYPE: type of virtual interface, see &enum nl80211_iftype 
     109 * @NL80211_ATTR_INTERFACE_LIST: interface array, nested netlink attribute 
     110 * @NL80211_ATTR_WIPHY_LIST: wiphy array, nested netlink attribute 
     111 * @NL80211_ATTR_BSSID: BSSID (must be 6 bytes) 
     112 * @NL80211_ATTR_SSID: SSID (1-32 bytes) 
     113 * @NL80211_ATTR_CHANNEL: channel number 
     114 * @NL80211_ATTR_PHYMODE: PHY mode, see &enum nl80211_phymode 
     115 * @NL80211_ATTR_CHANNEL_LIST: netlink nested attribute array containing scan 
     116 *      parameters for channels 
     117 * @NL80211_ATTR_BSS_LIST: nested attribute containing an array 
     118 * @NL80211_ATTR_BSSTYPE: BSS type, see &enum nl80211_bsstype 
     119 * @NL80211_ATTR_BEACON_PERIOD: beacon period 
     120 * @NL80211_ATTR_DTIM_PERIOD: DTIM period 
     121 * @NL80211_ATTR_TIMESTAMP: 64-bit timestamp of received beacon/probe response 
     122 * @NL80211_ATTR_IE: information element(s), maximum length %NL80211_MAX_IE_LEN 
     123 * @NL80211_ATTR_AUTH_ALGORITHM: authentication algorithm 
     124 * @NL80211_ATTR_TIMEOUT_TU: timeout in TU (TO BE USED) 
     125 * @NL80211_ATTR_REASON_CODE: 802.11 reason code 
     126 * @NL80211_ATTR_ASSOCIATION_ID: association ID (u16, 1-2007) 
     127 * @NL80211_ATTR_DEAUTHENTICATED: TO BE USED 
     128 * @NL80211_ATTR_RX_SENSITIVITY: receiver sensitivity in dBm 
     129 * @NL80211_ATTR_TRANSMIT_POWER: transmit power in mW 
     130 * @NL80211_ATTR_FRAG_THRESHOLD: fragmentation threshold (bytes) 
     131 * @NL80211_ATTR_FLAG_SCAN_ACTIVE: netlink flag indiciating active scan 
     132 * @NL80211_ATTR_KEY_DATA: temporal key data 
     133 * @NL80211_ATTR_KEY_ID: key ID (u8, 0-3) 
     134 * @NL80211_ATTR_KEY_TYPE: key type (see &enum nl80211_keytype) 
     135 * @NL80211_ATTR_MAC: MAC address 
     136 * @NL80211_ATTR_KEY_CIPHER: key cipher suite (u32) 
     137 * @__NL80211_ATTR_AFTER_LAST: internal use 
     138 */ 
     139enum nl80211_attrs { 
     140/* don't change the order or add anything inbetween, this is ABI! */ 
     141        NL80211_ATTR_UNSPEC, 
     142        /* %type: u32 */ 
     143        NL80211_ATTR_IFINDEX, 
     144        /* %type: nulstring */ 
     145        NL80211_ATTR_IFNAME, 
     146        /* %type: u32 */ 
     147        NL80211_ATTR_WIPHY, 
     148        /* %type: nulstring */ 
     149        NL80211_ATTR_WIPHY_NAME, 
     150        NL80211_ATTR_CMDS, 
     151        /* %type: u32 */ 
     152        NL80211_ATTR_IFTYPE, 
     153        NL80211_ATTR_INTERFACE_LIST, 
     154        NL80211_ATTR_WIPHY_LIST, 
     155        NL80211_ATTR_BSSID, 
     156        NL80211_ATTR_SSID, 
     157        NL80211_ATTR_CHANNEL, 
     158        NL80211_ATTR_PHYMODE, 
     159        NL80211_ATTR_CHANNEL_LIST, 
     160        NL80211_ATTR_BSS_LIST, 
     161        NL80211_ATTR_BSSTYPE, 
     162        NL80211_ATTR_BEACON_PERIOD, 
     163        NL80211_ATTR_DTIM_PERIOD, 
     164        NL80211_ATTR_TIMESTAMP, 
     165        NL80211_ATTR_IE, 
     166        NL80211_ATTR_AUTH_ALGORITHM, 
     167        NL80211_ATTR_TIMEOUT_TU, 
     168        NL80211_ATTR_REASON_CODE, 
     169        NL80211_ATTR_ASSOCIATION_ID, 
     170        NL80211_ATTR_DEAUTHENTICATED, 
     171        NL80211_ATTR_RX_SENSITIVITY, 
     172        NL80211_ATTR_TRANSMIT_POWER, 
     173        NL80211_ATTR_FRAG_THRESHOLD, 
     174        NL80211_ATTR_FLAG_SCAN_ACTIVE, 
     175 
     176        NL80211_ATTR_KEY_DATA, 
     177        NL80211_ATTR_KEY_ID, 
     178        NL80211_ATTR_KEY_TYPE, 
     179        NL80211_ATTR_MAC, 
     180        NL80211_ATTR_KEY_CIPHER, 
     181 
     182        NL80211_ATTR_BEACON_HEAD, 
     183        NL80211_ATTR_BEACON_TAIL, 
     184 
     185        /* add attributes here, update the policy in nl80211.c */ 
     186 
     187        /* used to define NL80211_ATTR_MAX below */ 
     188        __NL80211_ATTR_AFTER_LAST, 
     189}; 
     190#define NL80211_ATTR_MAX (__NL80211_ATTR_AFTER_LAST - 1) 
     191 
     192/** 
     193 * enum nl80211_multicast_groups - multicast groups for nl80211 
     194 * @NL80211_GROUP_CONFIG: members of this group are notified of 
     195 *      configuration changes 
     196 */ 
     197enum nl80211_multicast_groups { 
     198        /* be notified of configuration changes like wiphy renames */ 
     199        NL80211_GROUP_CONFIG, 
     200 
     201        /* add groups here */ 
     202 
     203        /* keep last */ 
     204        __NL80211_GROUP_AFTER_LAST 
     205}; 
     206#define NL80211_GROUP_MAX (__NL80211_GROUP_AFTER_LAST - 1) 
     207 
     208/* 
     209 * maximum length of IE(s) passed in an NL80211_ATTR_IE. 
     210 * this is an arbitrary limit, 774 means three full-length 
     211 * IEs would fit... increase if necessary */ 
     212#define NL80211_MAX_IE_LEN 774 
     213 
     214/* 
     215 * maximum number of items in an ATTR_CHANNEL_LIST, 
     216 * just to avoid too large allocations 
     217 */ 
     218#define NL80211_MAX_CHANNEL_LIST_ITEM 200 
     219 
     220/** 
    10221 * enum nl80211_iftype - (virtual) interface types 
    11222 * @NL80211_IFTYPE_UNSPECIFIED: unspecified type, driver decides 
    12223 * @NL80211_IFTYPE_ADHOC: independent BSS member 
     
    35246}; 
    36247#define NL80211_IFTYPE_MAX (__NL80211_IFTYPE_AFTER_LAST - 1) 
    37248 
     249/** 
     250 * enum nl80211_phymode - PHY modes 
     251 * @NL80211_PHYMODE_A: 5 GHz PHY 
     252 * @NL80211_PHYMODE_B: 2.4 GHz PHY (B mode) 
     253 * @NL80211_PHYMODE_G: 2.4 GHz PHY (G, compatible with B) 
     254 * @__NL80211_PHYMODE_AFTER_LAST: internal use 
     255 * 
     256 * These values are used for %NL80211_ATTR_PHYMODE. 
     257 */ 
     258enum nl80211_phymode { 
     259        NL80211_PHYMODE_A, 
     260        NL80211_PHYMODE_B, 
     261        NL80211_PHYMODE_G, 
     262 
     263        /* keep last */ 
     264        __NL80211_PHYMODE_AFTER_LAST 
     265}; 
     266#define NL80211_PHYMODE_MAX (__NL80211_PHYMODE_AFTER_LAST - 1) 
     267 
     268/** 
     269 * enum nl80211_bsstype - BSS types 
     270 * @NL80211_BSSTYPE_INFRASTRUCTURE: infrastructure BSS 
     271 * @NL80211_BSSTYPE_INDEPENDENT: independent BSS (ad-hoc network) 
     272 * @__NL80211_BSSTYPE_AFTER_LAST: internal use 
     273 * 
     274 * These values are used for %NL80211_ATTR_BSSTYPE. 
     275 */ 
     276enum nl80211_bsstype { 
     277        NL80211_BSSTYPE_INFRASTRUCTURE, 
     278        NL80211_BSSTYPE_INDEPENDENT, 
     279 
     280        /* keep last */ 
     281        __NL80211_BSSTYPE_AFTER_LAST 
     282}; 
     283#define NL80211_BSSTYPE_MAX (__NL80211_BSSTYPE_AFTER_LAST - 1) 
     284 
     285/** 
     286 * enum nl80211_keytype - key types 
     287 * @NL80211_KEYTYPE_GROUP: group key 
     288 * @NL80211_KEYTYPE_PAIRWISE: pairwise key 
     289 * @NL80211_KEYTYPE_PEER: peer key 
     290 */ 
     291enum nl80211_keytype { 
     292        NL80211_KEYTYPE_GROUP, 
     293        NL80211_KEYTYPE_PAIRWISE, 
     294        NL80211_KEYTYPE_PEER, 
     295 
     296        /* keep last */ 
     297        __NL80211_KEYTYPE_AFTER_LAST 
     298}; 
     299#define NL80211_KEYTYPE_MAX (__NL80211_KEYTYPE_AFTER_LAST - 1) 
     300 
    38301#endif /* __LINUX_NL80211_H */ 
  • include/net/cfg80211.h

    old new  
    33 
    44#include <linux/netlink.h> 
    55#include <linux/skbuff.h> 
     6#include <linux/nl80211.h> 
    67#include <net/genetlink.h> 
    78 
    89/* 
     
    4950   struct ieee80211_radiotap_iterator *iterator); 
    5051 
    5152 
     53/** 
     54 * struct scan_channel - describes a single channel to scan 
     55 * @phymode: PHY mode for this channel 
     56 * @channel: channel number (1-14, ...) 
     57 * @active: scan actively or passively on this channel 
     58 */ 
     59struct scan_channel { 
     60        enum nl80211_phymode phymode; 
     61        u32 channel; 
     62        int active; 
     63}; 
     64 
     65/** 
     66 * struct scan_params - describes scan parameters 
     67 * @n_channels: number of items in @channels array or -1 to indicate all 
     68 *      channels should be scanned (in that case @channels will be %NULL) 
     69 * @active: when n_channels is -1 this determines active/passive scanning. 
     70 * @phymode: when n_channels is -1 this determines PHY mode to scan. It is 
     71 *      not possible to scan different PHY modes in one request w/o giving 
     72 *      a channel list. 
     73 * @channels: array containing @n_channels &struct scan_channel items 
     74 */ 
     75struct scan_params { 
     76        int n_channels; 
     77        int active; 
     78        enum nl80211_phymode phymode; 
     79        struct scan_channel *channels; 
     80}; 
     81 
     82/** 
     83 * struct association_params - describes association parameters 
     84 * @valid: this member contains flags which items are valid 
     85 * @bssid: the BSSID of the BSS to associate [%ASSOC_PARAMS_BSSID] 
     86 * @timeout: timeout (in TU) [%ASSOC_PARAMS_TIMEOUT] 
     87 * @ie: information element(s) to include in the association frames [%ASSOC_PARAMS_IE] 
     88 * @ie_len: length of the information element(s) 
     89 * @ssid: the SSID, always valid. 
     90 * @ssid_len: length of the SSID 
     91 */ 
     92struct association_params { 
     93        u8 *bssid; 
     94        u32 timeout; 
     95        u8 *ie; 
     96        int ie_len; 
     97        u8 *ssid; 
     98        int ssid_len; 
     99 
     100        unsigned int valid; 
     101}; 
     102#define ASSOC_PARAMS_TIMEOUT    (1<<0) 
     103 
     104/** 
     105 * struct key_params - key information 
     106 */ 
     107struct key_params { 
     108        u8 *key; 
     109        int key_len; 
     110        int key_id; 
     111        u32 key_type; 
     112        u8 *macaddress; 
     113        u32 cipher; 
     114}; 
     115 
    52116/* from net/wireless.h */ 
    53117struct wiphy; 
    54118 
     
    68132 * @add_virtual_intf: create a new virtual interface with the given name 
    69133 * 
    70134 * @del_virtual_intf: remove the virtual interface determined by ifindex. 
     135 * 
     136 * @change_virtual_intf: change type of virtual interface 
     137 * 
     138 * @associate: associate with given parameters 
     139 * 
     140 * @disassociate: disassociate from current AP 
     141 * 
     142 * @deauth: deauth from current AP 
     143 * 
     144 * @initiate_scan: scan with the given information (see &struct scan_params above) 
     145 * 
     146 * @get_association: get BSSID of the BSS that the device is currently 
     147 *                   associated to and return 1, or return 0 if not 
     148 *                   associated (or a negative error code) 
     149 * @get_auth_list: get list of BSSIDs of all BSSs the device has 
     150 *                 authenticated with, must call next_bssid for each, 
     151 *                 next_bssid returns non-zero on error, the given data 
     152 *                 is to be passed to that callback 
     153 * @add_key: add a key using &struct key_params 
     154 * @del_key: delete a key using info from &struct key_params 
    71155 */ 
    72156struct cfg80211_ops { 
    73157        int     (*add_virtual_intf)(struct wiphy *wiphy, char *name, 
    74                                     unsigned int type); 
     158                                    enum nl80211_iftype type); 
    75159        int     (*del_virtual_intf)(struct wiphy *wiphy, int ifindex); 
     160        int     (*change_virtual_intf)(struct wiphy *wiphy, int ifindex, 
     161                                       enum nl80211_iftype type); 
     162 
     163        int     (*associate)(struct wiphy *wiphy, struct net_device *dev, 
     164                             struct association_params *params); 
     165        int     (*disassociate)(struct wiphy *wiphy, struct net_device *dev); 
     166        int     (*deauth)(struct wiphy *wiphy, struct net_device *dev); 
     167 
     168 
     169        int     (*initiate_scan)(struct wiphy *wiphy, struct net_device *dev, 
     170                                 struct scan_params *params); 
     171 
     172 
     173        int     (*get_association)(struct wiphy *wiphy, struct net_device *dev, 
     174                                   u8 *bssid); 
     175 
     176        int     (*get_auth_list)(struct wiphy *wiphy, struct net_device *dev, 
     177                                 void *data, 
     178                                 int (*next_bssid)(void *data, u8 *bssid)); 
     179 
     180        int     (*add_key)(struct wiphy *wiphy, struct net_device *dev, 
     181                           struct key_params *params); 
     182        int     (*del_key)(struct wiphy *wiphy, struct net_device *dev, 
     183                           struct key_params *params); 
    76184}; 
    77185 
     186 
     187/* helper functions specific to nl80211 */ 
     188extern void *nl80211hdr_put(struct sk_buff *skb, u32 pid, 
     189                            u32 seq, int flags, u8 cmd); 
     190extern void *nl80211msg_new(struct sk_buff **skb, u32 pid, 
     191                            u32 seq, int flags, u8 cmd); 
     192 
    78193#endif /* __NET_CFG80211_H */ 
  • include/net/iw_handler.h

    old new  
    431431 * Those may be called only within the kernel. 
    432432 */ 
    433433 
    434 /* functions that may be called by driver modules */ 
     434/* First : function strictly used inside the kernel */ 
     435 
     436/* Handle /proc/net/wireless, called in net/code/dev.c */ 
     437extern int dev_get_wireless_info(char * buffer, char **start, off_t offset, 
     438                                 int length); 
     439 
     440/* Second : functions that may be called by driver modules */ 
    435441 
    436442/* Send a single event to user space */ 
    437443extern void wireless_send_event(struct net_device *     dev, 
  • include/net/mac80211.h

    old new  
    300300        /* Following five fields are used for IEEE 802.11H */ 
    301301        unsigned int radar_detect; 
    302302        unsigned int spect_mgmt; 
    303         /* All following fields are currently unused. */ 
    304303        unsigned int quiet_duration; /* duration of quiet period */ 
    305304        unsigned int quiet_offset; /* how far into the beacon is the quiet 
    306305                                    * period */ 
     
    521520         * per-packet RC4 key with each TX frame when doing hwcrypto */ 
    522521#define IEEE80211_HW_TKIP_REQ_PHASE2_KEY (1<<14) 
    523522 
     523        /* The device capable of supporting 11n */ 
     524#define IEEE80211_HW_SUPPORT_HT_MODE (1<<15) 
     525 
    524526        u32 flags;                      /* hardware flags defined above */ 
    525527 
    526528        /* Set to the size of a needed device specific skb headroom for TX skbs. */ 
     
    649651         * used if the wlan hardware or low-level driver implements PAE. 
    650652         * 80211.o module will anyway filter frames based on authorization 
    651653         * state, so this function pointer can be NULL if low-level driver does 
    652          * not require event notification about port state changes. 
    653          * Currently unused. */ 
     654         * not require event notification about port state changes. */ 
    654655        int (*set_port_auth)(struct ieee80211_hw *hw, u8 *addr, 
    655656                             int authorized); 
    656657 
     
    702703        /* Get statistics of the current TX queue status. This is used to get 
    703704         * number of currently queued packets (queue length), maximum queue 
    704705         * size (limit), and total number of packets sent using each TX queue 
    705          * (count). 
    706          * Currently unused. */ 
     706         * (count). This information is used for WMM to find out which TX 
     707         * queues have room for more packets and by hostapd to provide 
     708         * statistics about the current queueing state to external programs. */ 
    707709        int (*get_tx_stats)(struct ieee80211_hw *hw, 
    708710                            struct ieee80211_tx_queue_stats *stats); 
    709711 
     
    713715         * Must be atomic. */ 
    714716        u64 (*get_tsf)(struct ieee80211_hw *hw); 
    715717 
     718        /* Call low level driver with 11n Block Ack action */ 
     719        int (*handle_ba_action)(struct ieee80211_hw *hw, 
     720                                struct ieee80211_mgmt *mgmt); 
     721 
    716722        /* Reset the TSF timer and allow firmware/hardware to synchronize with 
    717723         * other STAs in the IBSS. This is only used in IBSS mode. This 
    718724         * function is optional if the firmware/hardware takes full care of 
    719725         * TSF synchronization. */ 
    720726        void (*reset_tsf)(struct ieee80211_hw *hw); 
    721727 
     728        /* Configure ht parameters. */ 
     729        int (*conf_ht)(struct ieee80211_hw *hw, 
     730                       struct ieee80211_ht_capability *ht_cap_param, 
     731                       struct ieee80211_ht_additional_info *ht_extra_param); 
     732 
     733        /* Get ht capabilities from the device */ 
     734        void (*get_ht_capab)(struct ieee80211_hw *hw, 
     735                             struct ieee80211_ht_capability *ht_cap_param); 
     736 
    722737        /* Setup beacon data for IBSS beacons. Unlike access point (Master), 
    723738         * IBSS uses a fixed beacon frame which is configured using this 
    724739         * function. This handler is required only for IBSS mode. */ 
Note: See TracBrowser for help on using the repository browser.