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.