struct vif_params - describes virtual interface parameters

struct vif_params {
    u8 * mesh_id;
    int mesh_id_len;
};

Members

mesh_id
mesh ID to use
mesh_id_len
length of the mesh ID

struct ieee80211_radiotap_iterator - tracks walk thru present radiotap args

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;
};

Members

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 beacon_parameters - beacon parameters

struct beacon_parameters {
    u8 * head;
    u8 * tail;
    int interval;
    int dtim_period;
    int head_len;
    int tail_len;
};

Members

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

Description

Used to configure the beacon for an interface.


enum station_flags

enum station_flags {
STATION_FLAG_CHANGED,
STATION_FLAG_AUTHORIZED,
STATION_FLAG_SHORT_PREAMBLE,
STATION_FLAG_WME
};

Constants

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

Description

Station capability flags. Note that these must be the bits according to the nl80211 flags.


enum plink_actions

enum plink_actions {
PLINK_ACTION_INVALID,
PLINK_ACTION_OPEN,
PLINK_ACTION_BLOCK
};

Constants

PLINK_ACTION_INVALID
action 0 is reserved
PLINK_ACTION_OPEN
start mesh peer link establishment
PLINK_ACTION_BLOCK
-- undescribed --

struct station_parameters - station parameters

struct station_parameters {
    u8 * supported_rates;
    struct net_device * vlan;
    u32 station_flags;
    int listen_interval;
    u16 aid;
    u8 supported_rates_len;
};

Members

supported_rates
supported rates in IEEE 802.11 format (or NULL for no change)
vlan
vlan interface station should belong to
station_flags
station flags (see enum station_flags)
listen_interval
listen interval or -1 for no change
aid
AID or zero for no change
supported_rates_len
number of supported rates

Description

Used to change and create a new station.


enum station_info_flags

enum station_info_flags {
STATION_INFO_INACTIVE_TIME,
STATION_INFO_RX_BYTES,
STATION_INFO_TX_BYTES,
STATION_INFO_LLID,
STATION_INFO_PLID,
STATION_INFO_PLINK_STATE,
STATION_INFO_SIGNAL,
STATION_INFO_TX_BITRATE
};

Constants

STATION_INFO_INACTIVE_TIME
inactive_time filled
STATION_INFO_RX_BYTES
rx_bytes filled
STATION_INFO_TX_BYTES
tx_bytes filled
STATION_INFO_LLID
llid filled
STATION_INFO_PLID
plid filled
STATION_INFO_PLINK_STATE
plink_state filled
STATION_INFO_SIGNAL
signal filled
STATION_INFO_TX_BITRATE
tx_bitrate fields are filled (tx_bitrate, tx_bitrate_flags and tx_bitrate_mcs)

Description

Used by the driver to indicate which info in struct station_info it has filled in during get_station or dump_station.


enum rate_info_flags

enum rate_info_flags {
RATE_INFO_FLAGS_MCS,
RATE_INFO_FLAGS_40_MHZ_WIDTH,
RATE_INFO_FLAGS_SHORT_GI
};

Constants

RATE_INFO_FLAGS_MCS
tx_bitrate_mcs filled
RATE_INFO_FLAGS_40_MHZ_WIDTH
40 Mhz width transmission
RATE_INFO_FLAGS_SHORT_GI
400ns guard interval

Description

Used by the driver to indicate the specific rate transmission type for 802.11n transmissions.


struct rate_info - bitrate information

struct rate_info {
    u8 flags;
    u8 mcs;
    u16 legacy;
};

Members

flags
bitflag of flags from enum rate_info_flags
mcs
mcs index if struct describes a 802.11n bitrate
legacy
bitrate in 100kbit/s for 802.11abg

Description

Information about a receiving or transmitting bitrate


struct station_info - station information

struct station_info {
    u32 filled;
    u32 inactive_time;
    u32 rx_bytes;
    u32 tx_bytes;
    u16 llid;
    u16 plid;
    u8 plink_state;
    s8 signal;
    struct rate_info txrate;
};

Members

filled
bitflag of flags from enum station_info_flags
inactive_time
time since last station activity (tx/rx) in milliseconds
rx_bytes
bytes received from this station
tx_bytes
bytes transmitted to this station
llid
mesh local link id
plid
mesh peer link id
plink_state
mesh peer link state
signal
signal strength of last received packet in dBm
txrate
current unicast bitrate to this station

Description

Station information filled by driver for get_station and dump_station.


