@ -6,6 +6,7 @@
* GPL LICENSE SUMMARY
*
* Copyright ( c ) 2012 - 2014 Intel Corporation . All rights reserved .
* Copyright ( c ) 2016 Intel Deutschland GmbH
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of version 2 of the GNU General Public License as
@ -193,11 +194,41 @@ enum iwl_tx_pm_timeouts {
# define IWL_BAR_DFAULT_RETRY_LIMIT 60
# define IWL_LOW_RETRY_LIMIT 7
/**
* enum iwl_tx_offload_assist_flags_pos - set % iwl_tx_cmd offload_assist values
* @ TX_CMD_OFFLD_IP_HDR_OFFSET : offset to start of IP header ( in words )
* from mac header end . For normal case it is 4 words for SNAP .
* note : tx_cmd , mac header and pad are not counted in the offset .
* This is used to help the offload in case there is tunneling such as
* IPv6 in IPv4 , in such case the ip header offset should point to the
* inner ip header and IPv4 checksum of the external header should be
* calculated by driver .
* @ TX_CMD_OFFLD_L4_EN : enable TCP / UDP checksum
* @ TX_CMD_OFFLD_L3_EN : enable IP header checksum
* @ TX_CMD_OFFLD_MH_SIZE : size of the mac header in words . Includes the IV
* field . Doesn ' t include the pad .
* @ TX_CMD_OFFLD_PAD : mark 2 - byte pad was inserted after the mac header for
* alignment
* @ TX_CMD_OFFLD_AMSDU : mark TX command is A - MSDU
*/
enum iwl_tx_offload_assist_flags_pos {
TX_CMD_OFFLD_IP_HDR = 0 ,
TX_CMD_OFFLD_L4_EN = 6 ,
TX_CMD_OFFLD_L3_EN = 7 ,
TX_CMD_OFFLD_MH_SIZE = 8 ,
TX_CMD_OFFLD_PAD = 13 ,
TX_CMD_OFFLD_AMSDU = 14 ,
} ;
# define IWL_TX_CMD_OFFLD_MH_MASK 0x1f
# define IWL_TX_CMD_OFFLD_IP_HDR_MASK 0x3f
/* TODO: complete documentation for try_cnt and btkill_cnt */
/**
* struct iwl_tx_cmd - TX command struct to FW
* ( TX_CMD = 0x1c )
* @ len : in bytes of the payload , see below for details
* @ offload_assist : TX offload configuration
* @ tx_flags : combination of TX_CMD_FLG_ *
* @ rate_n_flags : rate for * all * Tx attempts , if TX_CMD_FLG_STA_RATE_MSK is
* cleared . Combination of RATE_MCS_ *
@ -231,7 +262,7 @@ enum iwl_tx_pm_timeouts {
*/
struct iwl_tx_cmd {
__le16 len ;
__le16 next_frame_len ;
__le16 offload_assist ;
__le32 tx_flags ;
struct {
u8 try_cnt ;
@ -255,7 +286,7 @@ struct iwl_tx_cmd {
__le16 reserved4 ;
u8 payload [ 0 ] ;
struct ieee80211_hdr hdr [ 0 ] ;
} __packed ; /* TX_CMD_API_S_VER_3 */
} __packed ; /* TX_CMD_API_S_VER_6 */
/*
* TX response related data