aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r--include/net/mac80211.h100
1 files changed, 73 insertions, 27 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 29c7be8808d5..d52914b75331 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -376,6 +376,12 @@ enum ieee80211_rssi_event {
376 * @ssid_len: Length of SSID given in @ssid. 376 * @ssid_len: Length of SSID given in @ssid.
377 * @hidden_ssid: The SSID of the current vif is hidden. Only valid in AP-mode. 377 * @hidden_ssid: The SSID of the current vif is hidden. Only valid in AP-mode.
378 * @txpower: TX power in dBm 378 * @txpower: TX power in dBm
379 * @txpower_type: TX power adjustment used to control per packet Transmit
380 * Power Control (TPC) in lower driver for the current vif. In particular
381 * TPC is enabled if value passed in %txpower_type is
382 * NL80211_TX_POWER_LIMITED (allow using less than specified from
383 * userspace), whereas TPC is disabled if %txpower_type is set to
384 * NL80211_TX_POWER_FIXED (use value configured from userspace)
379 * @p2p_noa_attr: P2P NoA attribute for P2P powersave 385 * @p2p_noa_attr: P2P NoA attribute for P2P powersave
380 */ 386 */
381struct ieee80211_bss_conf { 387struct ieee80211_bss_conf {
@@ -411,6 +417,7 @@ struct ieee80211_bss_conf {
411 size_t ssid_len; 417 size_t ssid_len;
412 bool hidden_ssid; 418 bool hidden_ssid;
413 int txpower; 419 int txpower;
420 enum nl80211_tx_power_setting txpower_type;
414 struct ieee80211_p2p_noa_attr p2p_noa_attr; 421 struct ieee80211_p2p_noa_attr p2p_noa_attr;
415}; 422};
416 423
@@ -505,8 +512,11 @@ struct ieee80211_bss_conf {
505 * @IEEE80211_TX_CTL_DONTFRAG: Don't fragment this packet even if it 512 * @IEEE80211_TX_CTL_DONTFRAG: Don't fragment this packet even if it
506 * would be fragmented by size (this is optional, only used for 513 * would be fragmented by size (this is optional, only used for
507 * monitor injection). 514 * monitor injection).
508 * @IEEE80211_TX_CTL_PS_RESPONSE: This frame is a response to a poll 515 * @IEEE80211_TX_STAT_NOACK_TRANSMITTED: A frame that was marked with
509 * frame (PS-Poll or uAPSD). 516 * IEEE80211_TX_CTL_NO_ACK has been successfully transmitted without
517 * any errors (like issues specific to the driver/HW).
518 * This flag must not be set for frames that don't request no-ack
519 * behaviour with IEEE80211_TX_CTL_NO_ACK.
510 * 520 *
511 * Note: If you have to add new flags to the enumeration, then don't 521 * Note: If you have to add new flags to the enumeration, then don't
512 * forget to update %IEEE80211_TX_TEMPORARY_FLAGS when necessary. 522 * forget to update %IEEE80211_TX_TEMPORARY_FLAGS when necessary.
@@ -542,7 +552,7 @@ enum mac80211_tx_info_flags {
542 IEEE80211_TX_STATUS_EOSP = BIT(28), 552 IEEE80211_TX_STATUS_EOSP = BIT(28),
543 IEEE80211_TX_CTL_USE_MINRATE = BIT(29), 553 IEEE80211_TX_CTL_USE_MINRATE = BIT(29),
544 IEEE80211_TX_CTL_DONTFRAG = BIT(30), 554 IEEE80211_TX_CTL_DONTFRAG = BIT(30),
545 IEEE80211_TX_CTL_PS_RESPONSE = BIT(31), 555 IEEE80211_TX_STAT_NOACK_TRANSMITTED = BIT(31),
546}; 556};
547 557
548#define IEEE80211_TX_CTL_STBC_SHIFT 23 558#define IEEE80211_TX_CTL_STBC_SHIFT 23
@@ -552,11 +562,14 @@ enum mac80211_tx_info_flags {
552 * 562 *
553 * @IEEE80211_TX_CTRL_PORT_CTRL_PROTO: this frame is a port control 563 * @IEEE80211_TX_CTRL_PORT_CTRL_PROTO: this frame is a port control
554 * protocol frame (e.g. EAP) 564 * protocol frame (e.g. EAP)
565 * @IEEE80211_TX_CTRL_PS_RESPONSE: This frame is a response to a poll
566 * frame (PS-Poll or uAPSD).
555 * 567 *
556 * These flags are used in tx_info->control.flags. 568 * These flags are used in tx_info->control.flags.
557 */ 569 */
558enum mac80211_tx_control_flags { 570enum mac80211_tx_control_flags {
559 IEEE80211_TX_CTRL_PORT_CTRL_PROTO = BIT(0), 571 IEEE80211_TX_CTRL_PORT_CTRL_PROTO = BIT(0),
572 IEEE80211_TX_CTRL_PS_RESPONSE = BIT(1),
560}; 573};
561 574
562/* 575/*
@@ -925,15 +938,13 @@ enum mac80211_rx_flags {
925 * These flags are used with the @vht_flag member of 938 * These flags are used with the @vht_flag member of
926 * &struct ieee80211_rx_status. 939 * &struct ieee80211_rx_status.
927 * @RX_VHT_FLAG_80MHZ: 80 MHz was used 940 * @RX_VHT_FLAG_80MHZ: 80 MHz was used
928 * @RX_VHT_FLAG_80P80MHZ: 80+80 MHz was used
929 * @RX_VHT_FLAG_160MHZ: 160 MHz was used 941 * @RX_VHT_FLAG_160MHZ: 160 MHz was used
930 * @RX_VHT_FLAG_BF: packet was beamformed 942 * @RX_VHT_FLAG_BF: packet was beamformed
931 */ 943 */
932enum mac80211_rx_vht_flags { 944enum mac80211_rx_vht_flags {
933 RX_VHT_FLAG_80MHZ = BIT(0), 945 RX_VHT_FLAG_80MHZ = BIT(0),
934 RX_VHT_FLAG_80P80MHZ = BIT(1), 946 RX_VHT_FLAG_160MHZ = BIT(1),
935 RX_VHT_FLAG_160MHZ = BIT(2), 947 RX_VHT_FLAG_BF = BIT(2),
936 RX_VHT_FLAG_BF = BIT(3),
937}; 948};
938 949
939/** 950/**
@@ -1181,10 +1192,15 @@ struct ieee80211_channel_switch {
1181 * monitoring on this virtual interface -- i.e. it can monitor 1192 * monitoring on this virtual interface -- i.e. it can monitor
1182 * connection quality related parameters, such as the RSSI level and 1193 * connection quality related parameters, such as the RSSI level and
1183 * provide notifications if configured trigger levels are reached. 1194 * provide notifications if configured trigger levels are reached.
1195 * @IEEE80211_VIF_SUPPORTS_UAPSD: The device can do U-APSD for this
1196 * interface. This flag should be set during interface addition,
1197 * but may be set/cleared as late as authentication to an AP. It is
1198 * only valid for managed/station mode interfaces.
1184 */ 1199 */
1185enum ieee80211_vif_flags { 1200enum ieee80211_vif_flags {
1186 IEEE80211_VIF_BEACON_FILTER = BIT(0), 1201 IEEE80211_VIF_BEACON_FILTER = BIT(0),
1187 IEEE80211_VIF_SUPPORTS_CQM_RSSI = BIT(1), 1202 IEEE80211_VIF_SUPPORTS_CQM_RSSI = BIT(1),
1203 IEEE80211_VIF_SUPPORTS_UAPSD = BIT(2),
1188}; 1204};
1189 1205
1190/** 1206/**
@@ -1270,19 +1286,22 @@ struct ieee80211_vif *wdev_to_ieee80211_vif(struct wireless_dev *wdev);
1270 * 1286 *
1271 * @IEEE80211_KEY_FLAG_GENERATE_IV: This flag should be set by the 1287 * @IEEE80211_KEY_FLAG_GENERATE_IV: This flag should be set by the
1272 * driver to indicate that it requires IV generation for this 1288 * driver to indicate that it requires IV generation for this
1273 * particular key. 1289 * particular key. Setting this flag does not necessarily mean that SKBs
1290 * will have sufficient tailroom for ICV or MIC.
1274 * @IEEE80211_KEY_FLAG_GENERATE_MMIC: This flag should be set by 1291 * @IEEE80211_KEY_FLAG_GENERATE_MMIC: This flag should be set by
1275 * the driver for a TKIP key if it requires Michael MIC 1292 * the driver for a TKIP key if it requires Michael MIC
1276 * generation in software. 1293 * generation in software.
1277 * @IEEE80211_KEY_FLAG_PAIRWISE: Set by mac80211, this flag indicates 1294 * @IEEE80211_KEY_FLAG_PAIRWISE: Set by mac80211, this flag indicates
1278 * that the key is pairwise rather then a shared key. 1295 * that the key is pairwise rather then a shared key.
1279 * @IEEE80211_KEY_FLAG_SW_MGMT_TX: This flag should be set by the driver for a 1296 * @IEEE80211_KEY_FLAG_SW_MGMT_TX: This flag should be set by the driver for a
1280 * CCMP key if it requires CCMP encryption of management frames (MFP) to 1297 * CCMP/GCMP key if it requires CCMP/GCMP encryption of management frames
1281 * be done in software. 1298 * (MFP) to be done in software.
1282 * @IEEE80211_KEY_FLAG_PUT_IV_SPACE: This flag should be set by the driver 1299 * @IEEE80211_KEY_FLAG_PUT_IV_SPACE: This flag should be set by the driver
1283 * if space should be prepared for the IV, but the IV 1300 * if space should be prepared for the IV, but the IV
1284 * itself should not be generated. Do not set together with 1301 * itself should not be generated. Do not set together with
1285 * @IEEE80211_KEY_FLAG_GENERATE_IV on the same key. 1302 * @IEEE80211_KEY_FLAG_GENERATE_IV on the same key. Setting this flag does
1303 * not necessarily mean that SKBs will have sufficient tailroom for ICV or
1304 * MIC.
1286 * @IEEE80211_KEY_FLAG_RX_MGMT: This key will be used to decrypt received 1305 * @IEEE80211_KEY_FLAG_RX_MGMT: This key will be used to decrypt received
1287 * management frames. The flag can help drivers that have a hardware 1306 * management frames. The flag can help drivers that have a hardware
1288 * crypto implementation that doesn't deal with management frames 1307 * crypto implementation that doesn't deal with management frames
@@ -1291,8 +1310,11 @@ struct ieee80211_vif *wdev_to_ieee80211_vif(struct wireless_dev *wdev);
1291 * RX, if your crypto engine can't deal with TX you can also set the 1310 * RX, if your crypto engine can't deal with TX you can also set the
1292 * %IEEE80211_KEY_FLAG_SW_MGMT_TX flag to encrypt such frames in SW. 1311 * %IEEE80211_KEY_FLAG_SW_MGMT_TX flag to encrypt such frames in SW.
1293 * @IEEE80211_KEY_FLAG_GENERATE_IV_MGMT: This flag should be set by the 1312 * @IEEE80211_KEY_FLAG_GENERATE_IV_MGMT: This flag should be set by the
1294 * driver for a CCMP key to indicate that is requires IV generation 1313 * driver for a CCMP/GCMP key to indicate that is requires IV generation
1295 * only for managment frames (MFP). 1314 * only for managment frames (MFP).
1315 * @IEEE80211_KEY_FLAG_RESERVE_TAILROOM: This flag should be set by the
1316 * driver for a key to indicate that sufficient tailroom must always
1317 * be reserved for ICV or MIC, even when HW encryption is enabled.
1296 */ 1318 */
1297enum ieee80211_key_flags { 1319enum ieee80211_key_flags {
1298 IEEE80211_KEY_FLAG_GENERATE_IV_MGMT = BIT(0), 1320 IEEE80211_KEY_FLAG_GENERATE_IV_MGMT = BIT(0),
@@ -1302,6 +1324,7 @@ enum ieee80211_key_flags {
1302 IEEE80211_KEY_FLAG_SW_MGMT_TX = BIT(4), 1324 IEEE80211_KEY_FLAG_SW_MGMT_TX = BIT(4),
1303 IEEE80211_KEY_FLAG_PUT_IV_SPACE = BIT(5), 1325 IEEE80211_KEY_FLAG_PUT_IV_SPACE = BIT(5),
1304 IEEE80211_KEY_FLAG_RX_MGMT = BIT(6), 1326 IEEE80211_KEY_FLAG_RX_MGMT = BIT(6),
1327 IEEE80211_KEY_FLAG_RESERVE_TAILROOM = BIT(7),
1305}; 1328};
1306 1329
1307/** 1330/**
@@ -1580,11 +1603,6 @@ struct ieee80211_tx_control {
1580 * @IEEE80211_HW_MFP_CAPABLE: 1603 * @IEEE80211_HW_MFP_CAPABLE:
1581 * Hardware supports management frame protection (MFP, IEEE 802.11w). 1604 * Hardware supports management frame protection (MFP, IEEE 802.11w).
1582 * 1605 *
1583 * @IEEE80211_HW_SUPPORTS_UAPSD:
1584 * Hardware supports Unscheduled Automatic Power Save Delivery
1585 * (U-APSD) in managed mode. The mode is configured with
1586 * conf_tx() operation.
1587 *
1588 * @IEEE80211_HW_REPORTS_TX_ACK_STATUS: 1606 * @IEEE80211_HW_REPORTS_TX_ACK_STATUS:
1589 * Hardware can provide ack status reports of Tx frames to 1607 * Hardware can provide ack status reports of Tx frames to
1590 * the stack. 1608 * the stack.
@@ -1623,6 +1641,12 @@ struct ieee80211_tx_control {
1623 * be created. It is expected user-space will create vifs as 1641 * be created. It is expected user-space will create vifs as
1624 * desired (and thus have them named as desired). 1642 * desired (and thus have them named as desired).
1625 * 1643 *
1644 * @IEEE80211_HW_SW_CRYPTO_CONTROL: The driver wants to control which of the
1645 * crypto algorithms can be done in software - so don't automatically
1646 * try to fall back to it if hardware crypto fails, but do so only if
1647 * the driver returns 1. This also forces the driver to advertise its
1648 * supported cipher suites.
1649 *
1626 * @IEEE80211_HW_QUEUE_CONTROL: The driver wants to control per-interface 1650 * @IEEE80211_HW_QUEUE_CONTROL: The driver wants to control per-interface
1627 * queue mapping in order to use different queues (not just one per AC) 1651 * queue mapping in order to use different queues (not just one per AC)
1628 * for different virtual interfaces. See the doc section on HW queue 1652 * for different virtual interfaces. See the doc section on HW queue
@@ -1670,8 +1694,8 @@ enum ieee80211_hw_flags {
1670 IEEE80211_HW_MFP_CAPABLE = 1<<13, 1694 IEEE80211_HW_MFP_CAPABLE = 1<<13,
1671 IEEE80211_HW_WANT_MONITOR_VIF = 1<<14, 1695 IEEE80211_HW_WANT_MONITOR_VIF = 1<<14,
1672 IEEE80211_HW_NO_AUTO_VIF = 1<<15, 1696 IEEE80211_HW_NO_AUTO_VIF = 1<<15,
1673 /* free slot */ 1697 IEEE80211_HW_SW_CRYPTO_CONTROL = 1<<16,
1674 IEEE80211_HW_SUPPORTS_UAPSD = 1<<17, 1698 /* free slots */
1675 IEEE80211_HW_REPORTS_TX_ACK_STATUS = 1<<18, 1699 IEEE80211_HW_REPORTS_TX_ACK_STATUS = 1<<18,
1676 IEEE80211_HW_CONNECTION_MONITOR = 1<<19, 1700 IEEE80211_HW_CONNECTION_MONITOR = 1<<19,
1677 IEEE80211_HW_QUEUE_CONTROL = 1<<20, 1701 IEEE80211_HW_QUEUE_CONTROL = 1<<20,
@@ -1945,6 +1969,11 @@ void ieee80211_free_txskb(struct ieee80211_hw *hw, struct sk_buff *skb);
1945 * added; if you return 0 then hw_key_idx must be assigned to the 1969 * added; if you return 0 then hw_key_idx must be assigned to the
1946 * hardware key index, you are free to use the full u8 range. 1970 * hardware key index, you are free to use the full u8 range.
1947 * 1971 *
1972 * Note that in the case that the @IEEE80211_HW_SW_CRYPTO_CONTROL flag is
1973 * set, mac80211 will not automatically fall back to software crypto if
1974 * enabling hardware crypto failed. The set_key() call may also return the
1975 * value 1 to permit this specific key/algorithm to be done in software.
1976 *
1948 * When the cmd is %DISABLE_KEY then it must succeed. 1977 * When the cmd is %DISABLE_KEY then it must succeed.
1949 * 1978 *
1950 * Note that it is permissible to not decrypt a frame even if a key 1979 * Note that it is permissible to not decrypt a frame even if a key
@@ -2023,7 +2052,7 @@ void ieee80211_free_txskb(struct ieee80211_hw *hw, struct sk_buff *skb);
2023 * enabled whenever user has enabled powersave. 2052 * enabled whenever user has enabled powersave.
2024 * 2053 *
2025 * Driver informs U-APSD client support by enabling 2054 * Driver informs U-APSD client support by enabling
2026 * %IEEE80211_HW_SUPPORTS_UAPSD flag. The mode is configured through the 2055 * %IEEE80211_VIF_SUPPORTS_UAPSD flag. The mode is configured through the
2027 * uapsd parameter in conf_tx() operation. Hardware needs to send the QoS 2056 * uapsd parameter in conf_tx() operation. Hardware needs to send the QoS
2028 * Nullfunc frames and stay awake until the service period has ended. To 2057 * Nullfunc frames and stay awake until the service period has ended. To
2029 * utilize U-APSD, dynamic powersave is disabled for voip AC and all frames 2058 * utilize U-APSD, dynamic powersave is disabled for voip AC and all frames
@@ -2696,6 +2725,14 @@ enum ieee80211_reconfig_type {
2696 * is only used if the configured rate control algorithm actually uses 2725 * is only used if the configured rate control algorithm actually uses
2697 * the new rate table API, and is therefore optional. Must be atomic. 2726 * the new rate table API, and is therefore optional. Must be atomic.
2698 * 2727 *
2728 * @sta_statistics: Get statistics for this station. For example with beacon
2729 * filtering, the statistics kept by mac80211 might not be accurate, so
2730 * let the driver pre-fill the statistics. The driver can fill most of
2731 * the values (indicating which by setting the filled bitmap), but not
2732 * all of them make sense - see the source for which ones are possible.
2733 * Statistics that the driver doesn't fill will be filled by mac80211.
2734 * The callback can sleep.
2735 *
2699 * @conf_tx: Configure TX queue parameters (EDCF (aifs, cw_min, cw_max), 2736 * @conf_tx: Configure TX queue parameters (EDCF (aifs, cw_min, cw_max),
2700 * bursting) for a hardware TX queue. 2737 * bursting) for a hardware TX queue.
2701 * Returns a negative error code on failure. 2738 * Returns a negative error code on failure.
@@ -2856,9 +2893,6 @@ enum ieee80211_reconfig_type {
2856 * @get_et_strings: Ethtool API to get a set of strings to describe stats 2893 * @get_et_strings: Ethtool API to get a set of strings to describe stats
2857 * and perhaps other supported types of ethtool data-sets. 2894 * and perhaps other supported types of ethtool data-sets.
2858 * 2895 *
2859 * @get_rssi: Get current signal strength in dBm, the function is optional
2860 * and can sleep.
2861 *
2862 * @mgd_prepare_tx: Prepare for transmitting a management frame for association 2896 * @mgd_prepare_tx: Prepare for transmitting a management frame for association
2863 * before associated. In multi-channel scenarios, a virtual interface is 2897 * before associated. In multi-channel scenarios, a virtual interface is
2864 * bound to a channel before it is associated, but as it isn't associated 2898 * bound to a channel before it is associated, but as it isn't associated
@@ -3059,6 +3093,10 @@ struct ieee80211_ops {
3059 void (*sta_rate_tbl_update)(struct ieee80211_hw *hw, 3093 void (*sta_rate_tbl_update)(struct ieee80211_hw *hw,
3060 struct ieee80211_vif *vif, 3094 struct ieee80211_vif *vif,
3061 struct ieee80211_sta *sta); 3095 struct ieee80211_sta *sta);
3096 void (*sta_statistics)(struct ieee80211_hw *hw,
3097 struct ieee80211_vif *vif,
3098 struct ieee80211_sta *sta,
3099 struct station_info *sinfo);
3062 int (*conf_tx)(struct ieee80211_hw *hw, 3100 int (*conf_tx)(struct ieee80211_hw *hw,
3063 struct ieee80211_vif *vif, u16 ac, 3101 struct ieee80211_vif *vif, u16 ac,
3064 const struct ieee80211_tx_queue_params *params); 3102 const struct ieee80211_tx_queue_params *params);
@@ -3126,8 +3164,6 @@ struct ieee80211_ops {
3126 void (*get_et_strings)(struct ieee80211_hw *hw, 3164 void (*get_et_strings)(struct ieee80211_hw *hw,
3127 struct ieee80211_vif *vif, 3165 struct ieee80211_vif *vif,
3128 u32 sset, u8 *data); 3166 u32 sset, u8 *data);
3129 int (*get_rssi)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
3130 struct ieee80211_sta *sta, s8 *rssi_dbm);
3131 3167
3132 void (*mgd_prepare_tx)(struct ieee80211_hw *hw, 3168 void (*mgd_prepare_tx)(struct ieee80211_hw *hw,
3133 struct ieee80211_vif *vif); 3169 struct ieee80211_vif *vif);
@@ -4062,6 +4098,10 @@ void ieee80211_aes_cmac_calculate_k1_k2(struct ieee80211_key_conf *keyconf,
4062 * reverse order than in packet) 4098 * reverse order than in packet)
4063 * @aes_cmac: PN data, most significant byte first (big endian, 4099 * @aes_cmac: PN data, most significant byte first (big endian,
4064 * reverse order than in packet) 4100 * reverse order than in packet)
4101 * @aes_gmac: PN data, most significant byte first (big endian,
4102 * reverse order than in packet)
4103 * @gcmp: PN data, most significant byte first (big endian,
4104 * reverse order than in packet)
4065 */ 4105 */
4066struct ieee80211_key_seq { 4106struct ieee80211_key_seq {
4067 union { 4107 union {
@@ -4075,6 +4115,12 @@ struct ieee80211_key_seq {
4075 struct { 4115 struct {
4076 u8 pn[6]; 4116 u8 pn[6];
4077 } aes_cmac; 4117 } aes_cmac;
4118 struct {
4119 u8 pn[6];
4120 } aes_gmac;
4121 struct {
4122 u8 pn[6];
4123 } gcmp;
4078 }; 4124 };
4079}; 4125};
4080 4126
@@ -4099,7 +4145,7 @@ void ieee80211_get_key_tx_seq(struct ieee80211_key_conf *keyconf,
4099 * ieee80211_get_key_rx_seq - get key RX sequence counter 4145 * ieee80211_get_key_rx_seq - get key RX sequence counter
4100 * 4146 *
4101 * @keyconf: the parameter passed with the set key 4147 * @keyconf: the parameter passed with the set key
4102 * @tid: The TID, or -1 for the management frame value (CCMP only); 4148 * @tid: The TID, or -1 for the management frame value (CCMP/GCMP only);
4103 * the value on TID 0 is also used for non-QoS frames. For 4149 * the value on TID 0 is also used for non-QoS frames. For
4104 * CMAC, only TID 0 is valid. 4150 * CMAC, only TID 0 is valid.
4105 * @seq: buffer to receive the sequence data 4151 * @seq: buffer to receive the sequence data
@@ -4135,7 +4181,7 @@ void ieee80211_set_key_tx_seq(struct ieee80211_key_conf *keyconf,
4135 * ieee80211_set_key_rx_seq - set key RX sequence counter 4181 * ieee80211_set_key_rx_seq - set key RX sequence counter
4136 * 4182 *
4137 * @keyconf: the parameter passed with the set key 4183 * @keyconf: the parameter passed with the set key
4138 * @tid: The TID, or -1 for the management frame value (CCMP only); 4184 * @tid: The TID, or -1 for the management frame value (CCMP/GCMP only);
4139 * the value on TID 0 is also used for non-QoS frames. For 4185 * the value on TID 0 is also used for non-QoS frames. For
4140 * CMAC, only TID 0 is valid. 4186 * CMAC, only TID 0 is valid.
4141 * @seq: new sequence data 4187 * @seq: new sequence data