enum monitor_flags

enum monitor_flags {
MONITOR_FLAG_FCSFAIL,
MONITOR_FLAG_PLCPFAIL,
MONITOR_FLAG_CONTROL,
MONITOR_FLAG_OTHER_BSS,
MONITOR_FLAG_COOK_FRAMES
};

Constants

MONITOR_FLAG_FCSFAIL
pass frames with bad FCS
MONITOR_FLAG_PLCPFAIL
pass frames with bad PLCP
MONITOR_FLAG_CONTROL
pass control frames
MONITOR_FLAG_OTHER_BSS
disable BSSID filtering
MONITOR_FLAG_COOK_FRAMES
report frames after processing

Description

Monitor interface configuration flags. Note that these must be the bits according to the nl80211 flags.


enum mpath_info_flags

enum mpath_info_flags {
MPATH_INFO_FRAME_QLEN,
MPATH_INFO_DSN,
MPATH_INFO_METRIC,
MPATH_INFO_EXPTIME,
MPATH_INFO_DISCOVERY_TIMEOUT,
MPATH_INFO_DISCOVERY_RETRIES,
MPATH_INFO_FLAGS
};

Constants

MPATH_INFO_FRAME_QLEN
-- undescribed --
MPATH_INFO_DSN
-- undescribed --
MPATH_INFO_METRIC
-- undescribed --
MPATH_INFO_EXPTIME
-- undescribed --
MPATH_INFO_DISCOVERY_TIMEOUT
-- undescribed --
MPATH_INFO_DISCOVERY_RETRIES
-- undescribed --
MPATH_INFO_FLAGS
-- undescribed --

Description

Used by the driver to indicate which info in struct mpath_info it has filled in during get_station or dump_station.

MPATH_INFO_FRAME_QLEN

frame_qlen filled

MPATH_INFO_DSN

dsn filled

MPATH_INFO_METRIC

metric filled

MPATH_INFO_EXPTIME

exptime filled

MPATH_INFO_DISCOVERY_TIMEOUT

discovery_timeout filled

MPATH_INFO_DISCOVERY_RETRIES

discovery_retries filled

MPATH_INFO_FLAGS

flags filled

struct mpath_info - mesh path information

struct mpath_info {
    u32 filled;
    u32 frame_qlen;
    u32 dsn;
    u32 metric;
    u32 exptime;
    u32 discovery_timeout;
    u8 discovery_retries;
    u8 flags;
};

Members

filled
bitfield of flags from enum mpath_info_flags
frame_qlen
number of queued frames for this destination
dsn
destination sequence number
metric
metric (cost) of this mesh path
exptime
expiration time for the mesh path from now, in msecs
discovery_timeout
total mesh path discovery timeout, in msecs
discovery_retries
mesh path discovery retries
flags
mesh path flags

Description

Mesh path information filled by driver for get_mpath and dump_mpath.


struct bss_parameters - BSS parameters

struct bss_parameters {
    int use_cts_prot;
    int use_short_preamble;
    int use_short_slot_time;
    u8 * basic_rates;
    u8 basic_rates_len;
};

Members

use_cts_prot
Whether to use CTS protection (0 = no, 1 = yes, -1 = do not change)
use_short_preamble
Whether the use of short preambles is allowed (0 = no, 1 = yes, -1 = do not change)
use_short_slot_time
Whether the use of short slot time is allowed (0 = no, 1 = yes, -1 = do not change)
basic_rates
basic rates in IEEE 802.11 format (or NULL for no change)
basic_rates_len
number of basic rates

Description

Used to change BSS parameters (mainly for AP mode).


enum reg_set_by

enum reg_set_by {
REGDOM_SET_BY_INIT,
REGDOM_SET_BY_CORE,
REGDOM_SET_BY_USER,
REGDOM_SET_BY_DRIVER,
REGDOM_SET_BY_COUNTRY_IE
};

Constants

REGDOM_SET_BY_INIT
regulatory domain was set by initialization. We will be using a static world regulatory domain by default.
REGDOM_SET_BY_CORE
Core queried CRDA for a dynamic world regulatory domain.
REGDOM_SET_BY_USER
User asked the wireless core to set the regulatory domain.
REGDOM_SET_BY_DRIVER
a wireless drivers has hinted to the wireless core it thinks its knows the regulatory domain we should be in.
REGDOM_SET_BY_COUNTRY_IE
the wireless core has received an 802.11 country information element with regulatory information it thinks we should consider.

