iPXE
Public Types | Data Fields
net80211_hw_info Struct Reference

Information on the capabilities of an 802.11 hardware device. More...

#include <net80211.h>

Public Types

enum  { NET80211_HW_RX_HAS_FCS = (1 << 1), NET80211_HW_NO_SHORT_PREAMBLE = (1 << 2), NET80211_HW_NO_SHORT_SLOT = (1 << 3) }
 A set of flags indicating peculiarities of this device. More...
 
enum  { NET80211_SIGNAL_NONE = 0, NET80211_SIGNAL_ARBITRARY, NET80211_SIGNAL_DB, NET80211_SIGNAL_DBM }
 Signal strength information that can be provided by the device. More...
 

Data Fields

u8 hwaddr [ETH_ALEN]
 Default hardware MAC address. More...
 
int modes
 A bitwise OR of the 802.11x modes supported by this device. More...
 
int bands
 A bitwise OR of the bands on which this device can communicate. More...
 
enum net80211_hw_info:: { ... }  flags
 A set of flags indicating peculiarities of this device. More...
 
enum net80211_hw_info:: { ... }  signal_type
 Signal strength information that can be provided by the device. More...
 
unsigned signal_max
 Maximum signal in arbitrary cases. More...
 
struct net80211_channel channels [NET80211_MAX_CHANNELS]
 List of RF channels supported by the card. More...
 
int nr_channels
 Number of supported channels. More...
 
u16 rates [NET80211_NR_BANDS][NET80211_MAX_RATES]
 List of transmission rates supported by the card, indexed by band. More...
 
int nr_rates [NET80211_NR_BANDS]
 Number of supported rates, indexed by band. More...
 
unsigned channel_change_time
 Estimate of the time required to change channels, in microseconds. More...
 

Detailed Description

Information on the capabilities of an 802.11 hardware device.

In its probe callback, an 802.11 driver must read hardware registers to determine the appropriate contents of this structure, fill it, and pass it to net80211_register() so that the 802.11 layer knows how to treat the hardware and what to advertise as supported to access points.

Definition at line 436 of file net80211.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

A set of flags indicating peculiarities of this device.

Enumerator
NET80211_HW_RX_HAS_FCS 

Received frames include a frame check sequence.

NET80211_HW_NO_SHORT_PREAMBLE 

Hardware doesn't support 2.4GHz short preambles.

           This is only relevant for 802.11b operation above
           2Mbps. All 802.11g devices support short preambles.
NET80211_HW_NO_SHORT_SLOT 

Hardware doesn't support 802.11g short slot operation.

Definition at line 456 of file net80211.h.

456  {
457  /** Received frames include a frame check sequence. */
458  NET80211_HW_RX_HAS_FCS = (1 << 1),
459 
460  /** Hardware doesn't support 2.4GHz short preambles
461  *
462  * This is only relevant for 802.11b operation above
463  * 2Mbps. All 802.11g devices support short preambles.
464  */
466 
467  /** Hardware doesn't support 802.11g short slot operation */
468  NET80211_HW_NO_SHORT_SLOT = (1 << 3),
469  } flags;
Hardware doesn't support 802.11g short slot operation.
Definition: net80211.h:468
Hardware doesn't support 2.4GHz short preambles.
Definition: net80211.h:465
enum net80211_hw_info::@575 flags
A set of flags indicating peculiarities of this device.
Received frames include a frame check sequence.
Definition: net80211.h:458

◆ anonymous enum

anonymous enum

Signal strength information that can be provided by the device.

Signal strength is passed to net80211_rx(), primarily to allow determination of the closest access point for a multi-AP network. The units are provided for completeness of status displays.

Enumerator
NET80211_SIGNAL_NONE 

No signal strength information supported.

NET80211_SIGNAL_ARBITRARY 

Signal strength in arbitrary units.

NET80211_SIGNAL_DB 

Signal strength in decibels relative to arbitrary base.

NET80211_SIGNAL_DBM 

Signal strength in decibels relative to 1mW.

Definition at line 478 of file net80211.h.

478  {
479  /** No signal strength information supported */
481  /** Signal strength in arbitrary units */
483  /** Signal strength in decibels relative to arbitrary base */
485  /** Signal strength in decibels relative to 1mW */
487  } signal_type;
enum net80211_hw_info::@576 signal_type
Signal strength information that can be provided by the device.
Signal strength in decibels relative to arbitrary base.
Definition: net80211.h:484
Signal strength in decibels relative to 1mW.
Definition: net80211.h:486
Signal strength in arbitrary units.
Definition: net80211.h:482
No signal strength information supported.
Definition: net80211.h:480

