The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/net80211/ieee80211_ioctl.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*      $OpenBSD: ieee80211_ioctl.h,v 1.43 2022/03/14 15:07:24 stsp Exp $       */
    2 /*      $NetBSD: ieee80211_ioctl.h,v 1.7 2004/04/30 22:51:04 dyoung Exp $       */
    3 
    4 /*-
    5  * Copyright (c) 2001 Atsushi Onoe
    6  * Copyright (c) 2002, 2003 Sam Leffler, Errno Consulting
    7  * All rights reserved.
    8  *
    9  * Redistribution and use in source and binary forms, with or without
   10  * modification, are permitted provided that the following conditions
   11  * are met:
   12  * 1. Redistributions of source code must retain the above copyright
   13  *    notice, this list of conditions and the following disclaimer.
   14  * 2. Redistributions in binary form must reproduce the above copyright
   15  *    notice, this list of conditions and the following disclaimer in the
   16  *    documentation and/or other materials provided with the distribution.
   17  * 3. The name of the author may not be used to endorse or promote products
   18  *    derived from this software without specific prior written permission.
   19  *
   20  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
   21  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   22  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
   23  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
   24  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   25  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
   26  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
   27  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   28  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   29  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   30  *
   31  * $FreeBSD: src/sys/net80211/ieee80211_ioctl.h,v 1.5 2004/03/30 22:57:57 sam Exp $
   32  */
   33 #ifndef _NET80211_IEEE80211_IOCTL_H_
   34 #define _NET80211_IEEE80211_IOCTL_H_
   35 
   36 /*
   37  * IEEE 802.11 ioctls.
   38  */
   39 
   40 /* per-interface statistics */
   41 struct ieee80211_stats {
   42         u_int32_t       is_rx_badversion;       /* rx frame with bad version */
   43         u_int32_t       is_rx_tooshort;         /* rx frame too short */
   44         u_int32_t       is_rx_wrongbss;         /* rx from wrong bssid */
   45         u_int32_t       is_rx_dup;              /* rx discard 'cuz dup */
   46         u_int32_t       is_rx_wrongdir;         /* rx w/ wrong direction */
   47         u_int32_t       is_rx_mcastecho;        /* rx discard 'cuz mcast echo */
   48         u_int32_t       is_rx_notassoc;         /* rx discard 'cuz sta !assoc */
   49         u_int32_t       is_rx_nowep;            /* rx w/ wep but wep !config */
   50         u_int32_t       is_rx_unencrypted;      /* rx w/o wep but wep config */
   51         u_int32_t       is_rx_wepfail;          /* rx wep processing failed */
   52         u_int32_t       is_rx_decap;            /* rx decapsulation failed */
   53         u_int32_t       is_rx_mgtdiscard;       /* rx discard mgt frames */
   54         u_int32_t       is_rx_ctl;              /* rx discard ctrl frames */
   55         u_int32_t       is_rx_rstoobig;         /* rx rate set truncated */
   56         u_int32_t       is_rx_elem_missing;     /* rx required element missing*/
   57         u_int32_t       is_rx_elem_toobig;      /* rx element too big */
   58         u_int32_t       is_rx_elem_toosmall;    /* rx element too small */
   59         u_int32_t       is_rx_badchan;          /* rx frame w/ invalid chan */
   60         u_int32_t       is_rx_chanmismatch;     /* rx frame chan mismatch */
   61         u_int32_t       is_rx_nodealloc;        /* rx frame dropped */
   62         u_int32_t       is_rx_ssidmismatch;     /* rx frame ssid mismatch  */
   63         u_int32_t       is_rx_auth_unsupported; /* rx w/ unsupported auth alg */
   64         u_int32_t       is_rx_auth_fail;        /* rx sta auth failure */
   65         u_int32_t       is_rx_assoc_bss;        /* rx assoc from wrong bssid */
   66         u_int32_t       is_rx_assoc_notauth;    /* rx assoc w/o auth */
   67         u_int32_t       is_rx_assoc_capmismatch;/* rx assoc w/ cap mismatch */
   68         u_int32_t       is_rx_assoc_norate;     /* rx assoc w/ no rate match */
   69         u_int32_t       is_rx_deauth;           /* rx deauthentication */
   70         u_int32_t       is_rx_disassoc;         /* rx disassociation */
   71         u_int32_t       is_rx_badsubtype;       /* rx frame w/ unknown subtype*/
   72         u_int32_t       is_rx_nombuf;           /* rx failed for lack of mbuf */
   73         u_int32_t       is_rx_decryptcrc;       /* rx decrypt failed on crc */
   74         u_int32_t       is_rx_ahdemo_mgt;       /* rx discard ahdemo mgt frame*/
   75         u_int32_t       is_rx_bad_auth;         /* rx bad auth request */
   76         u_int32_t       is_tx_nombuf;           /* tx failed for lack of mbuf */
   77         u_int32_t       is_tx_nonode;           /* tx failed for no node */
   78         u_int32_t       is_tx_unknownmgt;       /* tx of unknown mgt frame */
   79         u_int32_t       is_scan_active;         /* active scans started */
   80         u_int32_t       is_scan_passive;        /* passive scans started */
   81         u_int32_t       is_node_timeout;        /* nodes timed out inactivity */
   82         u_int32_t       is_crypto_nomem;        /* no memory for crypto ctx */
   83         u_int32_t       is_rx_assoc_badrsnie;   /* rx assoc w/ bad RSN IE */
   84         u_int32_t       is_rx_unauth;           /* rx port not valid */
   85         u_int32_t       is_tx_noauth;           /* tx port not valid */
   86         u_int32_t       is_rx_eapol_key;        /* rx eapol-key frames */
   87         u_int32_t       is_rx_eapol_replay;     /* rx replayed eapol frames */
   88         u_int32_t       is_rx_eapol_badmic;     /* rx eapol frames w/ bad mic */
   89         u_int32_t       is_rx_remmicfail;       /* rx tkip remote mic fails */
   90         u_int32_t       is_rx_locmicfail;       /* rx tkip local mic fails */
   91         u_int32_t       is_tkip_replays;
   92         u_int32_t       is_tkip_icv_errs;
   93         u_int32_t       is_ccmp_replays;
   94         u_int32_t       is_ccmp_dec_errs;
   95         u_int32_t       is_cmac_replays;
   96         u_int32_t       is_cmac_icv_errs;
   97         u_int32_t       is_pbac_errs;
   98         u_int32_t       is_ht_nego_no_mandatory_mcs;
   99         u_int32_t       is_ht_nego_no_basic_mcs;
  100         u_int32_t       is_ht_nego_bad_crypto;
  101         u_int32_t       is_ht_prot_change;
  102         u_int32_t       is_ht_rx_ba_agreements;
  103         u_int32_t       is_ht_tx_ba_agreements;
  104         u_int32_t       is_ht_rx_frame_below_ba_winstart;
  105         u_int32_t       is_ht_rx_frame_above_ba_winend;
  106         u_int32_t       is_ht_rx_ba_window_slide;
  107         u_int32_t       is_ht_rx_ba_window_jump;
  108         u_int32_t       is_ht_rx_ba_no_buf;
  109         u_int32_t       is_ht_rx_ba_frame_lost;
  110         u_int32_t       is_ht_rx_ba_window_gap_timeout;
  111         u_int32_t       is_ht_rx_ba_timeout;
  112         u_int32_t       is_ht_tx_ba_timeout;
  113         u_int32_t       is_vht_nego_no_mandatory_mcs;
  114         u_int32_t       is_vht_nego_no_basic_mcs;
  115 };
  116 
  117 #define SIOCG80211STATS         _IOWR('i', 242, struct ifreq)
  118 
  119 /* network identifier (ESSID), nwid is pointed at by ifr.ifr_data */
  120 struct ieee80211_nwid {
  121         u_int8_t        i_len;
  122         u_int8_t        i_nwid[IEEE80211_NWID_LEN];
  123 };
  124 
  125 #define SIOCS80211NWID          _IOWR('i', 230, struct ifreq)
  126 #define SIOCG80211NWID          _IOWR('i', 231, struct ifreq)
  127 
  128 /* network key (WEP), the first member must be matched with struct ifreq */
  129 struct ieee80211_nwkey {
  130         char            i_name[IFNAMSIZ];       /* if_name, e.g. "wi0" */
  131         int             i_wepon;                /* wep enabled flag */
  132         int             i_defkid;               /* default encrypt key id */
  133         struct {
  134                 int             i_keylen;
  135                 u_int8_t        *i_keydat;
  136         }               i_key[IEEE80211_WEP_NKID];
  137 };
  138 
  139 #define IEEE80211_NWKEY_OPEN    0               /* No privacy */
  140 #define IEEE80211_NWKEY_WEP     1               /* WEP enabled */
  141 #define IEEE80211_NWKEY_EAP     2               /* EAP enabled */
  142 #define IEEE80211_NWKEY_PERSIST 0x100           /* designate persist keyset */
  143 
  144 #define SIOCS80211NWKEY          _IOW('i', 232, struct ieee80211_nwkey)
  145 #define SIOCG80211NWKEY         _IOWR('i', 233, struct ieee80211_nwkey)
  146 
  147 /* power management parameters */
  148 struct ieee80211_power {
  149         char            i_name[IFNAMSIZ];       /* if_name, e.g. "wi0" */
  150         int             i_enabled;              /* 1 == on, 0 == off */
  151         int             i_maxsleep;             /* max sleep in ms */
  152 };
  153 #define SIOCS80211POWER          _IOW('i', 234, struct ieee80211_power)
  154 #define SIOCG80211POWER         _IOWR('i', 235, struct ieee80211_power)
  155 
  156 #define IEEE80211_AUTH_NONE     0
  157 #define IEEE80211_AUTH_OPEN     1
  158 #define IEEE80211_AUTH_SHARED   2
  159 
  160 /* channel request */
  161 struct ieee80211chanreq {
  162         char            i_name[IFNAMSIZ];       /* if_name, e.g. "wi0" */
  163         u_int16_t       i_channel;
  164 };
  165 
  166 /*
  167  * Channels are specified by frequency and attributes.
  168  */
  169 struct ieee80211_chaninfo {
  170         u_int16_t       ic_freq;        /* setting in MHz */
  171         u_int16_t       ic_flags;       /* see below */
  172 };
  173 
  174 /*
  175  * Channel attributes.
  176  */
  177 #define IEEE80211_CHANINFO_2GHZ         0x0080  /* 2 GHz spectrum channel */
  178 #define IEEE80211_CHANINFO_5GHZ         0x0100  /* 5 GHz spectrum channel */
  179 #define IEEE80211_CHANINFO_PASSIVE      0x0200  /* Only passive scan allowed */
  180 
  181 struct ieee80211_chanreq_all {
  182         char            i_name[IFNAMSIZ];       /* if_name, e.g. "wi0" */
  183         struct ieee80211_chaninfo *i_chans; /* array of 256 elements */
  184 };
  185 
  186 #ifndef IEEE80211_CHAN_ANY
  187 #define IEEE80211_CHAN_ANY      0xffff
  188 #endif
  189 
  190 #define SIOCS80211CHANNEL        _IOW('i', 238, struct ieee80211chanreq)
  191 #define SIOCG80211CHANNEL       _IOWR('i', 239, struct ieee80211chanreq)
  192 #define SIOCG80211ALLCHANS      _IOWR('i', 215, struct ieee80211_chanreq_all)
  193 
  194 /* BSS identifier */
  195 struct ieee80211_bssid {
  196         char            i_name[IFNAMSIZ];       /* if_name, e.g. "wi0" */
  197         u_int8_t        i_bssid[IEEE80211_ADDR_LEN];
  198 };
  199 
  200 #define SIOCS80211BSSID          _IOW('i', 240, struct ieee80211_bssid)
  201 #define SIOCG80211BSSID         _IOWR('i', 241, struct ieee80211_bssid)
  202 
  203 /* transmit power */
  204 struct ieee80211_txpower {
  205         char            i_name[IFNAMSIZ];       /* if_name, e.g. "wi0" */
  206         int             i_mode;                 /* auto, manual */
  207         int16_t         i_val;                  /* dBm */
  208 };
  209 
  210 #define SIOCS80211TXPOWER        _IOW('i', 243, struct ieee80211_txpower)
  211 #define SIOCG80211TXPOWER       _IOWR('i', 244, struct ieee80211_txpower)
  212 
  213 #define IEEE80211_TXPOWER_MODE_FIXED    0       /* fixed tx power value */
  214 #define IEEE80211_TXPOWER_MODE_AUTO     1       /* auto level control */
  215 
  216 struct ieee80211_wpapsk {
  217         char            i_name[IFNAMSIZ];       /* if_name, e.g. "wi0" */
  218         int             i_enabled;
  219         u_int8_t        i_psk[32];
  220 };
  221 
  222 #define SIOCS80211WPAPSK         _IOW('i', 245, struct ieee80211_wpapsk)
  223 #define SIOCG80211WPAPSK        _IOWR('i', 246, struct ieee80211_wpapsk)
  224 
  225 #define IEEE80211_WPA_PROTO_WPA1        0x01
  226 #define IEEE80211_WPA_PROTO_WPA2        0x02
  227 
  228 #define IEEE80211_WPA_CIPHER_NONE       0x00
  229 #define IEEE80211_WPA_CIPHER_USEGROUP   0x01
  230 #define IEEE80211_WPA_CIPHER_WEP40      0x02
  231 #define IEEE80211_WPA_CIPHER_TKIP       0x04
  232 #define IEEE80211_WPA_CIPHER_CCMP       0x08
  233 #define IEEE80211_WPA_CIPHER_WEP104     0x10
  234 #define IEEE80211_WPA_CIPHER_BIP        0x20
  235 
  236 #define IEEE80211_WPA_AKM_PSK           0x01
  237 #define IEEE80211_WPA_AKM_8021X         0x02
  238 #define IEEE80211_WPA_AKM_SHA256_PSK    0x04
  239 #define IEEE80211_WPA_AKM_SHA256_8021X  0x08
  240 
  241 struct ieee80211_wpaparams {
  242         char    i_name[IFNAMSIZ];               /* if_name, e.g. "wi0" */
  243         int     i_enabled;
  244         u_int   i_protos;
  245         u_int   i_akms;
  246         u_int   i_ciphers;
  247         u_int   i_groupcipher;
  248 };
  249 
  250 #define SIOCS80211WPAPARMS       _IOW('i', 247, struct ieee80211_wpaparams)
  251 #define SIOCG80211WPAPARMS      _IOWR('i', 248, struct ieee80211_wpaparams)
  252 
  253 struct ieee80211_keyavail {
  254         char            i_name[IFNAMSIZ];       /* if_name, e.g. "wi0" */
  255         u_int8_t        i_macaddr[IEEE80211_ADDR_LEN];
  256         u_int8_t        i_key[32];
  257         u_int32_t       i_lifetime;
  258 };
  259 
  260 struct ieee80211_keyrun {
  261         char            i_name[IFNAMSIZ];       /* if_name, e.g. "wi0" */
  262         u_int8_t        i_macaddr[IEEE80211_ADDR_LEN];
  263 };
  264 
  265 #define SIOCS80211KEYAVAIL       _IOW('i', 251, struct ieee80211_keyavail)
  266 #define SIOCS80211KEYRUN         _IOW('i', 252, struct ieee80211_keyrun)
  267 
  268 /* scan request (will block) */
  269 #define IEEE80211_SCAN_TIMEOUT  30      /* timeout in seconds */
  270 
  271 #define SIOCS80211SCAN           _IOW('i', 210, struct ifreq)
  272 
  273 #define SIOCG80211JOINALL       _IOWR('i', 218, struct ieee80211_joinreq_all)
  274 #define SIOCS80211JOIN          _IOWR('i', 255, struct ifreq)
  275 #define SIOCG80211JOIN          _IOWR('i', 0, struct ifreq)
  276 
  277 /* join is pointed at by ifr.ifr_data */
  278 struct ieee80211_join {
  279         u_int8_t        i_len;  /* length of i_nwid */
  280         u_int8_t        i_nwid[IEEE80211_NWID_LEN];
  281         u_int32_t       i_flags;
  282 
  283         struct ieee80211_wpaparams       i_wpaparams;
  284         struct ieee80211_wpapsk          i_wpapsk;
  285         struct ieee80211_nwkey           i_nwkey;
  286 };
  287 
  288 struct ieee80211_joinreq_all {
  289         char                     ja_ifname[IFNAMSIZ];
  290         int                      ja_nodes; /* returned count */
  291         size_t                   ja_size;  /* size of node buffer */
  292         struct ieee80211_join   *ja_node;  /* allocated node buffer */
  293 };
  294 
  295 
  296 #define IEEE80211_JOIN_SHOW     0x01
  297 #define IEEE80211_JOIN_FOUND    0x02
  298 #define IEEE80211_JOIN_DEL      0x04
  299 #define IEEE80211_JOIN_NWKEY    0x08
  300 #define IEEE80211_JOIN_WPA      0x10
  301 #define IEEE80211_JOIN_WPAPSK   0x20
  302 #define IEEE80211_JOIN_8021X    0x40
  303 #define IEEE80211_JOIN_ANY      0x80
  304 #define IEEE80211_JOIN_DEL_ALL  0x100
  305 
  306 /* node and requests */
  307 struct ieee80211_nodereq {
  308         char            nr_ifname[IFNAMSIZ];            /* e.g. "ath0" */
  309 
  310         /* Node address and name information */
  311         u_int8_t        nr_macaddr[IEEE80211_ADDR_LEN]; /* node lladdr */
  312         u_int8_t        nr_bssid[IEEE80211_ADDR_LEN];   /* bssid */
  313         u_int8_t        nr_nwid_len;                    /* ESSID length */
  314         u_int8_t        nr_nwid[IEEE80211_NWID_LEN];    /* ESSID */
  315 
  316         /* Channel and rates */
  317         u_int16_t       nr_channel;                     /* last channel */
  318         u_int16_t       nr_chan_flags;                  /* channel flags */
  319         u_int8_t        nr_nrates;                      /* rate count */
  320         u_int8_t        nr_rates[IEEE80211_RATE_MAXSIZE];       /* rate set */
  321 
  322         /* Node status information */
  323         int8_t          nr_rssi;        /* received signal strength */
  324         int8_t          nr_max_rssi;    /* maximum rssi */
  325         u_int8_t        nr_tstamp[8];   /* from last received beacon */
  326         u_int16_t       nr_intval;      /* beacon interval */
  327         u_int16_t       nr_capinfo;     /* capabilities */
  328         u_int8_t        nr_erp;         /* 11g only */
  329         u_int8_t        nr_pwrsave;     /* power saving mode */
  330         u_int16_t       nr_associd;     /* assoc response */
  331         u_int16_t       nr_txseq;       /* seq to be transmitted */
  332         u_int16_t       nr_rxseq;       /* seq previous received */
  333         u_int32_t       nr_fails;       /* failure count to associate */
  334         u_int32_t       nr_inact;       /* inactivity mark count */
  335         u_int8_t        nr_txrate;      /* index to nr_rates[] */
  336         u_int16_t       nr_state;       /* node state in the cache */
  337 
  338         /* RSN */
  339         u_int           nr_rsnprotos;
  340         u_int           nr_rsnciphers;
  341         u_int           nr_rsnakms;
  342 
  343         /* Node flags */
  344         u_int8_t        nr_flags;
  345 
  346         /* HT */
  347         uint16_t                nr_htcaps;
  348         uint8_t                 nr_rxmcs[howmany(80,NBBY)];
  349         uint16_t                nr_max_rxrate;  /* in Mb/s, 0 <= rate <= 1023 */
  350         uint8_t                 nr_tx_mcs_set;
  351 
  352         /* HT / VHT */
  353         uint8_t                 nr_txmcs;
  354 
  355         /* VHT */
  356         uint8_t                 nr_vht_ss;
  357 
  358         u_int32_t       nr_assoc_fail;  /* association failure reasons */
  359 };
  360 
  361 #define IEEE80211_NODEREQ_STATE(_s)     (1 << _s)
  362 #define IEEE80211_NODEREQ_STATE_BITS                                    \
  363         "\2\01CACHE\02BSS\03AUTH\04ASSOC\05COLLECT"
  364 
  365 #define IEEE80211_NODEREQ_RSSI(_nr)                                     \
  366         ((u_int)(((float)(_nr)->nr_rssi / (_nr)->nr_max_rssi) * 100))
  367 
  368 #define IEEE80211_NODEREQ_STA           0x00    /* station */
  369 #define IEEE80211_NODEREQ_AP            0x01    /* access point */
  370 #define IEEE80211_NODEREQ_AP_BSS        0x02    /* current bss access point */
  371 #define IEEE80211_NODEREQ_COPY          0x04    /* add node with flags */
  372 #define IEEE80211_NODEREQ_HT            0x08    /* HT negotiated */
  373 #define IEEE80211_NODEREQ_VHT           0x10    /* VHT negotiated */
  374 
  375 #define SIOCG80211NODE          _IOWR('i', 211, struct ieee80211_nodereq)
  376 #define SIOCS80211NODE           _IOW('i', 212, struct ieee80211_nodereq)
  377 #define SIOCS80211DELNODE        _IOW('i', 213, struct ieee80211_nodereq)
  378 
  379 #define IEEE80211_NODEREQ_ASSOCFAIL_CHAN        0x01
  380 #define IEEE80211_NODEREQ_ASSOCFAIL_IBSS        0x02
  381 #define IEEE80211_NODEREQ_ASSOCFAIL_PRIVACY     0x04
  382 #define IEEE80211_NODEREQ_ASSOCFAIL_BASIC_RATE  0x08
  383 #define IEEE80211_NODEREQ_ASSOCFAIL_ESSID       0x10
  384 #define IEEE80211_NODEREQ_ASSOCFAIL_BSSID       0x20
  385 #define IEEE80211_NODEREQ_ASSOCFAIL_WPA_PROTO   0x40
  386 #define IEEE80211_NODEREQ_ASSOCFAIL_WPA_KEY     0x80
  387 #define IEEE80211_NODEREQ_ASSOCFAIL_BITS        \
  388         "\2\1!CHAN\2!IBSS\3!PRIVACY\4!BASICRATE\5!ESSID\6!BSSID\7!WPAPROTO" \
  389         "\10!WPAKEY"
  390 
  391 /* get the entire node cache */
  392 struct ieee80211_nodereq_all {
  393         char                            na_ifname[IFNAMSIZ];    /* e.g. "ath0" */
  394 
  395         int                             na_nodes;       /* returned count */
  396         size_t                          na_size;        /* size of node buffer */
  397         struct ieee80211_nodereq        *na_node;       /* allocated node buffer */
  398 
  399         /* Match nodes by flag */
  400         u_int8_t                        na_flags;       /* IEEE80211_NODEREQ_* */
  401 };
  402 
  403 #define SIOCG80211ALLNODES      _IOWR('i', 214, struct ieee80211_nodereq_all)
  404 
  405 /* net80211 specific interface flags */
  406 #define IEEE80211_F_HIDENWID    0x00000001      /* CONF: hidden ssid mode */
  407 #define IEEE80211_F_NOBRIDGE    0x00000002      /* CONF: no internal bridging */
  408 #define IEEE80211_F_HOSTAPMASK  0x00000003
  409 #define IEEE80211_F_STAYAUTH    0x00000004      /* CONF: ignore deauth */
  410 #define IEEE80211_F_NOMIMO      0x00000008      /* CONF: disable MIMO */
  411 #define IEEE80211_F_USERBITS    "\2\01HIDENWID\02NOBRIDGE\03STAYAUTH\04NOMIMO"
  412 
  413 struct ieee80211_flags {
  414         const char              *f_name;
  415         u_int                   f_flag;
  416 };
  417 
  418 #define IEEE80211_FLAGS {                       \
  419         { "hidenwid", IEEE80211_F_HIDENWID },   \
  420         { "nobridge", IEEE80211_F_NOBRIDGE },   \
  421         { "stayauth", IEEE80211_F_STAYAUTH },   \
  422         { "nomimo", IEEE80211_F_NOMIMO }        \
  423 }
  424 
  425 #define SIOCG80211FLAGS         _IOWR('i', 216, struct ifreq)
  426 #define SIOCS80211FLAGS          _IOW('i', 217, struct ifreq)
  427 
  428 #endif /* _NET80211_IEEE80211_IOCTL_H_ */

Cache object: 2614d2cb1afea73488bbb14ef07df810


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.