struct ieee80211_txq_params - TX queue parameters

struct ieee80211_txq_params {
    enum nl80211_txq_q queue;
    u16 txop;
    u16 cwmin;
    u16 cwmax;
    u8 aifs;
};

Members

queue
TX queue identifier (NL80211_TXQ_Q_*)
txop
Maximum burst time in units of 32 usecs, 0 meaning disabled
cwmin
Minimum contention window [a value of the form 2^n-1 in the range 1..32767]
cwmax
Maximum contention window [a value of the form 2^n-1 in the range 1..32767]
aifs
Arbitration interframe space [0..255]

struct cfg80211_ops - backend description for wireless configuration

struct cfg80211_ops {
    int (*add_virtual_intf) (struct wiphy *wiphy, char *name,enum nl80211_iftype type, u32 *flags,struct vif_params *params);
    int (*del_virtual_intf) (struct wiphy *wiphy, int ifindex);
    int (*change_virtual_intf) (struct wiphy *wiphy, int ifindex,enum nl80211_iftype type, u32 *flags,struct vif_params *params);
    int (*add_key) (struct wiphy *wiphy, struct net_device *netdev,u8 key_index, u8 *mac_addr,struct key_params *params);
    int (*get_key) (struct wiphy *wiphy, struct net_device *netdev,u8 key_index, u8 *mac_addr, void *cookie,void (*callback);
    int (*del_key) (struct wiphy *wiphy, struct net_device *netdev,u8 key_index, u8 *mac_addr);
    int (*set_default_key) (struct wiphy *wiphy,struct net_device *netdev,u8 key_index);
    int (*add_beacon) (struct wiphy *wiphy, struct net_device *dev,struct beacon_parameters *info);
    int (*set_beacon) (struct wiphy *wiphy, struct net_device *dev,struct beacon_parameters *info);
    int (*del_beacon) (struct wiphy *wiphy, struct net_device *dev);
    int (*add_station) (struct wiphy *wiphy, struct net_device *dev,u8 *mac, struct station_parameters *params);
    int (*del_station) (struct wiphy *wiphy, struct net_device *dev,u8 *mac);
    int (*change_station) (struct wiphy *wiphy, struct net_device *dev,u8 *mac, struct station_parameters *params);
    int (*get_mesh_params) (struct wiphy *wiphy,struct net_device *dev,struct mesh_config *conf);
    int (*set_mesh_params) (struct wiphy *wiphy,struct net_device *dev,const struct mesh_config *nconf, u32 mask);
    int (*change_bss) (struct wiphy *wiphy, struct net_device *dev,struct bss_parameters *params);
    int (*set_txq_params) (struct wiphy *wiphy,struct ieee80211_txq_params *params);
    int (*set_channel) (struct wiphy *wiphy,struct ieee80211_channel *chan,enum nl80211_channel_type channel_type);
};

Members

add_virtual_intf
create a new virtual interface with the given name, must set the struct wireless_dev's iftype.
del_virtual_intf
remove the virtual interface determined by ifindex.
change_virtual_intf
change type/configuration of virtual interface, keep the struct wireless_dev's iftype updated.
add_key
add a key with the given parameters. mac_addr will be NULL when adding a group key.
get_key
get information about the key with the given parameters. mac_addr will be NULL when requesting information for a group key. All pointers given to the callback function need not be valid after it returns.
del_key
remove a key given the mac_addr (NULL for a group key) and key_index
set_default_key
set the default key on an interface
add_beacon
Add a beacon with given parameters, head, interval and dtim_period will be valid, tail is optional.
set_beacon
Change the beacon parameters for an access point mode interface. This should reject the call when no beacon has been configured.
del_beacon
Remove beacon configuration and stop sending the beacon.
add_station
Add a new station.
del_station
Remove a station; mac may be NULL to remove all stations.
change_station
Modify a given station.
get_mesh_params
Put the current mesh parameters into *params
set_mesh_params
Set mesh parameters. The mask is a bitfield which tells us which parameters to set, and which to leave alone.
change_bss
Modify parameters for a given BSS.
set_txq_params
Set TX queue parameters
set_channel
Set channel

Description

This struct is registered by fullmac card drivers and/or wireless stacks in order to handle configuration requests on their interfaces.

All callbacks except where otherwise noted should return 0 on success or a negative error code.

All operations are currently invoked under rtnl for consistency with the wireless extensions but this is subject to reevaluation as soon as this code is used more widely and we have a first user without wext.