Field Documentation

◆ hwaddr

u8 net80211_hw_info::hwaddr[ETH_ALEN]

Default hardware MAC address.

The user may change this by setting the netX/mac setting before the driver's open function is called; in that case the driver must set the hardware MAC address to the address contained in the wrapping net_device's ll_addr field, or if that is impossible, set that ll_addr field back to the unchangeable hardware MAC address.

Definition at line 447 of file net80211.h.

Referenced by ath5k_attach(), ath9k_init_softc(), and rtl818x_probe().

◆ modes

int net80211_hw_info::modes

A bitwise OR of the 802.11x modes supported by this device.

Definition at line 450 of file net80211.h.

Referenced by ath5k_setup_bands(), ath9k_set_hw_capab(), and rtl818x_probe().

◆ bands

int net80211_hw_info::bands

A bitwise OR of the bands on which this device can communicate.

Definition at line 453 of file net80211.h.

Referenced by ath5k_setup_bands(), ath9k_set_hw_capab(), iwlist(), net80211_step_associate(), and rtl818x_probe().

◆ flags

enum { ... } net80211_hw_info::flags

A set of flags indicating peculiarities of this device.

Referenced by ath5k_probe(), ath9k_set_hw_capab(), net80211_process_ie(), net80211_rx(), net80211_send_assoc(), and rtl818x_probe().

◆ signal_type

enum { ... } net80211_hw_info::signal_type

Signal strength information that can be provided by the device.

Signal strength is passed to net80211_rx(), primarily to allow determination of the closest access point for a multi-AP network. The units are provided for completeness of status displays.

Referenced by ath5k_probe(), ath9k_set_hw_capab(), iwstat(), and rtl818x_probe().

◆ signal_max

unsigned net80211_hw_info::signal_max

Maximum signal in arbitrary cases.

If signal_type is NET80211_SIGNAL_ARBITRARY or NET80211_SIGNAL_DB, the driver should report it on a scale from 0 to signal_max.

Definition at line 495 of file net80211.h.

Referenced by ath5k_probe(), ath9k_set_hw_capab(), iwstat(), and rtl818x_probe().

◆ channels

struct net80211_channel net80211_hw_info::channels[NET80211_MAX_CHANNELS]

List of RF channels supported by the card.

Definition at line 498 of file net80211.h.

Referenced by ath5k_setup_bands(), ath9k_init_band_txpower(), ath9k_init_channels_rates(), and net80211_filter_hw_channels().

◆ nr_channels

int net80211_hw_info::nr_channels

Number of supported channels.

Definition at line 501 of file net80211.h.

Referenced by ath5k_setup_bands(), ath9k_init_band_txpower(), ath9k_init_channels_rates(), and net80211_filter_hw_channels().

◆ rates

u16 net80211_hw_info::rates[NET80211_NR_BANDS][NET80211_MAX_RATES]

List of transmission rates supported by the card, indexed by band.

Rates should be in 100kbps increments (e.g. 11 Mbps would be represented as the number 110).

Definition at line 508 of file net80211.h.

Referenced by ath5k_hw_write_rate_duration(), ath5k_setup_bands(), ath9k_init_channels_rates(), net80211_prepare_probe(), net80211_process_ie(), and rtl818x_probe().

◆ nr_rates

int net80211_hw_info::nr_rates[NET80211_NR_BANDS]

Number of supported rates, indexed by band.

Definition at line 511 of file net80211.h.

Referenced by ath5k_hw_write_rate_duration(), ath5k_setup_bands(), ath9k_init_channels_rates(), ath9k_process_rate(), net80211_process_ie(), and rtl818x_probe().

◆ channel_change_time

unsigned net80211_hw_info::channel_change_time

Estimate of the time required to change channels, in microseconds.

If this is not known, a guess on the order of a few milliseconds (value of 1000-5000) is reasonable.

Definition at line 518 of file net80211.h.

Referenced by ath5k_probe(), ath9k_set_hw_capab(), net80211_probe_step(), and rtl818x_probe().


The documentation for this struct was generated from the following file: