#ifndef __NET_CFG80211_H #define __NET_CFG80211_H #include #include #include #include /* * 802.11 configuration in-kernel interface * * Copyright 2006, 2007 Johannes Berg */ /** * struct vif_params - describes virtual interface parameters * @mesh_id: mesh ID to use * @mesh_id_len: length of the mesh ID */ struct vif_params { u8 *mesh_id; int mesh_id_len; }; /* Radiotap header iteration * implemented in net/wireless/radiotap.c * docs in Documentation/networking/radiotap-headers.txt */ /** * struct ieee80211_radiotap_iterator - tracks walk thru present radiotap args * @rtheader: pointer to the radiotap header we are walking through * @max_length: length of radiotap header in cpu byte ordering * @this_arg_index: IEEE80211_RADIOTAP_... index of current arg * @this_arg: pointer to current radiotap arg * @arg_index: internal next argument index * @arg: internal next argument pointer * @next_bitmap: internal pointer to next present u32 * @bitmap_shifter: internal shifter for curr u32 bitmap, b0 set == arg present */ struct ieee80211_radiotap_iterator { struct ieee80211_radiotap_header *rtheader; int max_length; int this_arg_index; u8 *this_arg; int arg_index; u8 *arg; __le32 *next_bitmap; u32 bitmap_shifter; }; extern int ieee80211_radiotap_iterator_init( struct ieee80211_radiotap_iterator *iterator, struct ieee80211_radiotap_header *radiotap_header, int max_length); extern int ieee80211_radiotap_iterator_next( struct ieee80211_radiotap_iterator *iterator); /** * struct key_params - key information * * Information about a key * * @key: key material * @key_len: length of key material * @cipher: cipher suite selector * @seq: sequence counter (IV/PN) for TKIP and CCMP keys, only used * with the get_key() callback, must be in little endian, * length given by @seq_len. */ struct key_params { u8 *key; u8 *seq; int key_len; int seq_len; u32 cipher; }; /** * struct beacon_parameters - beacon parameters * * Used to configure the beacon for an interface. * * @head: head portion of beacon (before TIM IE) * or %NULL if not changed * @tail: tail portion of beacon (after TIM IE) * or %NULL if not changed * @interval: beacon interval or zero if not changed * @dtim_period: DTIM period or zero if not changed * @head_len: length of @head * @tail_len: length of @tail */ struct beacon_parameters { u8 *head, *tail; int interval, dtim_period; int head_len, tail_len; }; /** * enum station_flags - station flags * * Station capability flags. Note that these must be the bits * according to the nl80211 flags. * * @STATION_FLAG_CHANGED: station flags were changed * @STATION_FLAG_AUTHORIZED: station is authorized to send frames (802.1X) * @STATION_FLAG_SHORT_PREAMBLE: station is capable of receiving frames * with short preambles * @STATION_FLAG_WME: station is WME/QoS capable */ enum station_flags { STATION_FLAG_CHANGED = 1<<0, STATION_FLAG_AUTHORIZED = 1<