<def f='src/src/sys/dev/pci/if_iwmreg.h' l='3949' ll='3976'/>
<size>56</size>
<doc f='src/src/sys/dev/pci/if_iwmreg.h' l='3910'>/**
 * struct iwm_tx_cmd - TX command struct to FW
 * ( IWM_TX_CMD = 0x1c )
 * @len: in bytes of the payload, see below for details
 * @next_frame_len: same as len, but for next frame (0 if not applicable)
 *	Used for fragmentation and bursting, but not in 11n aggregation.
 * @tx_flags: combination of IWM_TX_CMD_FLG_*
 * @rate_n_flags: rate for *all* Tx attempts, if IWM_TX_CMD_FLG_STA_RATE_MSK is
 *	cleared. Combination of IWM_RATE_MCS_*
 * @sta_id: index of destination station in FW station table
 * @sec_ctl: security control, IWM_TX_CMD_SEC_*
 * @initial_rate_index: index into the the rate table for initial TX attempt.
 *	Applied if IWM_TX_CMD_FLG_STA_RATE_MSK is set, normally 0 for data frames.
 * @key: security key
 * @next_frame_flags: IWM_TX_CMD_SEC_* and IWM_TX_CMD_NEXT_FRAME_*
 * @life_time: frame life time (usecs??)
 * @dram_lsb_ptr: Physical address of scratch area in the command (try_cnt +
 *	btkill_cnd + reserved), first 32 bits. &quot;0&quot; disables usage.
 * @dram_msb_ptr: upper bits of the scratch physical address
 * @rts_retry_limit: max attempts for RTS
 * @data_retry_limit: max attempts to send the data packet
 * @tid_spec: TID/tspec
 * @pm_frame_timeout: PM TX frame timeout
 * @driver_txop: duration od EDCA TXOP, in 32-usec units. Set this if not
 *	specified by HCCA protocol
 *
 * The byte count (both len and next_frame_len) includes MAC header
 * (24/26/30/32 bytes)
 * + 2 bytes pad if 26/30 header size
 * + 8 byte IV for CCM or TKIP (not used for WEP)
 * + Data payload
 * + 8-byte MIC (not used for CCM/WEP)
 * It does not include post-MAC padding, i.e.,
 * MIC (CCM) 8 bytes, ICV (WEP/TKIP/CKIP) 4 bytes, CRC 4 bytes.
 * Range of len: 14-2342 bytes.
 *
 * After the struct fields the MAC header is placed, plus any padding,
 * and then the actial payload.
 */</doc>
<mbr r='iwm_tx_cmd::len' o='0' t='__uint16_t'/>
<mbr r='iwm_tx_cmd::next_frame_len' o='16' t='__uint16_t'/>
<mbr r='iwm_tx_cmd::tx_flags' o='32' t='__uint32_t'/>
<mbr r='iwm_tx_cmd::scratch' o='64' t='struct (anonymous struct at /home/joerg/work/NetBSD/clean/src/sys/dev/pci/if_iwmreg.h:3953:2)'/>
<mbr r='iwm_tx_cmd::rate_n_flags' o='96' t='__uint32_t'/>
<mbr r='iwm_tx_cmd::sta_id' o='128' t='__uint8_t'/>
<mbr r='iwm_tx_cmd::sec_ctl' o='136' t='__uint8_t'/>
<mbr r='iwm_tx_cmd::initial_rate_index' o='144' t='__uint8_t'/>
<mbr r='iwm_tx_cmd::reserved2' o='152' t='__uint8_t'/>
<mbr r='iwm_tx_cmd::key' o='160' t='__uint8_t [16]'/>
<mbr r='iwm_tx_cmd::next_frame_flags' o='288' t='__uint16_t'/>
<mbr r='iwm_tx_cmd::reserved3' o='304' t='__uint16_t'/>
<mbr r='iwm_tx_cmd::life_time' o='320' t='__uint32_t'/>
<mbr r='iwm_tx_cmd::dram_lsb_ptr' o='352' t='__uint32_t'/>
<mbr r='iwm_tx_cmd::dram_msb_ptr' o='384' t='__uint8_t'/>
<mbr r='iwm_tx_cmd::rts_retry_limit' o='392' t='__uint8_t'/>
<mbr r='iwm_tx_cmd::data_retry_limit' o='400' t='__uint8_t'/>
<mbr r='iwm_tx_cmd::tid_tspec' o='408' t='__uint8_t'/>
<mbr r='iwm_tx_cmd::pm_frame_timeout' o='416' t='__uint16_t'/>
<mbr r='iwm_tx_cmd::driver_txop' o='432' t='__uint16_t'/>
<mbr r='iwm_tx_cmd::payload' o='448' t='__uint8_t [0]'/>
<mbr r='iwm_tx_cmd::hdr' o='448' t='struct ieee80211_frame [0]'/>
