Skip to content

Commit

Permalink
[PATCH] mac80211: renumber and document the hardware flags
Browse files Browse the repository at this point in the history
Currently, hardware flags that drivers must set are not
documented well enough. Fix this.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Michael Wu <flamingice@sourmilk.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Johannes Berg authored and David S. Miller committed Oct 10, 2007
1 parent 0ec3ca4 commit 1bc0826
Showing 1 changed file with 45 additions and 40 deletions.
85 changes: 45 additions & 40 deletions include/net/mac80211.h
Original file line number Diff line number Diff line change
Expand Up @@ -598,6 +598,51 @@ typedef enum set_key_cmd {
SET_KEY, DISABLE_KEY,
} set_key_cmd;


/**
* enum ieee80211_hw_flags - hardware flags
*
* These flags are used to indicate hardware capabilities to
* the stack. Generally, flags here should have their meaning
* done in a way that the simplest hardware doesn't need setting
* any particular flags. There are some exceptions to this rule,
* however, so you are advised to review these flags carefully.
*
* @IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE:
* The device only needs to be supplied with a beacon template.
* If you need the host to generate each beacon then don't use
* this flag and call ieee80211_beacon_get() when you need the
* next beacon frame. Note that if you set this flag, you must
* implement the set_tim() callback for powersave mode to work
* properly.
* This flag is only relevant for access-point mode.
*
* @IEEE80211_HW_RX_INCLUDES_FCS:
* Indicates that received frames passed to the stack include
* the FCS at the end.
*
* @IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING:
* Some wireless LAN chipsets buffer broadcast/multicast frames
* for power saving stations in the hardware/firmware and others
* rely on the host system for such buffering. This option is used
* to configure the IEEE 802.11 upper layer to buffer broadcast and
* multicast frames when there are power saving stations so that
* the driver can fetch them with ieee80211_get_buffered_bc(). Note
* that not setting this flag works properly only when the
* %IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE is also not set because
* otherwise the stack will not know when the DTIM beacon was sent.
*
* @IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED:
* Channels are already configured to the default regulatory domain
* specified in the device's EEPROM
*/
enum ieee80211_hw_flags {
IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE = 1<<0,
IEEE80211_HW_RX_INCLUDES_FCS = 1<<1,
IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING = 1<<2,
IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED = 1<<3,
};

/**
* struct ieee80211_hw - hardware information and state
* TODO: move documentation into kernel-doc format
Expand All @@ -621,46 +666,6 @@ struct ieee80211_hw {

/* The rest is information about your hardware */

/* TODO: frame_type 802.11/802.3, sw_encryption requirements */

/* hole at 0 */

/*
* The device only needs to be supplied with a beacon template.
* If you need the host to generate each beacon then don't use
* this flag and use ieee80211_beacon_get().
*/
#define IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE (1<<1)

/* hole at 2 */

/* Whether RX frames passed to ieee80211_rx() include FCS in the end */
#define IEEE80211_HW_RX_INCLUDES_FCS (1<<3)

/* Some wireless LAN chipsets buffer broadcast/multicast frames for
* power saving stations in the hardware/firmware and others rely on
* the host system for such buffering. This option is used to
* configure the IEEE 802.11 upper layer to buffer broadcast/multicast
* frames when there are power saving stations so that low-level driver
* can fetch them with ieee80211_get_buffered_bc(). */
#define IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING (1<<4)

/* hole at 5 */

/* hole at 6 */

/* hole at 7 */

/* hole at 8 */

/* hole at 9 */

/* hole at 10 */

/* Channels are already configured to the default regulatory domain
* specified in the device's EEPROM */
#define IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED (1<<11)

u32 flags; /* hardware flags defined above */

/* Set to the size of a needed device specific skb headroom for TX skbs. */
Expand Down

0 comments on commit 1bc0826

Please sign in to comment.