aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-07-02 12:09:12 -0400
committerJohannes Berg <johannes.berg@intel.com>2013-08-12 08:09:29 -0400
commitaf61a165187bb94b1dc7628ef815c23d0eacf40b (patch)
tree9dae3fcf629a55b0f3e91bec51ad92a9d77e6402 /include/net
parent1da5fcc86d71040c5b294ca5611ae6c86bfa815c (diff)
mac80211: add control port protocol TX control flag
A lot of drivers check the frame protocol for ETH_P_PAE, for various reasons (like making those more reliable). Add a new flags bitmap to the TX control info and a new flag indicating the control port protocol is in use to let all drivers also apply such logic to other control port protocols, should they be configured. Also use the new flag in the iwlwifi drivers. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/mac80211.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 9cda3728c2cb..b70c00111323 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -375,7 +375,7 @@ struct ieee80211_bss_conf {
375}; 375};
376 376
377/** 377/**
378 * enum mac80211_tx_control_flags - flags to describe transmission information/status 378 * enum mac80211_tx_info_flags - flags to describe transmission information/status
379 * 379 *
380 * These flags are used with the @flags member of &ieee80211_tx_info. 380 * These flags are used with the @flags member of &ieee80211_tx_info.
381 * 381 *
@@ -471,7 +471,7 @@ struct ieee80211_bss_conf {
471 * Note: If you have to add new flags to the enumeration, then don't 471 * Note: If you have to add new flags to the enumeration, then don't
472 * forget to update %IEEE80211_TX_TEMPORARY_FLAGS when necessary. 472 * forget to update %IEEE80211_TX_TEMPORARY_FLAGS when necessary.
473 */ 473 */
474enum mac80211_tx_control_flags { 474enum mac80211_tx_info_flags {
475 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0), 475 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0),
476 IEEE80211_TX_CTL_ASSIGN_SEQ = BIT(1), 476 IEEE80211_TX_CTL_ASSIGN_SEQ = BIT(1),
477 IEEE80211_TX_CTL_NO_ACK = BIT(2), 477 IEEE80211_TX_CTL_NO_ACK = BIT(2),
@@ -507,6 +507,18 @@ enum mac80211_tx_control_flags {
507 507
508#define IEEE80211_TX_CTL_STBC_SHIFT 23 508#define IEEE80211_TX_CTL_STBC_SHIFT 23
509 509
510/**
511 * enum mac80211_tx_control_flags - flags to describe transmit control
512 *
513 * @IEEE80211_TX_CTRL_PORT_CTRL_PROTO: this frame is a port control
514 * protocol frame (e.g. EAP)
515 *
516 * These flags are used in tx_info->control.flags.
517 */
518enum mac80211_tx_control_flags {
519 IEEE80211_TX_CTRL_PORT_CTRL_PROTO = BIT(0),
520};
521
510/* 522/*
511 * This definition is used as a mask to clear all temporary flags, which are 523 * This definition is used as a mask to clear all temporary flags, which are
512 * set by the tx handlers for each transmission attempt by the mac80211 stack. 524 * set by the tx handlers for each transmission attempt by the mac80211 stack.
@@ -680,7 +692,8 @@ struct ieee80211_tx_info {
680 /* NB: vif can be NULL for injected frames */ 692 /* NB: vif can be NULL for injected frames */
681 struct ieee80211_vif *vif; 693 struct ieee80211_vif *vif;
682 struct ieee80211_key_conf *hw_key; 694 struct ieee80211_key_conf *hw_key;
683 /* 8 bytes free */ 695 u32 flags;
696 /* 4 bytes free */
684 } control; 697 } control;
685 struct { 698 struct {
686 struct ieee80211_tx_rate rates[IEEE80211_TX_MAX_RATES]; 699 struct ieee80211_tx_rate rates[IEEE80211_TX_MAX_RATES];