#ifndef __5710_HSI_VBD__
#define __5710_HSI_VBD__
struct atten_sp_status_block
{
u32_t attn_bits ;
u32_t attn_bits_ack ;
u8_t status_block_id ;
u8_t reserved0 ;
u16_t attn_bits_index ;
u32_t reserved1 ;
};
struct cstorm_eth_ag_context
{
u32_t __reserved0[10];
};
struct cstorm_iscsi_ag_context
{
u32_t agg_vars1;
#define CSTORM_ISCSI_AG_CONTEXT_STATE (0xFF<<0)
#define CSTORM_ISCSI_AG_CONTEXT_STATE_SHIFT 0
#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<8)
#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 8
#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<9)
#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 9
#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<10)
#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 10
#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<11)
#define __CSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 11
#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_SE_CF_EN (0x1<<12)
#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_SE_CF_EN_SHIFT 12
#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_INV_CF_EN (0x1<<13)
#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED_ULP_RX_INV_CF_EN_SHIFT 13
#define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF (0x3<<14)
#define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF_SHIFT 14
#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED66 (0x3<<16)
#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED66_SHIFT 16
#define __CSTORM_ISCSI_AG_CONTEXT_FIN_RECEIVED_CF_EN (0x1<<18)
#define __CSTORM_ISCSI_AG_CONTEXT_FIN_RECEIVED_CF_EN_SHIFT 18
#define __CSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN (0x1<<19)
#define __CSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN_SHIFT 19
#define __CSTORM_ISCSI_AG_CONTEXT_AUX2_CF_EN (0x1<<20)
#define __CSTORM_ISCSI_AG_CONTEXT_AUX2_CF_EN_SHIFT 20
#define __CSTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN (0x1<<21)
#define __CSTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN_SHIFT 21
#define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF_EN (0x1<<22)
#define __CSTORM_ISCSI_AG_CONTEXT_AUX4_CF_EN_SHIFT 22
#define __CSTORM_ISCSI_AG_CONTEXT_REL_SEQ_RULE (0x7<<23)
#define __CSTORM_ISCSI_AG_CONTEXT_REL_SEQ_RULE_SHIFT 23
#define CSTORM_ISCSI_AG_CONTEXT_HQ_PROD_RULE (0x3<<26)
#define CSTORM_ISCSI_AG_CONTEXT_HQ_PROD_RULE_SHIFT 26
#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED52 (0x3<<28)
#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED52_SHIFT 28
#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED53 (0x3<<30)
#define __CSTORM_ISCSI_AG_CONTEXT_RESERVED53_SHIFT 30
#if defined(__BIG_ENDIAN)
u8_t __aux1_th ;
u8_t __aux1_val ;
u16_t __agg_vars2 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __agg_vars2 ;
u8_t __aux1_val ;
u8_t __aux1_th ;
#endif
u32_t rel_seq ;
u32_t rel_seq_th ;
#if defined(__BIG_ENDIAN)
u16_t hq_cons ;
u16_t hq_prod ;
#elif defined(__LITTLE_ENDIAN)
u16_t hq_prod ;
u16_t hq_cons ;
#endif
#if defined(__BIG_ENDIAN)
u8_t __reserved62 ;
u8_t __reserved61 ;
u8_t __reserved60 ;
u8_t __reserved59 ;
#elif defined(__LITTLE_ENDIAN)
u8_t __reserved59 ;
u8_t __reserved60 ;
u8_t __reserved61 ;
u8_t __reserved62 ;
#endif
#if defined(__BIG_ENDIAN)
u16_t __reserved64 ;
u16_t cq_u_prod ;
#elif defined(__LITTLE_ENDIAN)
u16_t cq_u_prod ;
u16_t __reserved64 ;
#endif
u32_t __cq_u_prod1 ;
#if defined(__BIG_ENDIAN)
u16_t __agg_vars3 ;
u16_t cq_u_pend ;
#elif defined(__LITTLE_ENDIAN)
u16_t cq_u_pend ;
u16_t __agg_vars3 ;
#endif
#if defined(__BIG_ENDIAN)
u16_t __aux2_th ;
u16_t aux2_val ;
#elif defined(__LITTLE_ENDIAN)
u16_t aux2_val ;
u16_t __aux2_th ;
#endif
};
struct cstorm_toe_ag_context
{
u32_t __agg_vars1 ;
#if defined(__BIG_ENDIAN)
u8_t __aux1_th ;
u8_t __aux1_val ;
u16_t __agg_vars2 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __agg_vars2 ;
u8_t __aux1_val ;
u8_t __aux1_th ;
#endif
u32_t rel_seq ;
u32_t __rel_seq_threshold ;
#if defined(__BIG_ENDIAN)
u16_t __reserved58 ;
u16_t bd_prod ;
#elif defined(__LITTLE_ENDIAN)
u16_t bd_prod ;
u16_t __reserved58 ;
#endif
#if defined(__BIG_ENDIAN)
u8_t __reserved62 ;
u8_t __reserved61 ;
u8_t __reserved60 ;
u8_t __completion_opcode ;
#elif defined(__LITTLE_ENDIAN)
u8_t __completion_opcode ;
u8_t __reserved60 ;
u8_t __reserved61 ;
u8_t __reserved62 ;
#endif
#if defined(__BIG_ENDIAN)
u16_t __reserved64 ;
u16_t __reserved63 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __reserved63 ;
u16_t __reserved64 ;
#endif
u32_t snd_max ;
#if defined(__BIG_ENDIAN)
u16_t __agg_vars3 ;
u16_t __reserved67 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __reserved67 ;
u16_t __agg_vars3 ;
#endif
#if defined(__BIG_ENDIAN)
u16_t __aux2_th ;
u16_t __aux2_val ;
#elif defined(__LITTLE_ENDIAN)
u16_t __aux2_val ;
u16_t __aux2_th ;
#endif
};
struct dmae_cmd
{
u32_t opcode;
#define DMAE_CMD_SRC (0x1<<0)
#define DMAE_CMD_SRC_SHIFT 0
#define DMAE_CMD_DST (0x3<<1)
#define DMAE_CMD_DST_SHIFT 1
#define DMAE_CMD_C_DST (0x1<<3)
#define DMAE_CMD_C_DST_SHIFT 3
#define DMAE_CMD_C_TYPE_ENABLE (0x1<<4)
#define DMAE_CMD_C_TYPE_ENABLE_SHIFT 4
#define DMAE_CMD_C_TYPE_CRC_ENABLE (0x1<<5)
#define DMAE_CMD_C_TYPE_CRC_ENABLE_SHIFT 5
#define DMAE_CMD_C_TYPE_CRC_OFFSET (0x7<<6)
#define DMAE_CMD_C_TYPE_CRC_OFFSET_SHIFT 6
#define DMAE_CMD_ENDIANITY (0x3<<9)
#define DMAE_CMD_ENDIANITY_SHIFT 9
#define DMAE_CMD_PORT (0x1<<11)
#define DMAE_CMD_PORT_SHIFT 11
#define DMAE_CMD_CRC_RESET (0x1<<12)
#define DMAE_CMD_CRC_RESET_SHIFT 12
#define DMAE_CMD_SRC_RESET (0x1<<13)
#define DMAE_CMD_SRC_RESET_SHIFT 13
#define DMAE_CMD_DST_RESET (0x1<<14)
#define DMAE_CMD_DST_RESET_SHIFT 14
#define DMAE_CMD_E1HVN (0x3<<15)
#define DMAE_CMD_E1HVN_SHIFT 15
#define DMAE_CMD_DST_VN (0x3<<17)
#define DMAE_CMD_DST_VN_SHIFT 17
#define DMAE_CMD_C_FUNC (0x1<<19)
#define DMAE_CMD_C_FUNC_SHIFT 19
#define DMAE_CMD_ERR_POLICY (0x3<<20)
#define DMAE_CMD_ERR_POLICY_SHIFT 20
#define DMAE_CMD_RESERVED0 (0x3FF<<22)
#define DMAE_CMD_RESERVED0_SHIFT 22
u32_t src_addr_lo ;
u32_t src_addr_hi ;
u32_t dst_addr_lo ;
u32_t dst_addr_hi ;
#if defined(__BIG_ENDIAN)
u16_t opcode_iov;
#define DMAE_CMD_SRC_VFID (0x3F<<0)
#define DMAE_CMD_SRC_VFID_SHIFT 0
#define DMAE_CMD_SRC_VFPF (0x1<<6)
#define DMAE_CMD_SRC_VFPF_SHIFT 6
#define DMAE_CMD_RESERVED1 (0x1<<7)
#define DMAE_CMD_RESERVED1_SHIFT 7
#define DMAE_CMD_DST_VFID (0x3F<<8)
#define DMAE_CMD_DST_VFID_SHIFT 8
#define DMAE_CMD_DST_VFPF (0x1<<14)
#define DMAE_CMD_DST_VFPF_SHIFT 14
#define DMAE_CMD_RESERVED2 (0x1<<15)
#define DMAE_CMD_RESERVED2_SHIFT 15
u16_t len ;
#elif defined(__LITTLE_ENDIAN)
u16_t len ;
u16_t opcode_iov;
#define DMAE_CMD_SRC_VFID (0x3F<<0)
#define DMAE_CMD_SRC_VFID_SHIFT 0
#define DMAE_CMD_SRC_VFPF (0x1<<6)
#define DMAE_CMD_SRC_VFPF_SHIFT 6
#define DMAE_CMD_RESERVED1 (0x1<<7)
#define DMAE_CMD_RESERVED1_SHIFT 7
#define DMAE_CMD_DST_VFID (0x3F<<8)
#define DMAE_CMD_DST_VFID_SHIFT 8
#define DMAE_CMD_DST_VFPF (0x1<<14)
#define DMAE_CMD_DST_VFPF_SHIFT 14
#define DMAE_CMD_RESERVED2 (0x1<<15)
#define DMAE_CMD_RESERVED2_SHIFT 15
#endif
u32_t comp_addr_lo ;
u32_t comp_addr_hi ;
u32_t comp_val ;
u32_t crc32 ;
u32_t crc32_c ;
#if defined(__BIG_ENDIAN)
u16_t crc16_c ;
u16_t crc16 ;
#elif defined(__LITTLE_ENDIAN)
u16_t crc16 ;
u16_t crc16_c ;
#endif
#if defined(__BIG_ENDIAN)
u16_t reserved3;
u16_t crc_t10 ;
#elif defined(__LITTLE_ENDIAN)
u16_t crc_t10 ;
u16_t reserved3;
#endif
#if defined(__BIG_ENDIAN)
u16_t xsum8 ;
u16_t xsum16 ;
#elif defined(__LITTLE_ENDIAN)
u16_t xsum16 ;
u16_t xsum8 ;
#endif
};
struct doorbell_hdr_t
{
u8_t data;
#define DOORBELL_HDR_T_RX (0x1<<0)
#define DOORBELL_HDR_T_RX_SHIFT 0
#define DOORBELL_HDR_T_DB_TYPE (0x1<<1)
#define DOORBELL_HDR_T_DB_TYPE_SHIFT 1
#define DOORBELL_HDR_T_DPM_SIZE (0x3<<2)
#define DOORBELL_HDR_T_DPM_SIZE_SHIFT 2
#define DOORBELL_HDR_T_CONN_TYPE (0xF<<4)
#define DOORBELL_HDR_T_CONN_TYPE_SHIFT 4
};
struct eth_tx_doorbell
{
#if defined(__BIG_ENDIAN)
u16_t npackets ;
u8_t params;
#define ETH_TX_DOORBELL_NUM_BDS (0x3F<<0)
#define ETH_TX_DOORBELL_NUM_BDS_SHIFT 0
#define ETH_TX_DOORBELL_RESERVED_TX_FIN_FLAG (0x1<<6)
#define ETH_TX_DOORBELL_RESERVED_TX_FIN_FLAG_SHIFT 6
#define ETH_TX_DOORBELL_SPARE (0x1<<7)
#define ETH_TX_DOORBELL_SPARE_SHIFT 7
struct doorbell_hdr_t hdr;
#elif defined(__LITTLE_ENDIAN)
struct doorbell_hdr_t hdr;
u8_t params;
#define ETH_TX_DOORBELL_NUM_BDS (0x3F<<0)
#define ETH_TX_DOORBELL_NUM_BDS_SHIFT 0
#define ETH_TX_DOORBELL_RESERVED_TX_FIN_FLAG (0x1<<6)
#define ETH_TX_DOORBELL_RESERVED_TX_FIN_FLAG_SHIFT 6
#define ETH_TX_DOORBELL_SPARE (0x1<<7)
#define ETH_TX_DOORBELL_SPARE_SHIFT 7
u16_t npackets ;
#endif
};
struct hc_status_block_e1x
{
u16_t index_values[HC_SB_MAX_INDICES_E1X] ;
u16_t running_index[HC_SB_MAX_SM] ;
u32_t rsrv[11];
};
struct host_hc_status_block_e1x
{
struct hc_status_block_e1x sb ;
};
struct hc_status_block_e2
{
u16_t index_values[HC_SB_MAX_INDICES_E2] ;
u16_t running_index[HC_SB_MAX_SM] ;
u32_t reserved[11];
};
struct host_hc_status_block_e2
{
struct hc_status_block_e2 sb ;
};
struct hc_sp_status_block
{
u16_t index_values[HC_SP_SB_MAX_INDICES] ;
u16_t running_index ;
u16_t rsrv;
u32_t rsrv1;
};
struct host_sp_status_block
{
struct atten_sp_status_block atten_status_block ;
struct hc_sp_status_block sp_sb ;
};
struct igu_ack_register
{
#if defined(__BIG_ENDIAN)
u16_t sb_id_and_flags;
#define IGU_ACK_REGISTER_STATUS_BLOCK_ID (0x1F<<0)
#define IGU_ACK_REGISTER_STATUS_BLOCK_ID_SHIFT 0
#define IGU_ACK_REGISTER_STORM_ID (0x7<<5)
#define IGU_ACK_REGISTER_STORM_ID_SHIFT 5
#define IGU_ACK_REGISTER_UPDATE_INDEX (0x1<<8)
#define IGU_ACK_REGISTER_UPDATE_INDEX_SHIFT 8
#define IGU_ACK_REGISTER_INTERRUPT_MODE (0x3<<9)
#define IGU_ACK_REGISTER_INTERRUPT_MODE_SHIFT 9
#define IGU_ACK_REGISTER_RESERVED (0x1F<<11)
#define IGU_ACK_REGISTER_RESERVED_SHIFT 11
u16_t status_block_index ;
#elif defined(__LITTLE_ENDIAN)
u16_t status_block_index ;
u16_t sb_id_and_flags;
#define IGU_ACK_REGISTER_STATUS_BLOCK_ID (0x1F<<0)
#define IGU_ACK_REGISTER_STATUS_BLOCK_ID_SHIFT 0
#define IGU_ACK_REGISTER_STORM_ID (0x7<<5)
#define IGU_ACK_REGISTER_STORM_ID_SHIFT 5
#define IGU_ACK_REGISTER_UPDATE_INDEX (0x1<<8)
#define IGU_ACK_REGISTER_UPDATE_INDEX_SHIFT 8
#define IGU_ACK_REGISTER_INTERRUPT_MODE (0x3<<9)
#define IGU_ACK_REGISTER_INTERRUPT_MODE_SHIFT 9
#define IGU_ACK_REGISTER_RESERVED (0x1F<<11)
#define IGU_ACK_REGISTER_RESERVED_SHIFT 11
#endif
};
struct igu_backward_compatible
{
u32_t sb_id_and_flags;
#define IGU_BACKWARD_COMPATIBLE_SB_INDEX (0xFFFF<<0)
#define IGU_BACKWARD_COMPATIBLE_SB_INDEX_SHIFT 0
#define IGU_BACKWARD_COMPATIBLE_SB_SELECT (0x1F<<16)
#define IGU_BACKWARD_COMPATIBLE_SB_SELECT_SHIFT 16
#define IGU_BACKWARD_COMPATIBLE_SEGMENT_ACCESS (0x7<<21)
#define IGU_BACKWARD_COMPATIBLE_SEGMENT_ACCESS_SHIFT 21
#define IGU_BACKWARD_COMPATIBLE_BUPDATE (0x1<<24)
#define IGU_BACKWARD_COMPATIBLE_BUPDATE_SHIFT 24
#define IGU_BACKWARD_COMPATIBLE_ENABLE_INT (0x3<<25)
#define IGU_BACKWARD_COMPATIBLE_ENABLE_INT_SHIFT 25
#define IGU_BACKWARD_COMPATIBLE_RESERVED_0 (0x1F<<27)
#define IGU_BACKWARD_COMPATIBLE_RESERVED_0_SHIFT 27
u32_t reserved_2;
};
struct igu_regular
{
u32_t sb_id_and_flags;
#define IGU_REGULAR_SB_INDEX (0xFFFFF<<0)
#define IGU_REGULAR_SB_INDEX_SHIFT 0
#define IGU_REGULAR_RESERVED0 (0x1<<20)
#define IGU_REGULAR_RESERVED0_SHIFT 20
#define IGU_REGULAR_SEGMENT_ACCESS (0x7<<21)
#define IGU_REGULAR_SEGMENT_ACCESS_SHIFT 21
#define IGU_REGULAR_BUPDATE (0x1<<24)
#define IGU_REGULAR_BUPDATE_SHIFT 24
#define IGU_REGULAR_ENABLE_INT (0x3<<25)
#define IGU_REGULAR_ENABLE_INT_SHIFT 25
#define IGU_REGULAR_RESERVED_1 (0x1<<27)
#define IGU_REGULAR_RESERVED_1_SHIFT 27
#define IGU_REGULAR_CLEANUP_TYPE (0x3<<28)
#define IGU_REGULAR_CLEANUP_TYPE_SHIFT 28
#define IGU_REGULAR_CLEANUP_SET (0x1<<30)
#define IGU_REGULAR_CLEANUP_SET_SHIFT 30
#define IGU_REGULAR_BCLEANUP (0x1<<31)
#define IGU_REGULAR_BCLEANUP_SHIFT 31
u32_t reserved_2;
};
union igu_consprod_reg
{
struct igu_regular regular;
struct igu_backward_compatible backward_compatible;
};
enum igu_ctrl_cmd
{
IGU_CTRL_CMD_TYPE_RD,
IGU_CTRL_CMD_TYPE_WR,
MAX_IGU_CTRL_CMD};
struct igu_ctrl_reg
{
u32_t ctrl_data;
#define IGU_CTRL_REG_ADDRESS (0xFFF<<0)
#define IGU_CTRL_REG_ADDRESS_SHIFT 0
#define IGU_CTRL_REG_FID (0x7F<<12)
#define IGU_CTRL_REG_FID_SHIFT 12
#define IGU_CTRL_REG_RESERVED (0x1<<19)
#define IGU_CTRL_REG_RESERVED_SHIFT 19
#define IGU_CTRL_REG_TYPE (0x1<<20)
#define IGU_CTRL_REG_TYPE_SHIFT 20
#define IGU_CTRL_REG_UNUSED (0x7FF<<21)
#define IGU_CTRL_REG_UNUSED_SHIFT 21
};
enum igu_int_cmd
{
IGU_INT_ENABLE,
IGU_INT_DISABLE,
IGU_INT_NOP,
IGU_INT_NOP2,
MAX_IGU_INT_CMD};
enum igu_seg_access
{
IGU_SEG_ACCESS_NORM,
IGU_SEG_ACCESS_DEF,
IGU_SEG_ACCESS_ATTN,
MAX_IGU_SEG_ACCESS};
struct iscsi_tx_doorbell
{
#if defined(__BIG_ENDIAN)
u16_t reserved ;
u8_t params;
#define ISCSI_TX_DOORBELL_NUM_WQES (0x3F<<0)
#define ISCSI_TX_DOORBELL_NUM_WQES_SHIFT 0
#define ISCSI_TX_DOORBELL_RESERVED_TX_FIN_FLAG (0x1<<6)
#define ISCSI_TX_DOORBELL_RESERVED_TX_FIN_FLAG_SHIFT 6
#define ISCSI_TX_DOORBELL_SPARE (0x1<<7)
#define ISCSI_TX_DOORBELL_SPARE_SHIFT 7
struct doorbell_hdr_t hdr;
#elif defined(__LITTLE_ENDIAN)
struct doorbell_hdr_t hdr;
u8_t params;
#define ISCSI_TX_DOORBELL_NUM_WQES (0x3F<<0)
#define ISCSI_TX_DOORBELL_NUM_WQES_SHIFT 0
#define ISCSI_TX_DOORBELL_RESERVED_TX_FIN_FLAG (0x1<<6)
#define ISCSI_TX_DOORBELL_RESERVED_TX_FIN_FLAG_SHIFT 6
#define ISCSI_TX_DOORBELL_SPARE (0x1<<7)
#define ISCSI_TX_DOORBELL_SPARE_SHIFT 7
u16_t reserved ;
#endif
};
struct parsing_flags
{
u16_t flags;
#define PARSING_FLAGS_ETHERNET_ADDRESS_TYPE (0x1<<0)
#define PARSING_FLAGS_ETHERNET_ADDRESS_TYPE_SHIFT 0
#define PARSING_FLAGS_INNER_VLAN_EXIST (0x1<<1)
#define PARSING_FLAGS_INNER_VLAN_EXIST_SHIFT 1
#define PARSING_FLAGS_OUTER_VLAN_EXIST (0x1<<2)
#define PARSING_FLAGS_OUTER_VLAN_EXIST_SHIFT 2
#define PARSING_FLAGS_OVER_ETHERNET_PROTOCOL (0x3<<3)
#define PARSING_FLAGS_OVER_ETHERNET_PROTOCOL_SHIFT 3
#define PARSING_FLAGS_IP_OPTIONS (0x1<<5)
#define PARSING_FLAGS_IP_OPTIONS_SHIFT 5
#define PARSING_FLAGS_FRAGMENTATION_STATUS (0x1<<6)
#define PARSING_FLAGS_FRAGMENTATION_STATUS_SHIFT 6
#define PARSING_FLAGS_OVER_IP_PROTOCOL (0x3<<7)
#define PARSING_FLAGS_OVER_IP_PROTOCOL_SHIFT 7
#define PARSING_FLAGS_PURE_ACK_INDICATION (0x1<<9)
#define PARSING_FLAGS_PURE_ACK_INDICATION_SHIFT 9
#define PARSING_FLAGS_TCP_OPTIONS_EXIST (0x1<<10)
#define PARSING_FLAGS_TCP_OPTIONS_EXIST_SHIFT 10
#define PARSING_FLAGS_TIME_STAMP_EXIST_FLAG (0x1<<11)
#define PARSING_FLAGS_TIME_STAMP_EXIST_FLAG_SHIFT 11
#define PARSING_FLAGS_CONNECTION_MATCH (0x1<<12)
#define PARSING_FLAGS_CONNECTION_MATCH_SHIFT 12
#define PARSING_FLAGS_LLC_SNAP (0x1<<13)
#define PARSING_FLAGS_LLC_SNAP_SHIFT 13
#define PARSING_FLAGS_RESERVED0 (0x3<<14)
#define PARSING_FLAGS_RESERVED0_SHIFT 14
};
enum prs_flags_ack_type
{
PRS_FLAG_PUREACK_PIGGY,
PRS_FLAG_PUREACK_PURE,
MAX_PRS_FLAGS_ACK_TYPE};
enum prs_flags_eth_addr_type
{
PRS_FLAG_ETHTYPE_NON_UNICAST,
PRS_FLAG_ETHTYPE_UNICAST,
MAX_PRS_FLAGS_ETH_ADDR_TYPE};
enum prs_flags_over_eth
{
PRS_FLAG_OVERETH_UNKNOWN,
PRS_FLAG_OVERETH_IPV4,
PRS_FLAG_OVERETH_IPV6,
PRS_FLAG_OVERETH_LLCSNAP_UNKNOWN,
MAX_PRS_FLAGS_OVER_ETH};
enum prs_flags_over_ip
{
PRS_FLAG_OVERIP_UNKNOWN,
PRS_FLAG_OVERIP_TCP,
PRS_FLAG_OVERIP_UDP,
MAX_PRS_FLAGS_OVER_IP};
struct sdm_op_gen
{
u32_t command;
#define SDM_OP_GEN_COMP_PARAM (0x1F<<0)
#define SDM_OP_GEN_COMP_PARAM_SHIFT 0
#define SDM_OP_GEN_COMP_TYPE (0x7<<5)
#define SDM_OP_GEN_COMP_TYPE_SHIFT 5
#define SDM_OP_GEN_AGG_VECT_IDX (0xFF<<8)
#define SDM_OP_GEN_AGG_VECT_IDX_SHIFT 8
#define SDM_OP_GEN_AGG_VECT_IDX_VALID (0x1<<16)
#define SDM_OP_GEN_AGG_VECT_IDX_VALID_SHIFT 16
#define SDM_OP_GEN_RESERVED (0x7FFF<<17)
#define SDM_OP_GEN_RESERVED_SHIFT 17
};
struct timers_block_context
{
u32_t __client0 ;
u32_t __client1 ;
u32_t __client2 ;
u32_t flags;
#define __TIMERS_BLOCK_CONTEXT_NUM_OF_ACTIVE_TIMERS (0x3<<0)
#define __TIMERS_BLOCK_CONTEXT_NUM_OF_ACTIVE_TIMERS_SHIFT 0
#define TIMERS_BLOCK_CONTEXT_CONN_VALID_FLG (0x1<<2)
#define TIMERS_BLOCK_CONTEXT_CONN_VALID_FLG_SHIFT 2
#define __TIMERS_BLOCK_CONTEXT_RESERVED0 (0x1FFFFFFF<<3)
#define __TIMERS_BLOCK_CONTEXT_RESERVED0_SHIFT 3
};
struct toe_adv_wnd_doorbell
{
#if defined(__BIG_ENDIAN)
u16_t wnd_sz_lsb ;
u8_t wnd_sz_msb ;
struct doorbell_hdr_t hdr ;
#elif defined(__LITTLE_ENDIAN)
struct doorbell_hdr_t hdr ;
u8_t wnd_sz_msb ;
u16_t wnd_sz_lsb ;
#endif
};
struct toe_rx_bds_doorbell
{
#if defined(__BIG_ENDIAN)
u16_t nbds ;
u8_t params;
#define TOE_RX_BDS_DOORBELL_RESERVED (0x1F<<0)
#define TOE_RX_BDS_DOORBELL_RESERVED_SHIFT 0
#define TOE_RX_BDS_DOORBELL_OPCODE (0x7<<5)
#define TOE_RX_BDS_DOORBELL_OPCODE_SHIFT 5
struct doorbell_hdr_t hdr;
#elif defined(__LITTLE_ENDIAN)
struct doorbell_hdr_t hdr;
u8_t params;
#define TOE_RX_BDS_DOORBELL_RESERVED (0x1F<<0)
#define TOE_RX_BDS_DOORBELL_RESERVED_SHIFT 0
#define TOE_RX_BDS_DOORBELL_OPCODE (0x7<<5)
#define TOE_RX_BDS_DOORBELL_OPCODE_SHIFT 5
u16_t nbds ;
#endif
};
struct toe_rx_bytes_and_bds_doorbell
{
#if defined(__BIG_ENDIAN)
u16_t nbytes ;
u8_t params;
#define TOE_RX_BYTES_AND_BDS_DOORBELL_NBDS (0x1F<<0)
#define TOE_RX_BYTES_AND_BDS_DOORBELL_NBDS_SHIFT 0
#define TOE_RX_BYTES_AND_BDS_DOORBELL_OPCODE (0x7<<5)
#define TOE_RX_BYTES_AND_BDS_DOORBELL_OPCODE_SHIFT 5
struct doorbell_hdr_t hdr;
#elif defined(__LITTLE_ENDIAN)
struct doorbell_hdr_t hdr;
u8_t params;
#define TOE_RX_BYTES_AND_BDS_DOORBELL_NBDS (0x1F<<0)
#define TOE_RX_BYTES_AND_BDS_DOORBELL_NBDS_SHIFT 0
#define TOE_RX_BYTES_AND_BDS_DOORBELL_OPCODE (0x7<<5)
#define TOE_RX_BYTES_AND_BDS_DOORBELL_OPCODE_SHIFT 5
u16_t nbytes ;
#endif
};
struct toe_rx_byte_doorbell
{
#if defined(__BIG_ENDIAN)
u16_t nbytes_lsb ;
u8_t params;
#define TOE_RX_BYTE_DOORBELL_NBYTES_MSB (0x1F<<0)
#define TOE_RX_BYTE_DOORBELL_NBYTES_MSB_SHIFT 0
#define TOE_RX_BYTE_DOORBELL_OPCODE (0x7<<5)
#define TOE_RX_BYTE_DOORBELL_OPCODE_SHIFT 5
struct doorbell_hdr_t hdr;
#elif defined(__LITTLE_ENDIAN)
struct doorbell_hdr_t hdr;
u8_t params;
#define TOE_RX_BYTE_DOORBELL_NBYTES_MSB (0x1F<<0)
#define TOE_RX_BYTE_DOORBELL_NBYTES_MSB_SHIFT 0
#define TOE_RX_BYTE_DOORBELL_OPCODE (0x7<<5)
#define TOE_RX_BYTE_DOORBELL_OPCODE_SHIFT 5
u16_t nbytes_lsb ;
#endif
};
struct toe_rx_grq_doorbell
{
#if defined(__BIG_ENDIAN)
u16_t nbytes_lsb ;
u8_t params;
#define TOE_RX_GRQ_DOORBELL_NBYTES_MSB (0x1F<<0)
#define TOE_RX_GRQ_DOORBELL_NBYTES_MSB_SHIFT 0
#define TOE_RX_GRQ_DOORBELL_OPCODE (0x7<<5)
#define TOE_RX_GRQ_DOORBELL_OPCODE_SHIFT 5
struct doorbell_hdr_t hdr;
#elif defined(__LITTLE_ENDIAN)
struct doorbell_hdr_t hdr;
u8_t params;
#define TOE_RX_GRQ_DOORBELL_NBYTES_MSB (0x1F<<0)
#define TOE_RX_GRQ_DOORBELL_NBYTES_MSB_SHIFT 0
#define TOE_RX_GRQ_DOORBELL_OPCODE (0x7<<5)
#define TOE_RX_GRQ_DOORBELL_OPCODE_SHIFT 5
u16_t nbytes_lsb ;
#endif
};
struct toe_tx_doorbell
{
#if defined(__BIG_ENDIAN)
u16_t nbytes ;
u8_t params;
#define TOE_TX_DOORBELL_NUM_BDS (0x3F<<0)
#define TOE_TX_DOORBELL_NUM_BDS_SHIFT 0
#define TOE_TX_DOORBELL_TX_FIN_FLAG (0x1<<6)
#define TOE_TX_DOORBELL_TX_FIN_FLAG_SHIFT 6
#define TOE_TX_DOORBELL_FLUSH (0x1<<7)
#define TOE_TX_DOORBELL_FLUSH_SHIFT 7
struct doorbell_hdr_t hdr;
#elif defined(__LITTLE_ENDIAN)
struct doorbell_hdr_t hdr;
u8_t params;
#define TOE_TX_DOORBELL_NUM_BDS (0x3F<<0)
#define TOE_TX_DOORBELL_NUM_BDS_SHIFT 0
#define TOE_TX_DOORBELL_TX_FIN_FLAG (0x1<<6)
#define TOE_TX_DOORBELL_TX_FIN_FLAG_SHIFT 6
#define TOE_TX_DOORBELL_FLUSH (0x1<<7)
#define TOE_TX_DOORBELL_FLUSH_SHIFT 7
u16_t nbytes ;
#endif
};
struct tstorm_eth_ag_context
{
u32_t __reserved0[14];
};
struct tstorm_fcoe_extra_ag_context_section
{
u32_t __agg_val1 ;
#if defined(__BIG_ENDIAN)
u8_t __tcp_agg_vars2 ;
u8_t __agg_val3 ;
u16_t __agg_val2 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __agg_val2 ;
u8_t __agg_val3 ;
u8_t __tcp_agg_vars2 ;
#endif
#if defined(__BIG_ENDIAN)
u16_t __agg_val5;
u8_t __agg_val6;
u8_t __tcp_agg_vars3 ;
#elif defined(__LITTLE_ENDIAN)
u8_t __tcp_agg_vars3 ;
u8_t __agg_val6;
u16_t __agg_val5;
#endif
u32_t __lcq_prod ;
u32_t rtt_seq ;
u32_t rtt_time ;
u32_t __reserved66;
u32_t wnd_right_edge ;
u32_t tcp_agg_vars1;
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_FIN_SENT_FLAG (0x1<<0)
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT 0
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG (0x1<<1)
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG_SHIFT 1
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF (0x3<<2)
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF_SHIFT 2
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF (0x3<<4)
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF_SHIFT 4
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF_EN (0x1<<6)
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_WND_UPD_CF_EN_SHIFT 6
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF_EN (0x1<<7)
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TIMEOUT_CF_EN_SHIFT 7
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN (0x1<<8)
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN_SHIFT 8
#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LCQ_SND_EN (0x1<<9)
#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_LCQ_SND_EN_SHIFT 9
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<10)
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 10
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_FLAG (0x1<<11)
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_FLAG_SHIFT 11
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF_EN (0x1<<12)
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF_EN_SHIFT 12
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF_EN (0x1<<13)
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF_EN_SHIFT 13
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF (0x3<<14)
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_CF_SHIFT 14
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF (0x3<<16)
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX2_CF_SHIFT 16
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_BLOCKED (0x1<<18)
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_BLOCKED_SHIFT 18
#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX10_CF_EN (0x1<<19)
#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT 19
#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX11_CF_EN (0x1<<20)
#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX11_CF_EN_SHIFT 20
#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX12_CF_EN (0x1<<21)
#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX12_CF_EN_SHIFT 21
#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED1 (0x3<<22)
#define __TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED1_SHIFT 22
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ (0xF<<24)
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ_SHIFT 24
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ (0xF<<28)
#define TSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ_SHIFT 28
u32_t snd_max ;
u32_t __lcq_cons ;
u32_t __reserved2;
};
struct tstorm_fcoe_ag_context
{
#if defined(__BIG_ENDIAN)
u16_t ulp_credit;
u8_t agg_vars1;
#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF (0x3<<4)
#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_SHIFT 4
#define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG (0x1<<6)
#define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG_SHIFT 6
#define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG (0x1<<7)
#define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG_SHIFT 7
u8_t state ;
#elif defined(__LITTLE_ENDIAN)
u8_t state ;
u8_t agg_vars1;
#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
#define TSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF (0x3<<4)
#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_SHIFT 4
#define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG (0x1<<6)
#define __TSTORM_FCOE_AG_CONTEXT_AUX3_FLAG_SHIFT 6
#define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG (0x1<<7)
#define __TSTORM_FCOE_AG_CONTEXT_AUX4_FLAG_SHIFT 7
u16_t ulp_credit;
#endif
#if defined(__BIG_ENDIAN)
u16_t __agg_val4;
u16_t agg_vars2;
#define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG (0x1<<0)
#define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG_SHIFT 0
#define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG (0x1<<1)
#define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG_SHIFT 1
#define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF (0x3<<2)
#define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF_SHIFT 2
#define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF (0x3<<4)
#define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF_SHIFT 4
#define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF (0x3<<6)
#define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF_SHIFT 6
#define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF (0x3<<8)
#define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF_SHIFT 8
#define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG (0x1<<10)
#define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG_SHIFT 10
#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN (0x1<<11)
#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN_SHIFT 11
#define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN (0x1<<12)
#define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN_SHIFT 12
#define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN (0x1<<13)
#define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN_SHIFT 13
#define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN (0x1<<14)
#define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN_SHIFT 14
#define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN (0x1<<15)
#define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN_SHIFT 15
#elif defined(__LITTLE_ENDIAN)
u16_t agg_vars2;
#define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG (0x1<<0)
#define __TSTORM_FCOE_AG_CONTEXT_AUX5_FLAG_SHIFT 0
#define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG (0x1<<1)
#define __TSTORM_FCOE_AG_CONTEXT_AUX6_FLAG_SHIFT 1
#define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF (0x3<<2)
#define __TSTORM_FCOE_AG_CONTEXT_AUX4_CF_SHIFT 2
#define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF (0x3<<4)
#define __TSTORM_FCOE_AG_CONTEXT_AUX5_CF_SHIFT 4
#define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF (0x3<<6)
#define __TSTORM_FCOE_AG_CONTEXT_AUX6_CF_SHIFT 6
#define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF (0x3<<8)
#define __TSTORM_FCOE_AG_CONTEXT_AUX7_CF_SHIFT 8
#define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG (0x1<<10)
#define __TSTORM_FCOE_AG_CONTEXT_AUX7_FLAG_SHIFT 10
#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN (0x1<<11)
#define __TSTORM_FCOE_AG_CONTEXT_QUEUE0_FLUSH_CF_EN_SHIFT 11
#define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN (0x1<<12)
#define TSTORM_FCOE_AG_CONTEXT_AUX4_CF_EN_SHIFT 12
#define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN (0x1<<13)
#define TSTORM_FCOE_AG_CONTEXT_AUX5_CF_EN_SHIFT 13
#define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN (0x1<<14)
#define TSTORM_FCOE_AG_CONTEXT_AUX6_CF_EN_SHIFT 14
#define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN (0x1<<15)
#define TSTORM_FCOE_AG_CONTEXT_AUX7_CF_EN_SHIFT 15
u16_t __agg_val4;
#endif
struct tstorm_fcoe_extra_ag_context_section __extra_section ;
};
struct tstorm_iscsi_tcp_ag_context_section
{
u32_t __agg_val1 ;
#if defined(__BIG_ENDIAN)
u8_t __tcp_agg_vars2 ;
u8_t __agg_val3 ;
u16_t __agg_val2 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __agg_val2 ;
u8_t __agg_val3 ;
u8_t __tcp_agg_vars2 ;
#endif
#if defined(__BIG_ENDIAN)
u16_t __agg_val5;
u8_t __agg_val6;
u8_t __tcp_agg_vars3 ;
#elif defined(__LITTLE_ENDIAN)
u8_t __tcp_agg_vars3 ;
u8_t __agg_val6;
u16_t __agg_val5;
#endif
u32_t snd_nxt ;
u32_t rtt_seq ;
u32_t rtt_time ;
u32_t wnd_right_edge_local;
u32_t wnd_right_edge ;
u32_t tcp_agg_vars1;
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG (0x1<<0)
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT 0
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG (0x1<<1)
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG_SHIFT 1
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_WND_UPD_CF (0x3<<2)
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_SHIFT 2
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF (0x3<<4)
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_SHIFT 4
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_EN (0x1<<6)
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_EN_SHIFT 6
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN (0x1<<7)
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN_SHIFT 7
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN (0x1<<8)
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN_SHIFT 8
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_SND_NXT_EN (0x1<<9)
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_SND_NXT_EN_SHIFT 9
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<10)
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 10
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX2_FLAG (0x1<<11)
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX2_FLAG_SHIFT 11
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX1_CF_EN (0x1<<12)
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX1_CF_EN_SHIFT 12
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX2_CF_EN (0x1<<13)
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX2_CF_EN_SHIFT 13
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX1_CF (0x3<<14)
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX1_CF_SHIFT 14
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX2_CF (0x3<<16)
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX2_CF_SHIFT 16
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_TX_BLOCKED (0x1<<18)
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_TX_BLOCKED_SHIFT 18
#define __TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN (0x1<<19)
#define __TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT 19
#define __TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN (0x1<<20)
#define __TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN_SHIFT 20
#define __TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN (0x1<<21)
#define __TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN_SHIFT 21
#define __TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_RESERVED1 (0x3<<22)
#define __TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_RESERVED1_SHIFT 22
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ (0xF<<24)
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ_SHIFT 24
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ (0xF<<28)
#define TSTORM_ISCSI_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ_SHIFT 28
u32_t snd_max ;
u32_t snd_una ;
u32_t __reserved2;
};
struct tstorm_iscsi_ag_context
{
#if defined(__BIG_ENDIAN)
u16_t ulp_credit;
u8_t agg_vars1;
#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF (0x3<<4)
#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_SHIFT 4
#define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG (0x1<<6)
#define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG_SHIFT 6
#define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG (0x1<<7)
#define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG_SHIFT 7
u8_t state ;
#elif defined(__LITTLE_ENDIAN)
u8_t state ;
u8_t agg_vars1;
#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
#define TSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF (0x3<<4)
#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_SHIFT 4
#define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG (0x1<<6)
#define __TSTORM_ISCSI_AG_CONTEXT_AUX3_FLAG_SHIFT 6
#define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG (0x1<<7)
#define __TSTORM_ISCSI_AG_CONTEXT_ACK_ON_FIN_SENT_FLAG_SHIFT 7
u16_t ulp_credit;
#endif
#if defined(__BIG_ENDIAN)
u16_t __agg_val4;
u16_t agg_vars2;
#define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG (0x1<<0)
#define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG_SHIFT 0
#define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG (0x1<<1)
#define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG_SHIFT 1
#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF (0x3<<2)
#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_SHIFT 2
#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF (0x3<<4)
#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_SHIFT 4
#define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF (0x3<<6)
#define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_SHIFT 6
#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF (0x3<<8)
#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_SHIFT 8
#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG (0x1<<10)
#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG_SHIFT 10
#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<11)
#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 11
#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN (0x1<<12)
#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN_SHIFT 12
#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN (0x1<<13)
#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN_SHIFT 13
#define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN (0x1<<14)
#define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN_SHIFT 14
#define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN (0x1<<15)
#define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN_SHIFT 15
#elif defined(__LITTLE_ENDIAN)
u16_t agg_vars2;
#define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG (0x1<<0)
#define __TSTORM_ISCSI_AG_CONTEXT_MSL_TIMER_SET_FLAG_SHIFT 0
#define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG (0x1<<1)
#define __TSTORM_ISCSI_AG_CONTEXT_FIN_SENT_FIRST_FLAG_SHIFT 1
#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF (0x3<<2)
#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_SHIFT 2
#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF (0x3<<4)
#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_SHIFT 4
#define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF (0x3<<6)
#define __TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_SHIFT 6
#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF (0x3<<8)
#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_SHIFT 8
#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG (0x1<<10)
#define __TSTORM_ISCSI_AG_CONTEXT_AUX7_FLAG_SHIFT 10
#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<11)
#define __TSTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 11
#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN (0x1<<12)
#define __TSTORM_ISCSI_AG_CONTEXT_RST_SENT_CF_EN_SHIFT 12
#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN (0x1<<13)
#define __TSTORM_ISCSI_AG_CONTEXT_WAKEUP_CALL_CF_EN_SHIFT 13
#define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN (0x1<<14)
#define TSTORM_ISCSI_AG_CONTEXT_AUX6_CF_EN_SHIFT 14
#define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN (0x1<<15)
#define TSTORM_ISCSI_AG_CONTEXT_AUX7_CF_EN_SHIFT 15
u16_t __agg_val4;
#endif
struct tstorm_iscsi_tcp_ag_context_section tcp ;
};
struct tstorm_tcp_tcp_ag_context_section
{
u32_t __agg_val1 ;
#if defined(__BIG_ENDIAN)
u8_t __tcp_agg_vars2 ;
u8_t __agg_val3 ;
u16_t __agg_val2 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __agg_val2 ;
u8_t __agg_val3 ;
u8_t __tcp_agg_vars2 ;
#endif
#if defined(__BIG_ENDIAN)
u16_t __agg_val5;
u8_t __agg_val6;
u8_t __tcp_agg_vars3 ;
#elif defined(__LITTLE_ENDIAN)
u8_t __tcp_agg_vars3 ;
u8_t __agg_val6;
u16_t __agg_val5;
#endif
u32_t snd_nxt ;
u32_t rtt_seq ;
u32_t rtt_time ;
u32_t __reserved66;
u32_t wnd_right_edge ;
u32_t tcp_agg_vars1;
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG (0x1<<0)
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT 0
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG (0x1<<1)
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG_SHIFT 1
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF (0x3<<2)
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_SHIFT 2
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF (0x3<<4)
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_SHIFT 4
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_EN (0x1<<6)
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_WND_UPD_CF_EN_SHIFT 6
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN (0x1<<7)
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN_SHIFT 7
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN (0x1<<8)
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN_SHIFT 8
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_SND_NXT_EN (0x1<<9)
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_SND_NXT_EN_SHIFT 9
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<10)
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 10
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_FLAG (0x1<<11)
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_FLAG_SHIFT 11
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF_EN (0x1<<12)
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF_EN_SHIFT 12
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF_EN (0x1<<13)
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF_EN_SHIFT 13
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF (0x3<<14)
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_CF_SHIFT 14
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF (0x3<<16)
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX2_CF_SHIFT 16
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_BLOCKED (0x1<<18)
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_BLOCKED_SHIFT 18
#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN (0x1<<19)
#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT 19
#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN (0x1<<20)
#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN_SHIFT 20
#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN (0x1<<21)
#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN_SHIFT 21
#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED1 (0x3<<22)
#define __TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED1_SHIFT 22
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ (0xF<<24)
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ_SHIFT 24
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ (0xF<<28)
#define TSTORM_TCP_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ_SHIFT 28
u32_t snd_max ;
u32_t snd_una ;
u32_t __reserved2;
};
struct tstorm_toe_tcp_ag_context_section
{
u32_t __agg_val1 ;
#if defined(__BIG_ENDIAN)
u8_t __tcp_agg_vars2 ;
u8_t __agg_val3 ;
u16_t __agg_val2 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __agg_val2 ;
u8_t __agg_val3 ;
u8_t __tcp_agg_vars2 ;
#endif
#if defined(__BIG_ENDIAN)
u16_t __agg_val5;
u8_t __agg_val6;
u8_t __tcp_agg_vars3 ;
#elif defined(__LITTLE_ENDIAN)
u8_t __tcp_agg_vars3 ;
u8_t __agg_val6;
u16_t __agg_val5;
#endif
u32_t snd_nxt ;
u32_t rtt_seq ;
u32_t rtt_time ;
u32_t __reserved66;
u32_t wnd_right_edge ;
u32_t tcp_agg_vars1;
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG (0x1<<0)
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT 0
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG (0x1<<1)
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_LAST_PACKET_FIN_FLAG_SHIFT 1
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED52 (0x3<<2)
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED52_SHIFT 2
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF (0x3<<4)
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_SHIFT 4
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED_WND_UPD_CF_EN (0x1<<6)
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED_WND_UPD_CF_EN_SHIFT 6
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN (0x1<<7)
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_TIMEOUT_CF_EN_SHIFT 7
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN (0x1<<8)
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RETRANSMIT_SEQ_EN_SHIFT 8
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_SND_NXT_EN (0x1<<9)
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_SND_NXT_EN_SHIFT 9
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_NEWRTTSAMPLE (0x1<<10)
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_NEWRTTSAMPLE_SHIFT 10
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED55 (0x1<<11)
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED55_SHIFT 11
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED_AUX1_CF_EN (0x1<<12)
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED_AUX1_CF_EN_SHIFT 12
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED_AUX2_CF_EN (0x1<<13)
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED_AUX2_CF_EN_SHIFT 13
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED56 (0x3<<14)
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED56_SHIFT 14
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED57 (0x3<<16)
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED57_SHIFT 16
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_BLOCKED (0x1<<18)
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_BLOCKED_SHIFT 18
#define __TSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN (0x1<<19)
#define __TSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT 19
#define __TSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN (0x1<<20)
#define __TSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX11_CF_EN_SHIFT 20
#define __TSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN (0x1<<21)
#define __TSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX12_CF_EN_SHIFT 21
#define __TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED1 (0x3<<22)
#define __TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED1_SHIFT 22
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ (0xF<<24)
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RETRANSMIT_PEND_SEQ_SHIFT 24
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ (0xF<<28)
#define TSTORM_TOE_TCP_AG_CONTEXT_SECTION_RETRANSMIT_DONE_SEQ_SHIFT 28
u32_t snd_max ;
u32_t snd_una ;
u32_t __reserved2;
};
struct tstorm_toe_ag_context
{
#if defined(__BIG_ENDIAN)
u16_t reserved54;
u8_t agg_vars1;
#define TSTORM_TOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
#define TSTORM_TOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
#define TSTORM_TOE_AG_CONTEXT_RESERVED51 (0x1<<1)
#define TSTORM_TOE_AG_CONTEXT_RESERVED51_SHIFT 1
#define TSTORM_TOE_AG_CONTEXT_RESERVED52 (0x1<<2)
#define TSTORM_TOE_AG_CONTEXT_RESERVED52_SHIFT 2
#define TSTORM_TOE_AG_CONTEXT_RESERVED53 (0x1<<3)
#define TSTORM_TOE_AG_CONTEXT_RESERVED53_SHIFT 3
#define __TSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q0_CF (0x3<<4)
#define __TSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_SHIFT 4
#define __TSTORM_TOE_AG_CONTEXT_AUX3_FLAG (0x1<<6)
#define __TSTORM_TOE_AG_CONTEXT_AUX3_FLAG_SHIFT 6
#define __TSTORM_TOE_AG_CONTEXT_AUX4_FLAG (0x1<<7)
#define __TSTORM_TOE_AG_CONTEXT_AUX4_FLAG_SHIFT 7
u8_t __state ;
#elif defined(__LITTLE_ENDIAN)
u8_t __state ;
u8_t agg_vars1;
#define TSTORM_TOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
#define TSTORM_TOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
#define TSTORM_TOE_AG_CONTEXT_RESERVED51 (0x1<<1)
#define TSTORM_TOE_AG_CONTEXT_RESERVED51_SHIFT 1
#define TSTORM_TOE_AG_CONTEXT_RESERVED52 (0x1<<2)
#define TSTORM_TOE_AG_CONTEXT_RESERVED52_SHIFT 2
#define TSTORM_TOE_AG_CONTEXT_RESERVED53 (0x1<<3)
#define TSTORM_TOE_AG_CONTEXT_RESERVED53_SHIFT 3
#define __TSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q0_CF (0x3<<4)
#define __TSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_SHIFT 4
#define __TSTORM_TOE_AG_CONTEXT_AUX3_FLAG (0x1<<6)
#define __TSTORM_TOE_AG_CONTEXT_AUX3_FLAG_SHIFT 6
#define __TSTORM_TOE_AG_CONTEXT_AUX4_FLAG (0x1<<7)
#define __TSTORM_TOE_AG_CONTEXT_AUX4_FLAG_SHIFT 7
u16_t reserved54;
#endif
#if defined(__BIG_ENDIAN)
u16_t __agg_val4;
u16_t agg_vars2;
#define __TSTORM_TOE_AG_CONTEXT_AUX5_FLAG (0x1<<0)
#define __TSTORM_TOE_AG_CONTEXT_AUX5_FLAG_SHIFT 0
#define __TSTORM_TOE_AG_CONTEXT_AUX6_FLAG (0x1<<1)
#define __TSTORM_TOE_AG_CONTEXT_AUX6_FLAG_SHIFT 1
#define __TSTORM_TOE_AG_CONTEXT_AUX4_CF (0x3<<2)
#define __TSTORM_TOE_AG_CONTEXT_AUX4_CF_SHIFT 2
#define __TSTORM_TOE_AG_CONTEXT_AUX5_CF (0x3<<4)
#define __TSTORM_TOE_AG_CONTEXT_AUX5_CF_SHIFT 4
#define __TSTORM_TOE_AG_CONTEXT_AUX6_CF (0x3<<6)
#define __TSTORM_TOE_AG_CONTEXT_AUX6_CF_SHIFT 6
#define __TSTORM_TOE_AG_CONTEXT_AUX7_CF (0x3<<8)
#define __TSTORM_TOE_AG_CONTEXT_AUX7_CF_SHIFT 8
#define __TSTORM_TOE_AG_CONTEXT_AUX7_FLAG (0x1<<10)
#define __TSTORM_TOE_AG_CONTEXT_AUX7_FLAG_SHIFT 10
#define __TSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<11)
#define __TSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 11
#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX4_CF_EN (0x1<<12)
#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX4_CF_EN_SHIFT 12
#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX5_CF_EN (0x1<<13)
#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX5_CF_EN_SHIFT 13
#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX6_CF_EN (0x1<<14)
#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX6_CF_EN_SHIFT 14
#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX7_CF_EN (0x1<<15)
#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX7_CF_EN_SHIFT 15
#elif defined(__LITTLE_ENDIAN)
u16_t agg_vars2;
#define __TSTORM_TOE_AG_CONTEXT_AUX5_FLAG (0x1<<0)
#define __TSTORM_TOE_AG_CONTEXT_AUX5_FLAG_SHIFT 0
#define __TSTORM_TOE_AG_CONTEXT_AUX6_FLAG (0x1<<1)
#define __TSTORM_TOE_AG_CONTEXT_AUX6_FLAG_SHIFT 1
#define __TSTORM_TOE_AG_CONTEXT_AUX4_CF (0x3<<2)
#define __TSTORM_TOE_AG_CONTEXT_AUX4_CF_SHIFT 2
#define __TSTORM_TOE_AG_CONTEXT_AUX5_CF (0x3<<4)
#define __TSTORM_TOE_AG_CONTEXT_AUX5_CF_SHIFT 4
#define __TSTORM_TOE_AG_CONTEXT_AUX6_CF (0x3<<6)
#define __TSTORM_TOE_AG_CONTEXT_AUX6_CF_SHIFT 6
#define __TSTORM_TOE_AG_CONTEXT_AUX7_CF (0x3<<8)
#define __TSTORM_TOE_AG_CONTEXT_AUX7_CF_SHIFT 8
#define __TSTORM_TOE_AG_CONTEXT_AUX7_FLAG (0x1<<10)
#define __TSTORM_TOE_AG_CONTEXT_AUX7_FLAG_SHIFT 10
#define __TSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<11)
#define __TSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 11
#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX4_CF_EN (0x1<<12)
#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX4_CF_EN_SHIFT 12
#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX5_CF_EN (0x1<<13)
#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX5_CF_EN_SHIFT 13
#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX6_CF_EN (0x1<<14)
#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX6_CF_EN_SHIFT 14
#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX7_CF_EN (0x1<<15)
#define TSTORM_TOE_AG_CONTEXT_RESERVED_AUX7_CF_EN_SHIFT 15
u16_t __agg_val4;
#endif
struct tstorm_toe_tcp_ag_context_section tcp ;
};
struct ustorm_eth_ag_context
{
u32_t __reserved0;
#if defined(__BIG_ENDIAN)
u8_t cdu_usage ;
u8_t __reserved2;
u16_t __reserved1;
#elif defined(__LITTLE_ENDIAN)
u16_t __reserved1;
u8_t __reserved2;
u8_t cdu_usage ;
#endif
u32_t __reserved3[6];
};
struct ustorm_fcoe_ag_context
{
#if defined(__BIG_ENDIAN)
u8_t __aux_counter_flags ;
u8_t agg_vars2;
#define USTORM_FCOE_AG_CONTEXT_TX_CF (0x3<<0)
#define USTORM_FCOE_AG_CONTEXT_TX_CF_SHIFT 0
#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF (0x3<<2)
#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_SHIFT 2
#define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE (0x7<<4)
#define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE_SHIFT 4
#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK (0x1<<7)
#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK_SHIFT 7
u8_t agg_vars1;
#define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
#define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
#define USTORM_FCOE_AG_CONTEXT_INV_CF (0x3<<4)
#define USTORM_FCOE_AG_CONTEXT_INV_CF_SHIFT 4
#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF (0x3<<6)
#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_SHIFT 6
u8_t state ;
#elif defined(__LITTLE_ENDIAN)
u8_t state ;
u8_t agg_vars1;
#define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
#define __USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
#define USTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
#define USTORM_FCOE_AG_CONTEXT_INV_CF (0x3<<4)
#define USTORM_FCOE_AG_CONTEXT_INV_CF_SHIFT 4
#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF (0x3<<6)
#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_SHIFT 6
u8_t agg_vars2;
#define USTORM_FCOE_AG_CONTEXT_TX_CF (0x3<<0)
#define USTORM_FCOE_AG_CONTEXT_TX_CF_SHIFT 0
#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF (0x3<<2)
#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_SHIFT 2
#define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE (0x7<<4)
#define USTORM_FCOE_AG_CONTEXT_AGG_MISC4_RULE_SHIFT 4
#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK (0x1<<7)
#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL2_MASK_SHIFT 7
u8_t __aux_counter_flags ;
#endif
#if defined(__BIG_ENDIAN)
u8_t cdu_usage ;
u8_t agg_misc2;
u16_t pbf_tx_seq_ack ;
#elif defined(__LITTLE_ENDIAN)
u16_t pbf_tx_seq_ack ;
u8_t agg_misc2;
u8_t cdu_usage ;
#endif
u32_t agg_misc4;
#if defined(__BIG_ENDIAN)
u8_t agg_val3_th;
u8_t agg_val3;
u16_t agg_misc3;
#elif defined(__LITTLE_ENDIAN)
u16_t agg_misc3;
u8_t agg_val3;
u8_t agg_val3_th;
#endif
u32_t expired_task_id ;
u32_t agg_misc4_th;
#if defined(__BIG_ENDIAN)
u16_t cq_prod ;
u16_t cq_cons ;
#elif defined(__LITTLE_ENDIAN)
u16_t cq_cons ;
u16_t cq_prod ;
#endif
#if defined(__BIG_ENDIAN)
u16_t __reserved2;
u8_t decision_rules;
#define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE (0x7<<0)
#define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE_SHIFT 0
#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
#define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG (0x1<<6)
#define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG_SHIFT 6
#define __USTORM_FCOE_AG_CONTEXT_RESERVED1 (0x1<<7)
#define __USTORM_FCOE_AG_CONTEXT_RESERVED1_SHIFT 7
u8_t decision_rule_enable_bits;
#define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN (0x1<<0)
#define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN_SHIFT 0
#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN (0x1<<1)
#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN_SHIFT 1
#define USTORM_FCOE_AG_CONTEXT_TX_CF_EN (0x1<<2)
#define USTORM_FCOE_AG_CONTEXT_TX_CF_EN_SHIFT 2
#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN (0x1<<3)
#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN_SHIFT 3
#define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN (0x1<<4)
#define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT 4
#define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN (0x1<<5)
#define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN_SHIFT 5
#define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN (0x1<<6)
#define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN_SHIFT 6
#define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN (0x1<<7)
#define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT 7
#elif defined(__LITTLE_ENDIAN)
u8_t decision_rule_enable_bits;
#define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN (0x1<<0)
#define __USTORM_FCOE_AG_CONTEXT_RESERVED_INV_CF_EN_SHIFT 0
#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN (0x1<<1)
#define USTORM_FCOE_AG_CONTEXT_COMPLETION_CF_EN_SHIFT 1
#define USTORM_FCOE_AG_CONTEXT_TX_CF_EN (0x1<<2)
#define USTORM_FCOE_AG_CONTEXT_TX_CF_EN_SHIFT 2
#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN (0x1<<3)
#define __USTORM_FCOE_AG_CONTEXT_TIMER_CF_EN_SHIFT 3
#define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN (0x1<<4)
#define __USTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT 4
#define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN (0x1<<5)
#define __USTORM_FCOE_AG_CONTEXT_QUEUE0_CF_EN_SHIFT 5
#define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN (0x1<<6)
#define __USTORM_FCOE_AG_CONTEXT_AUX3_CF_EN_SHIFT 6
#define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN (0x1<<7)
#define __USTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT 7
u8_t decision_rules;
#define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE (0x7<<0)
#define USTORM_FCOE_AG_CONTEXT_CQ_DEC_RULE_SHIFT 0
#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
#define __USTORM_FCOE_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
#define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG (0x1<<6)
#define USTORM_FCOE_AG_CONTEXT_CQ_ARM_N_FLAG_SHIFT 6
#define __USTORM_FCOE_AG_CONTEXT_RESERVED1 (0x1<<7)
#define __USTORM_FCOE_AG_CONTEXT_RESERVED1_SHIFT 7
u16_t __reserved2;
#endif
};
struct ustorm_iscsi_ag_context
{
#if defined(__BIG_ENDIAN)
u8_t __aux_counter_flags ;
u8_t agg_vars2;
#define USTORM_ISCSI_AG_CONTEXT_TX_CF (0x3<<0)
#define USTORM_ISCSI_AG_CONTEXT_TX_CF_SHIFT 0
#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF (0x3<<2)
#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_SHIFT 2
#define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE (0x7<<4)
#define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE_SHIFT 4
#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK (0x1<<7)
#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK_SHIFT 7
u8_t agg_vars1;
#define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
#define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
#define USTORM_ISCSI_AG_CONTEXT_INV_CF (0x3<<4)
#define USTORM_ISCSI_AG_CONTEXT_INV_CF_SHIFT 4
#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF (0x3<<6)
#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_SHIFT 6
u8_t state ;
#elif defined(__LITTLE_ENDIAN)
u8_t state ;
u8_t agg_vars1;
#define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
#define __USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
#define USTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
#define USTORM_ISCSI_AG_CONTEXT_INV_CF (0x3<<4)
#define USTORM_ISCSI_AG_CONTEXT_INV_CF_SHIFT 4
#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF (0x3<<6)
#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_SHIFT 6
u8_t agg_vars2;
#define USTORM_ISCSI_AG_CONTEXT_TX_CF (0x3<<0)
#define USTORM_ISCSI_AG_CONTEXT_TX_CF_SHIFT 0
#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF (0x3<<2)
#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_SHIFT 2
#define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE (0x7<<4)
#define USTORM_ISCSI_AG_CONTEXT_AGG_MISC4_RULE_SHIFT 4
#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK (0x1<<7)
#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_MASK_SHIFT 7
u8_t __aux_counter_flags ;
#endif
#if defined(__BIG_ENDIAN)
u8_t cdu_usage ;
u8_t agg_misc2;
u16_t __cq_local_comp_itt_val ;
#elif defined(__LITTLE_ENDIAN)
u16_t __cq_local_comp_itt_val ;
u8_t agg_misc2;
u8_t cdu_usage ;
#endif
u32_t agg_misc4;
#if defined(__BIG_ENDIAN)
u8_t agg_val3_th;
u8_t agg_val3;
u16_t agg_misc3;
#elif defined(__LITTLE_ENDIAN)
u16_t agg_misc3;
u8_t agg_val3;
u8_t agg_val3_th;
#endif
u32_t agg_val1;
u32_t agg_misc4_th;
#if defined(__BIG_ENDIAN)
u16_t agg_val2_th;
u16_t agg_val2;
#elif defined(__LITTLE_ENDIAN)
u16_t agg_val2;
u16_t agg_val2_th;
#endif
#if defined(__BIG_ENDIAN)
u16_t __reserved2;
u8_t decision_rules;
#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE (0x7<<0)
#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE_SHIFT 0
#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG (0x1<<6)
#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG_SHIFT 6
#define __USTORM_ISCSI_AG_CONTEXT_RESERVED1 (0x1<<7)
#define __USTORM_ISCSI_AG_CONTEXT_RESERVED1_SHIFT 7
u8_t decision_rule_enable_bits;
#define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN (0x1<<0)
#define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN_SHIFT 0
#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN (0x1<<1)
#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN_SHIFT 1
#define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN (0x1<<2)
#define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN_SHIFT 2
#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN (0x1<<3)
#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN_SHIFT 3
#define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN (0x1<<4)
#define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN_SHIFT 4
#define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<5)
#define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 5
#define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN (0x1<<6)
#define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN_SHIFT 6
#define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN (0x1<<7)
#define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT 7
#elif defined(__LITTLE_ENDIAN)
u8_t decision_rule_enable_bits;
#define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN (0x1<<0)
#define USTORM_ISCSI_AG_CONTEXT_INV_CF_EN_SHIFT 0
#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN (0x1<<1)
#define USTORM_ISCSI_AG_CONTEXT_COMPLETION_CF_EN_SHIFT 1
#define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN (0x1<<2)
#define USTORM_ISCSI_AG_CONTEXT_TX_CF_EN_SHIFT 2
#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN (0x1<<3)
#define __USTORM_ISCSI_AG_CONTEXT_TIMER_CF_EN_SHIFT 3
#define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN (0x1<<4)
#define __USTORM_ISCSI_AG_CONTEXT_CQ_LOCAL_COMP_CF_EN_SHIFT 4
#define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN (0x1<<5)
#define __USTORM_ISCSI_AG_CONTEXT_QUEUES_FLUSH_Q0_CF_EN_SHIFT 5
#define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN (0x1<<6)
#define __USTORM_ISCSI_AG_CONTEXT_AUX3_CF_EN_SHIFT 6
#define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN (0x1<<7)
#define __USTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT 7
u8_t decision_rules;
#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE (0x7<<0)
#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_RULE_SHIFT 0
#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
#define __USTORM_ISCSI_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG (0x1<<6)
#define USTORM_ISCSI_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG_SHIFT 6
#define __USTORM_ISCSI_AG_CONTEXT_RESERVED1 (0x1<<7)
#define __USTORM_ISCSI_AG_CONTEXT_RESERVED1_SHIFT 7
u16_t __reserved2;
#endif
};
struct ustorm_toe_ag_context
{
#if defined(__BIG_ENDIAN)
u8_t __aux_counter_flags ;
u8_t __agg_vars2 ;
u8_t __agg_vars1 ;
u8_t __state ;
#elif defined(__LITTLE_ENDIAN)
u8_t __state ;
u8_t __agg_vars1 ;
u8_t __agg_vars2 ;
u8_t __aux_counter_flags ;
#endif
#if defined(__BIG_ENDIAN)
u8_t cdu_usage ;
u8_t __agg_misc2;
u16_t __agg_misc1;
#elif defined(__LITTLE_ENDIAN)
u16_t __agg_misc1;
u8_t __agg_misc2;
u8_t cdu_usage ;
#endif
u32_t __agg_misc4;
#if defined(__BIG_ENDIAN)
u8_t __agg_val3_th;
u8_t __agg_val3;
u16_t __agg_misc3;
#elif defined(__LITTLE_ENDIAN)
u16_t __agg_misc3;
u8_t __agg_val3;
u8_t __agg_val3_th;
#endif
u32_t driver_doorbell_info_ptr_lo ;
u32_t driver_doorbell_info_ptr_hi ;
#if defined(__BIG_ENDIAN)
u16_t __agg_val2_th;
u16_t rq_prod ;
#elif defined(__LITTLE_ENDIAN)
u16_t rq_prod ;
u16_t __agg_val2_th;
#endif
#if defined(__BIG_ENDIAN)
u16_t __reserved2;
u8_t decision_rules;
#define __USTORM_TOE_AG_CONTEXT_AGG_VAL2_RULE (0x7<<0)
#define __USTORM_TOE_AG_CONTEXT_AGG_VAL2_RULE_SHIFT 0
#define __USTORM_TOE_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
#define __USTORM_TOE_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
#define USTORM_TOE_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG (0x1<<6)
#define USTORM_TOE_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG_SHIFT 6
#define __USTORM_TOE_AG_CONTEXT_RESERVED1 (0x1<<7)
#define __USTORM_TOE_AG_CONTEXT_RESERVED1_SHIFT 7
u8_t __decision_rule_enable_bits ;
#elif defined(__LITTLE_ENDIAN)
u8_t __decision_rule_enable_bits ;
u8_t decision_rules;
#define __USTORM_TOE_AG_CONTEXT_AGG_VAL2_RULE (0x7<<0)
#define __USTORM_TOE_AG_CONTEXT_AGG_VAL2_RULE_SHIFT 0
#define __USTORM_TOE_AG_CONTEXT_AGG_VAL3_RULE (0x7<<3)
#define __USTORM_TOE_AG_CONTEXT_AGG_VAL3_RULE_SHIFT 3
#define USTORM_TOE_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG (0x1<<6)
#define USTORM_TOE_AG_CONTEXT_AGG_VAL2_ARM_N_FLAG_SHIFT 6
#define __USTORM_TOE_AG_CONTEXT_RESERVED1 (0x1<<7)
#define __USTORM_TOE_AG_CONTEXT_RESERVED1_SHIFT 7
u16_t __reserved2;
#endif
};
struct xstorm_eth_ag_context
{
u32_t reserved0;
#if defined(__BIG_ENDIAN)
u8_t cdu_reserved ;
u8_t reserved2;
u16_t reserved1;
#elif defined(__LITTLE_ENDIAN)
u16_t reserved1;
u8_t reserved2;
u8_t cdu_reserved ;
#endif
u32_t reserved3[30];
};
struct xstorm_fcoe_extra_ag_context_section
{
#if defined(__BIG_ENDIAN)
u8_t tcp_agg_vars1;
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51 (0x3<<0)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51_SHIFT 0
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED (0x3<<2)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT 2
#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF (0x3<<4)
#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT 4
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN (0x1<<6)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN_SHIFT 6
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG (0x1<<7)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG_SHIFT 7
u8_t __reserved_da_cnt ;
u16_t __mtu ;
#elif defined(__LITTLE_ENDIAN)
u16_t __mtu ;
u8_t __reserved_da_cnt ;
u8_t tcp_agg_vars1;
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51 (0x3<<0)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED51_SHIFT 0
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED (0x3<<2)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT 2
#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF (0x3<<4)
#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT 4
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN (0x1<<6)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_CLEAR_DA_TIMER_EN_SHIFT 6
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG (0x1<<7)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_DA_EXPIRATION_FLAG_SHIFT 7
#endif
u32_t snd_nxt ;
u32_t __xfrqe_bd_addr_lo ;
u32_t __xfrqe_bd_addr_hi ;
u32_t __xfrqe_data1 ;
#if defined(__BIG_ENDIAN)
u8_t __agg_val8_th ;
u8_t __tx_dest ;
u16_t tcp_agg_vars2;
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57 (0x1<<0)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57_SHIFT 0
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58 (0x1<<1)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58_SHIFT 1
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59 (0x1<<2)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59_SHIFT 2
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG (0x1<<3)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT 3
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX4_FLAG (0x1<<4)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT 4
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED60 (0x1<<5)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED60_SHIFT 5
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_ACK_TO_FE_UPDATED_EN (0x1<<6)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_ACK_TO_FE_UPDATED_EN_SHIFT 6
#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN (0x1<<7)
#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT 7
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_TX_FIN_FLAG_EN (0x1<<8)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_TX_FIN_FLAG_EN_SHIFT 8
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<9)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 9
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SET_RTO_CF (0x3<<10)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT 10
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF (0x3<<12)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT 12
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF (0x3<<14)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT 14
#elif defined(__LITTLE_ENDIAN)
u16_t tcp_agg_vars2;
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57 (0x1<<0)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED57_SHIFT 0
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58 (0x1<<1)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED58_SHIFT 1
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59 (0x1<<2)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED59_SHIFT 2
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG (0x1<<3)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT 3
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX4_FLAG (0x1<<4)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT 4
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED60 (0x1<<5)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED60_SHIFT 5
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_ACK_TO_FE_UPDATED_EN (0x1<<6)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_ACK_TO_FE_UPDATED_EN_SHIFT 6
#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN (0x1<<7)
#define XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT 7
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_TX_FIN_FLAG_EN (0x1<<8)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_RESERVED_TX_FIN_FLAG_EN_SHIFT 8
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<9)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 9
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SET_RTO_CF (0x3<<10)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT 10
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF (0x3<<12)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT 12
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF (0x3<<14)
#define __XSTORM_FCOE_EXTRA_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT 14
u8_t __tx_dest ;
u8_t __agg_val8_th ;
#endif
u32_t __sq_base_addr_lo ;
u32_t __sq_base_addr_hi ;
u32_t __xfrq_base_addr_lo ;
u32_t __xfrq_base_addr_hi ;
#if defined(__BIG_ENDIAN)
u16_t __xfrq_cons ;
u16_t __xfrq_prod ;
#elif defined(__LITTLE_ENDIAN)
u16_t __xfrq_prod ;
u16_t __xfrq_cons ;
#endif
#if defined(__BIG_ENDIAN)
u8_t __tcp_agg_vars5 ;
u8_t __tcp_agg_vars4 ;
u8_t __tcp_agg_vars3 ;
u8_t __reserved_force_pure_ack_cnt ;
#elif defined(__LITTLE_ENDIAN)
u8_t __reserved_force_pure_ack_cnt ;
u8_t __tcp_agg_vars3 ;
u8_t __tcp_agg_vars4 ;
u8_t __tcp_agg_vars5 ;
#endif
u32_t __tcp_agg_vars6 ;
#if defined(__BIG_ENDIAN)
u16_t __xfrqe_mng ;
u16_t __tcp_agg_vars7 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __tcp_agg_vars7 ;
u16_t __xfrqe_mng ;
#endif
u32_t __xfrqe_data0 ;
u32_t __agg_val10_th ;
#if defined(__BIG_ENDIAN)
u16_t __reserved3;
u8_t __reserved2;
u8_t __da_only_cnt ;
#elif defined(__LITTLE_ENDIAN)
u8_t __da_only_cnt ;
u8_t __reserved2;
u16_t __reserved3;
#endif
};
struct xstorm_fcoe_ag_context
{
#if defined(__BIG_ENDIAN)
u16_t agg_val1 ;
u8_t agg_vars1;
#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
#define __XSTORM_FCOE_AG_CONTEXT_RESERVED51 (0x1<<2)
#define __XSTORM_FCOE_AG_CONTEXT_RESERVED51_SHIFT 2
#define __XSTORM_FCOE_AG_CONTEXT_RESERVED52 (0x1<<3)
#define __XSTORM_FCOE_AG_CONTEXT_RESERVED52_SHIFT 3
#define __XSTORM_FCOE_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
#define __XSTORM_FCOE_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
#define XSTORM_FCOE_AG_CONTEXT_NAGLE_EN (0x1<<5)
#define XSTORM_FCOE_AG_CONTEXT_NAGLE_EN_SHIFT 5
#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG (0x1<<6)
#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT 6
#define __XSTORM_FCOE_AG_CONTEXT_RESERVED_UNA_GT_NXT_EN (0x1<<7)
#define __XSTORM_FCOE_AG_CONTEXT_RESERVED_UNA_GT_NXT_EN_SHIFT 7
u8_t __state ;
#elif defined(__LITTLE_ENDIAN)
u8_t __state ;
u8_t agg_vars1;
#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
#define __XSTORM_FCOE_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
#define __XSTORM_FCOE_AG_CONTEXT_RESERVED51 (0x1<<2)
#define __XSTORM_FCOE_AG_CONTEXT_RESERVED51_SHIFT 2
#define __XSTORM_FCOE_AG_CONTEXT_RESERVED52 (0x1<<3)
#define __XSTORM_FCOE_AG_CONTEXT_RESERVED52_SHIFT 3
#define __XSTORM_FCOE_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
#define __XSTORM_FCOE_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
#define XSTORM_FCOE_AG_CONTEXT_NAGLE_EN (0x1<<5)
#define XSTORM_FCOE_AG_CONTEXT_NAGLE_EN_SHIFT 5
#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG (0x1<<6)
#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT 6
#define __XSTORM_FCOE_AG_CONTEXT_RESERVED_UNA_GT_NXT_EN (0x1<<7)
#define __XSTORM_FCOE_AG_CONTEXT_RESERVED_UNA_GT_NXT_EN_SHIFT 7
u16_t agg_val1 ;
#endif
#if defined(__BIG_ENDIAN)
u8_t cdu_reserved ;
u8_t __agg_vars4 ;
u8_t agg_vars3;
#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
#define __XSTORM_FCOE_AG_CONTEXT_AUX19_CF (0x3<<6)
#define __XSTORM_FCOE_AG_CONTEXT_AUX19_CF_SHIFT 6
u8_t agg_vars2;
#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF (0x3<<0)
#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_SHIFT 0
#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_EN (0x1<<2)
#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT 2
#define __XSTORM_FCOE_AG_CONTEXT_AUX8_FLAG (0x1<<3)
#define __XSTORM_FCOE_AG_CONTEXT_AUX8_FLAG_SHIFT 3
#define __XSTORM_FCOE_AG_CONTEXT_AUX9_FLAG (0x1<<4)
#define __XSTORM_FCOE_AG_CONTEXT_AUX9_FLAG_SHIFT 4
#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE1 (0x3<<5)
#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE1_SHIFT 5
#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_EN (0x1<<7)
#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT 7
#elif defined(__LITTLE_ENDIAN)
u8_t agg_vars2;
#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF (0x3<<0)
#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_SHIFT 0
#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_EN (0x1<<2)
#define __XSTORM_FCOE_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT 2
#define __XSTORM_FCOE_AG_CONTEXT_AUX8_FLAG (0x1<<3)
#define __XSTORM_FCOE_AG_CONTEXT_AUX8_FLAG_SHIFT 3
#define __XSTORM_FCOE_AG_CONTEXT_AUX9_FLAG (0x1<<4)
#define __XSTORM_FCOE_AG_CONTEXT_AUX9_FLAG_SHIFT 4
#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE1 (0x3<<5)
#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE1_SHIFT 5
#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_EN (0x1<<7)
#define __XSTORM_FCOE_AG_CONTEXT_DQ_CF_EN_SHIFT 7
u8_t agg_vars3;
#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
#define __XSTORM_FCOE_AG_CONTEXT_AUX19_CF (0x3<<6)
#define __XSTORM_FCOE_AG_CONTEXT_AUX19_CF_SHIFT 6
u8_t __agg_vars4 ;
u8_t cdu_reserved ;
#endif
u32_t more_to_send ;
#if defined(__BIG_ENDIAN)
u16_t agg_vars5;
#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE5 (0x3<<0)
#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE5_SHIFT 0
#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
#define __XSTORM_FCOE_AG_CONTEXT_CONFQ_DEC_RULE (0x3<<14)
#define __XSTORM_FCOE_AG_CONTEXT_CONFQ_DEC_RULE_SHIFT 14
u16_t sq_cons ;
#elif defined(__LITTLE_ENDIAN)
u16_t sq_cons ;
u16_t agg_vars5;
#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE5 (0x3<<0)
#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE5_SHIFT 0
#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
#define XSTORM_FCOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
#define __XSTORM_FCOE_AG_CONTEXT_CONFQ_DEC_RULE (0x3<<14)
#define __XSTORM_FCOE_AG_CONTEXT_CONFQ_DEC_RULE_SHIFT 14
#endif
struct xstorm_fcoe_extra_ag_context_section __extra_section ;
#if defined(__BIG_ENDIAN)
u16_t agg_vars7;
#define __XSTORM_FCOE_AG_CONTEXT_AGG_VAL11_DECISION_RULE (0x7<<0)
#define __XSTORM_FCOE_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT 0
#define __XSTORM_FCOE_AG_CONTEXT_AUX13_FLAG (0x1<<3)
#define __XSTORM_FCOE_AG_CONTEXT_AUX13_FLAG_SHIFT 3
#define __XSTORM_FCOE_AG_CONTEXT_QUEUE0_CF (0x3<<4)
#define __XSTORM_FCOE_AG_CONTEXT_QUEUE0_CF_SHIFT 4
#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE3 (0x3<<6)
#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE3_SHIFT 6
#define XSTORM_FCOE_AG_CONTEXT_AUX1_CF (0x3<<8)
#define XSTORM_FCOE_AG_CONTEXT_AUX1_CF_SHIFT 8
#define __XSTORM_FCOE_AG_CONTEXT_RESERVED62 (0x1<<10)
#define __XSTORM_FCOE_AG_CONTEXT_RESERVED62_SHIFT 10
#define __XSTORM_FCOE_AG_CONTEXT_AUX1_CF_EN (0x1<<11)
#define __XSTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT 11
#define __XSTORM_FCOE_AG_CONTEXT_AUX10_FLAG (0x1<<12)
#define __XSTORM_FCOE_AG_CONTEXT_AUX10_FLAG_SHIFT 12
#define __XSTORM_FCOE_AG_CONTEXT_AUX11_FLAG (0x1<<13)
#define __XSTORM_FCOE_AG_CONTEXT_AUX11_FLAG_SHIFT 13
#define __XSTORM_FCOE_AG_CONTEXT_AUX12_FLAG (0x1<<14)
#define __XSTORM_FCOE_AG_CONTEXT_AUX12_FLAG_SHIFT 14
#define __XSTORM_FCOE_AG_CONTEXT_AUX2_FLAG (0x1<<15)
#define __XSTORM_FCOE_AG_CONTEXT_AUX2_FLAG_SHIFT 15
u8_t agg_val3_th ;
u8_t agg_vars6;
#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE6 (0x7<<0)
#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE6_SHIFT 0
#define __XSTORM_FCOE_AG_CONTEXT_XFRQ_DEC_RULE (0x7<<3)
#define __XSTORM_FCOE_AG_CONTEXT_XFRQ_DEC_RULE_SHIFT 3
#define __XSTORM_FCOE_AG_CONTEXT_SQ_DEC_RULE (0x3<<6)
#define __XSTORM_FCOE_AG_CONTEXT_SQ_DEC_RULE_SHIFT 6
#elif defined(__LITTLE_ENDIAN)
u8_t agg_vars6;
#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE6 (0x7<<0)
#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE6_SHIFT 0
#define __XSTORM_FCOE_AG_CONTEXT_XFRQ_DEC_RULE (0x7<<3)
#define __XSTORM_FCOE_AG_CONTEXT_XFRQ_DEC_RULE_SHIFT 3
#define __XSTORM_FCOE_AG_CONTEXT_SQ_DEC_RULE (0x3<<6)
#define __XSTORM_FCOE_AG_CONTEXT_SQ_DEC_RULE_SHIFT 6
u8_t agg_val3_th ;
u16_t agg_vars7;
#define __XSTORM_FCOE_AG_CONTEXT_AGG_VAL11_DECISION_RULE (0x7<<0)
#define __XSTORM_FCOE_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT 0
#define __XSTORM_FCOE_AG_CONTEXT_AUX13_FLAG (0x1<<3)
#define __XSTORM_FCOE_AG_CONTEXT_AUX13_FLAG_SHIFT 3
#define __XSTORM_FCOE_AG_CONTEXT_QUEUE0_CF (0x3<<4)
#define __XSTORM_FCOE_AG_CONTEXT_QUEUE0_CF_SHIFT 4
#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE3 (0x3<<6)
#define XSTORM_FCOE_AG_CONTEXT_DECISION_RULE3_SHIFT 6
#define XSTORM_FCOE_AG_CONTEXT_AUX1_CF (0x3<<8)
#define XSTORM_FCOE_AG_CONTEXT_AUX1_CF_SHIFT 8
#define __XSTORM_FCOE_AG_CONTEXT_RESERVED62 (0x1<<10)
#define __XSTORM_FCOE_AG_CONTEXT_RESERVED62_SHIFT 10
#define __XSTORM_FCOE_AG_CONTEXT_AUX1_CF_EN (0x1<<11)
#define __XSTORM_FCOE_AG_CONTEXT_AUX1_CF_EN_SHIFT 11
#define __XSTORM_FCOE_AG_CONTEXT_AUX10_FLAG (0x1<<12)
#define __XSTORM_FCOE_AG_CONTEXT_AUX10_FLAG_SHIFT 12
#define __XSTORM_FCOE_AG_CONTEXT_AUX11_FLAG (0x1<<13)
#define __XSTORM_FCOE_AG_CONTEXT_AUX11_FLAG_SHIFT 13
#define __XSTORM_FCOE_AG_CONTEXT_AUX12_FLAG (0x1<<14)
#define __XSTORM_FCOE_AG_CONTEXT_AUX12_FLAG_SHIFT 14
#define __XSTORM_FCOE_AG_CONTEXT_AUX2_FLAG (0x1<<15)
#define __XSTORM_FCOE_AG_CONTEXT_AUX2_FLAG_SHIFT 15
#endif
#if defined(__BIG_ENDIAN)
u16_t __agg_val11_th ;
u16_t __agg_val11 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __agg_val11 ;
u16_t __agg_val11_th ;
#endif
#if defined(__BIG_ENDIAN)
u8_t __reserved1;
u8_t __agg_val6_th ;
u16_t __agg_val9 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __agg_val9 ;
u8_t __agg_val6_th ;
u8_t __reserved1;
#endif
#if defined(__BIG_ENDIAN)
u16_t confq_cons ;
u16_t confq_prod ;
#elif defined(__LITTLE_ENDIAN)
u16_t confq_prod ;
u16_t confq_cons ;
#endif
u32_t agg_vars8;
#define XSTORM_FCOE_AG_CONTEXT_AGG_MISC2 (0xFFFFFF<<0)
#define XSTORM_FCOE_AG_CONTEXT_AGG_MISC2_SHIFT 0
#define XSTORM_FCOE_AG_CONTEXT_AGG_MISC3 (0xFF<<24)
#define XSTORM_FCOE_AG_CONTEXT_AGG_MISC3_SHIFT 24
#if defined(__BIG_ENDIAN)
u16_t __cache_wqe_db ;
u16_t sq_prod ;
#elif defined(__LITTLE_ENDIAN)
u16_t sq_prod ;
u16_t __cache_wqe_db ;
#endif
#if defined(__BIG_ENDIAN)
u8_t agg_val3 ;
u8_t agg_val6 ;
u8_t agg_val5_th ;
u8_t agg_val5 ;
#elif defined(__LITTLE_ENDIAN)
u8_t agg_val5 ;
u8_t agg_val5_th ;
u8_t agg_val6 ;
u8_t agg_val3 ;
#endif
#if defined(__BIG_ENDIAN)
u16_t __agg_misc1 ;
u16_t agg_limit1 ;
#elif defined(__LITTLE_ENDIAN)
u16_t agg_limit1 ;
u16_t __agg_misc1 ;
#endif
u32_t completion_seq ;
u32_t confq_pbl_base_lo ;
u32_t confq_pbl_base_hi ;
};
struct xstorm_tcp_tcp_ag_context_section
{
#if defined(__BIG_ENDIAN)
u8_t tcp_agg_vars1;
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF (0x3<<0)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF_SHIFT 0
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED (0x3<<2)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT 2
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF (0x3<<4)
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT 4
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN (0x1<<6)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN_SHIFT 6
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG (0x1<<7)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG_SHIFT 7
u8_t __da_cnt ;
u16_t mss ;
#elif defined(__LITTLE_ENDIAN)
u16_t mss ;
u8_t __da_cnt ;
u8_t tcp_agg_vars1;
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF (0x3<<0)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF_SHIFT 0
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED (0x3<<2)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT 2
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF (0x3<<4)
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT 4
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN (0x1<<6)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN_SHIFT 6
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG (0x1<<7)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG_SHIFT 7
#endif
u32_t snd_nxt ;
u32_t tx_wnd ;
u32_t snd_una ;
u32_t local_adv_wnd ;
#if defined(__BIG_ENDIAN)
u8_t __agg_val8_th ;
u8_t __tx_dest ;
u16_t tcp_agg_vars2;
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG (0x1<<0)
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_SHIFT 0
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED (0x1<<1)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED_SHIFT 1
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE (0x1<<2)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE_SHIFT 2
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX3_FLAG (0x1<<3)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT 3
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX4_FLAG (0x1<<4)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT 4
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_ENABLE (0x1<<5)
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_ENABLE_SHIFT 5
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN (0x1<<6)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN_SHIFT 6
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN (0x1<<7)
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT 7
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN (0x1<<8)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN_SHIFT 8
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<9)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 9
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_RTO_CF (0x3<<10)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT 10
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF (0x3<<12)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT 12
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF (0x3<<14)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT 14
#elif defined(__LITTLE_ENDIAN)
u16_t tcp_agg_vars2;
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG (0x1<<0)
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_SHIFT 0
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED (0x1<<1)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED_SHIFT 1
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE (0x1<<2)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE_SHIFT 2
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX3_FLAG (0x1<<3)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT 3
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX4_FLAG (0x1<<4)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT 4
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_ENABLE (0x1<<5)
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DA_ENABLE_SHIFT 5
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN (0x1<<6)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN_SHIFT 6
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN (0x1<<7)
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT 7
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN (0x1<<8)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN_SHIFT 8
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<9)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 9
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_RTO_CF (0x3<<10)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT 10
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF (0x3<<12)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT 12
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF (0x3<<14)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT 14
u8_t __tx_dest ;
u8_t __agg_val8_th ;
#endif
u32_t ack_to_far_end ;
u32_t rto_timer ;
u32_t ka_timer ;
u32_t ts_to_echo ;
#if defined(__BIG_ENDIAN)
u16_t __agg_val7_th ;
u16_t __agg_val7 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __agg_val7 ;
u16_t __agg_val7_th ;
#endif
#if defined(__BIG_ENDIAN)
u8_t __tcp_agg_vars5 ;
u8_t __tcp_agg_vars4 ;
u8_t __tcp_agg_vars3 ;
u8_t __force_pure_ack_cnt ;
#elif defined(__LITTLE_ENDIAN)
u8_t __force_pure_ack_cnt ;
u8_t __tcp_agg_vars3 ;
u8_t __tcp_agg_vars4 ;
u8_t __tcp_agg_vars5 ;
#endif
u32_t tcp_agg_vars6;
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_CF_EN (0x1<<0)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_CF_EN_SHIFT 0
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_EN (0x1<<1)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_EN_SHIFT 1
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX9_CF_EN (0x1<<2)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX9_CF_EN_SHIFT 2
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN (0x1<<3)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT 3
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX6_FLAG (0x1<<4)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX6_FLAG_SHIFT 4
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX7_FLAG (0x1<<5)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX7_FLAG_SHIFT 5
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX5_CF (0x3<<6)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX5_CF_SHIFT 6
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX9_CF (0x3<<8)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX9_CF_SHIFT 8
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF (0x3<<10)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX10_CF_SHIFT 10
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF (0x3<<12)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX11_CF_SHIFT 12
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF (0x3<<14)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX12_CF_SHIFT 14
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX13_CF (0x3<<16)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX13_CF_SHIFT 16
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX14_CF (0x3<<18)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX14_CF_SHIFT 18
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX15_CF (0x3<<20)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX15_CF_SHIFT 20
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX16_CF (0x3<<22)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX16_CF_SHIFT 22
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX17_CF (0x3<<24)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_AUX17_CF_SHIFT 24
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ECE_FLAG (0x1<<26)
#define XSTORM_TCP_TCP_AG_CONTEXT_SECTION_ECE_FLAG_SHIFT 26
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED71 (0x1<<27)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_RESERVED71_SHIFT 27
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_FORCE_PURE_ACK_CNT_DIRTY (0x1<<28)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_FORCE_PURE_ACK_CNT_DIRTY_SHIFT 28
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TCP_AUTO_STOP_FLAG (0x1<<29)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_TCP_AUTO_STOP_FLAG_SHIFT 29
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DO_TS_UPDATE_FLAG (0x1<<30)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_DO_TS_UPDATE_FLAG_SHIFT 30
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CANCEL_RETRANSMIT_FLAG (0x1<<31)
#define __XSTORM_TCP_TCP_AG_CONTEXT_SECTION_CANCEL_RETRANSMIT_FLAG_SHIFT 31
#if defined(__BIG_ENDIAN)
u16_t __agg_misc6 ;
u16_t __tcp_agg_vars7 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __tcp_agg_vars7 ;
u16_t __agg_misc6 ;
#endif
u32_t __agg_val10 ;
u32_t __agg_val10_th ;
#if defined(__BIG_ENDIAN)
u16_t __reserved3;
u8_t __reserved2;
u8_t __da_only_cnt ;
#elif defined(__LITTLE_ENDIAN)
u8_t __da_only_cnt ;
u8_t __reserved2;
u16_t __reserved3;
#endif
};
struct xstorm_iscsi_ag_context
{
#if defined(__BIG_ENDIAN)
u16_t agg_val1 ;
u8_t agg_vars1;
#define __XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
#define __XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
#define __XSTORM_ISCSI_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
#define __XSTORM_ISCSI_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
#define XSTORM_ISCSI_AG_CONTEXT_NAGLE_EN (0x1<<5)
#define XSTORM_ISCSI_AG_CONTEXT_NAGLE_EN_SHIFT 5
#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG (0x1<<6)
#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT 6
#define __XSTORM_ISCSI_AG_CONTEXT_UNA_GT_NXT_EN (0x1<<7)
#define __XSTORM_ISCSI_AG_CONTEXT_UNA_GT_NXT_EN_SHIFT 7
u8_t state ;
#elif defined(__LITTLE_ENDIAN)
u8_t state ;
u8_t agg_vars1;
#define __XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
#define __XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1 (0x1<<1)
#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM1_SHIFT 1
#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2 (0x1<<2)
#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM2_SHIFT 2
#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3 (0x1<<3)
#define XSTORM_ISCSI_AG_CONTEXT_EXISTS_IN_QM3_SHIFT 3
#define __XSTORM_ISCSI_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
#define __XSTORM_ISCSI_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
#define XSTORM_ISCSI_AG_CONTEXT_NAGLE_EN (0x1<<5)
#define XSTORM_ISCSI_AG_CONTEXT_NAGLE_EN_SHIFT 5
#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG (0x1<<6)
#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_SHIFT 6
#define __XSTORM_ISCSI_AG_CONTEXT_UNA_GT_NXT_EN (0x1<<7)
#define __XSTORM_ISCSI_AG_CONTEXT_UNA_GT_NXT_EN_SHIFT 7
u16_t agg_val1 ;
#endif
#if defined(__BIG_ENDIAN)
u8_t cdu_reserved ;
u8_t __agg_vars4 ;
u8_t agg_vars3;
#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
#define __XSTORM_ISCSI_AG_CONTEXT_RX_TS_EN_CF (0x3<<6)
#define __XSTORM_ISCSI_AG_CONTEXT_RX_TS_EN_CF_SHIFT 6
u8_t agg_vars2;
#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF (0x3<<0)
#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_SHIFT 0
#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_EN (0x1<<2)
#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT 2
#define __XSTORM_ISCSI_AG_CONTEXT_AUX8_FLAG (0x1<<3)
#define __XSTORM_ISCSI_AG_CONTEXT_AUX8_FLAG_SHIFT 3
#define __XSTORM_ISCSI_AG_CONTEXT_AUX9_FLAG (0x1<<4)
#define __XSTORM_ISCSI_AG_CONTEXT_AUX9_FLAG_SHIFT 4
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE1 (0x3<<5)
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE1_SHIFT 5
#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_EN (0x1<<7)
#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT 7
#elif defined(__LITTLE_ENDIAN)
u8_t agg_vars2;
#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF (0x3<<0)
#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_SHIFT 0
#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_EN (0x1<<2)
#define __XSTORM_ISCSI_AG_CONTEXT_DQ_SPARE_FLAG_EN_SHIFT 2
#define __XSTORM_ISCSI_AG_CONTEXT_AUX8_FLAG (0x1<<3)
#define __XSTORM_ISCSI_AG_CONTEXT_AUX8_FLAG_SHIFT 3
#define __XSTORM_ISCSI_AG_CONTEXT_AUX9_FLAG (0x1<<4)
#define __XSTORM_ISCSI_AG_CONTEXT_AUX9_FLAG_SHIFT 4
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE1 (0x3<<5)
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE1_SHIFT 5
#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_EN (0x1<<7)
#define __XSTORM_ISCSI_AG_CONTEXT_DQ_CF_EN_SHIFT 7
u8_t agg_vars3;
#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
#define __XSTORM_ISCSI_AG_CONTEXT_RX_TS_EN_CF (0x3<<6)
#define __XSTORM_ISCSI_AG_CONTEXT_RX_TS_EN_CF_SHIFT 6
u8_t __agg_vars4 ;
u8_t cdu_reserved ;
#endif
u32_t more_to_send ;
#if defined(__BIG_ENDIAN)
u16_t agg_vars5;
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE5 (0x3<<0)
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE5_SHIFT 0
#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE2 (0x3<<14)
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE2_SHIFT 14
u16_t sq_cons ;
#elif defined(__LITTLE_ENDIAN)
u16_t sq_cons ;
u16_t agg_vars5;
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE5 (0x3<<0)
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE5_SHIFT 0
#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
#define XSTORM_ISCSI_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE2 (0x3<<14)
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE2_SHIFT 14
#endif
struct xstorm_tcp_tcp_ag_context_section tcp ;
#if defined(__BIG_ENDIAN)
u16_t agg_vars7;
#define __XSTORM_ISCSI_AG_CONTEXT_AGG_VAL11_DECISION_RULE (0x7<<0)
#define __XSTORM_ISCSI_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT 0
#define __XSTORM_ISCSI_AG_CONTEXT_AUX13_FLAG (0x1<<3)
#define __XSTORM_ISCSI_AG_CONTEXT_AUX13_FLAG_SHIFT 3
#define __XSTORM_ISCSI_AG_CONTEXT_STORMS_SYNC_CF (0x3<<4)
#define __XSTORM_ISCSI_AG_CONTEXT_STORMS_SYNC_CF_SHIFT 4
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE3 (0x3<<6)
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE3_SHIFT 6
#define XSTORM_ISCSI_AG_CONTEXT_AUX1_CF (0x3<<8)
#define XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_SHIFT 8
#define __XSTORM_ISCSI_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK (0x1<<10)
#define __XSTORM_ISCSI_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK_SHIFT 10
#define __XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN (0x1<<11)
#define __XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN_SHIFT 11
#define __XSTORM_ISCSI_AG_CONTEXT_AUX10_FLAG (0x1<<12)
#define __XSTORM_ISCSI_AG_CONTEXT_AUX10_FLAG_SHIFT 12
#define __XSTORM_ISCSI_AG_CONTEXT_AUX11_FLAG (0x1<<13)
#define __XSTORM_ISCSI_AG_CONTEXT_AUX11_FLAG_SHIFT 13
#define __XSTORM_ISCSI_AG_CONTEXT_AUX12_FLAG (0x1<<14)
#define __XSTORM_ISCSI_AG_CONTEXT_AUX12_FLAG_SHIFT 14
#define __XSTORM_ISCSI_AG_CONTEXT_RX_WND_SCL_EN (0x1<<15)
#define __XSTORM_ISCSI_AG_CONTEXT_RX_WND_SCL_EN_SHIFT 15
u8_t agg_val3_th ;
u8_t agg_vars6;
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE6 (0x7<<0)
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE6_SHIFT 0
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE7 (0x7<<3)
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE7_SHIFT 3
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE4 (0x3<<6)
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE4_SHIFT 6
#elif defined(__LITTLE_ENDIAN)
u8_t agg_vars6;
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE6 (0x7<<0)
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE6_SHIFT 0
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE7 (0x7<<3)
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE7_SHIFT 3
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE4 (0x3<<6)
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE4_SHIFT 6
u8_t agg_val3_th ;
u16_t agg_vars7;
#define __XSTORM_ISCSI_AG_CONTEXT_AGG_VAL11_DECISION_RULE (0x7<<0)
#define __XSTORM_ISCSI_AG_CONTEXT_AGG_VAL11_DECISION_RULE_SHIFT 0
#define __XSTORM_ISCSI_AG_CONTEXT_AUX13_FLAG (0x1<<3)
#define __XSTORM_ISCSI_AG_CONTEXT_AUX13_FLAG_SHIFT 3
#define __XSTORM_ISCSI_AG_CONTEXT_STORMS_SYNC_CF (0x3<<4)
#define __XSTORM_ISCSI_AG_CONTEXT_STORMS_SYNC_CF_SHIFT 4
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE3 (0x3<<6)
#define XSTORM_ISCSI_AG_CONTEXT_DECISION_RULE3_SHIFT 6
#define XSTORM_ISCSI_AG_CONTEXT_AUX1_CF (0x3<<8)
#define XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_SHIFT 8
#define __XSTORM_ISCSI_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK (0x1<<10)
#define __XSTORM_ISCSI_AG_CONTEXT_COMPLETION_SEQ_DECISION_MASK_SHIFT 10
#define __XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN (0x1<<11)
#define __XSTORM_ISCSI_AG_CONTEXT_AUX1_CF_EN_SHIFT 11
#define __XSTORM_ISCSI_AG_CONTEXT_AUX10_FLAG (0x1<<12)
#define __XSTORM_ISCSI_AG_CONTEXT_AUX10_FLAG_SHIFT 12
#define __XSTORM_ISCSI_AG_CONTEXT_AUX11_FLAG (0x1<<13)
#define __XSTORM_ISCSI_AG_CONTEXT_AUX11_FLAG_SHIFT 13
#define __XSTORM_ISCSI_AG_CONTEXT_AUX12_FLAG (0x1<<14)
#define __XSTORM_ISCSI_AG_CONTEXT_AUX12_FLAG_SHIFT 14
#define __XSTORM_ISCSI_AG_CONTEXT_RX_WND_SCL_EN (0x1<<15)
#define __XSTORM_ISCSI_AG_CONTEXT_RX_WND_SCL_EN_SHIFT 15
#endif
#if defined(__BIG_ENDIAN)
u16_t __agg_val11_th ;
u16_t __gen_data ;
#elif defined(__LITTLE_ENDIAN)
u16_t __gen_data ;
u16_t __agg_val11_th ;
#endif
#if defined(__BIG_ENDIAN)
u8_t __reserved1;
u8_t __agg_val6_th ;
u16_t __agg_val9 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __agg_val9 ;
u8_t __agg_val6_th ;
u8_t __reserved1;
#endif
#if defined(__BIG_ENDIAN)
u16_t hq_prod ;
u16_t hq_cons ;
#elif defined(__LITTLE_ENDIAN)
u16_t hq_cons ;
u16_t hq_prod ;
#endif
u32_t agg_vars8;
#define XSTORM_ISCSI_AG_CONTEXT_AGG_MISC2 (0xFFFFFF<<0)
#define XSTORM_ISCSI_AG_CONTEXT_AGG_MISC2_SHIFT 0
#define XSTORM_ISCSI_AG_CONTEXT_AGG_MISC3 (0xFF<<24)
#define XSTORM_ISCSI_AG_CONTEXT_AGG_MISC3_SHIFT 24
#if defined(__BIG_ENDIAN)
u16_t r2tq_prod ;
u16_t sq_prod ;
#elif defined(__LITTLE_ENDIAN)
u16_t sq_prod ;
u16_t r2tq_prod ;
#endif
#if defined(__BIG_ENDIAN)
u8_t agg_val3 ;
u8_t agg_val6 ;
u8_t agg_val5_th ;
u8_t agg_val5 ;
#elif defined(__LITTLE_ENDIAN)
u8_t agg_val5 ;
u8_t agg_val5_th ;
u8_t agg_val6 ;
u8_t agg_val3 ;
#endif
#if defined(__BIG_ENDIAN)
u16_t __agg_misc1 ;
u16_t agg_limit1 ;
#elif defined(__LITTLE_ENDIAN)
u16_t agg_limit1 ;
u16_t __agg_misc1 ;
#endif
u32_t hq_cons_tcp_seq ;
u32_t exp_stat_sn ;
u32_t rst_seq_num ;
};
struct xstorm_toe_tcp_ag_context_section
{
#if defined(__BIG_ENDIAN)
u8_t tcp_agg_vars1;
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF (0x3<<0)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF_SHIFT 0
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED (0x3<<2)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT 2
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF (0x3<<4)
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT 4
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN (0x1<<6)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN_SHIFT 6
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG (0x1<<7)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG_SHIFT 7
u8_t __da_cnt ;
u16_t mss ;
#elif defined(__LITTLE_ENDIAN)
u16_t mss ;
u8_t __da_cnt ;
u8_t tcp_agg_vars1;
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF (0x3<<0)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SET_DA_TIMER_CF_SHIFT 0
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED (0x3<<2)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_SHIFT 2
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF (0x3<<4)
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_SHIFT 4
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN (0x1<<6)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_CLEAR_DA_TIMER_EN_SHIFT 6
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG (0x1<<7)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_EXPIRATION_FLAG_SHIFT 7
#endif
u32_t snd_nxt ;
u32_t tx_wnd ;
u32_t snd_una ;
u32_t local_adv_wnd ;
#if defined(__BIG_ENDIAN)
u8_t __agg_val8_th ;
u8_t __tx_dest ;
u16_t tcp_agg_vars2;
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG (0x1<<0)
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_SHIFT 0
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED (0x1<<1)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED_SHIFT 1
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE (0x1<<2)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE_SHIFT 2
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX3_FLAG (0x1<<3)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT 3
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX4_FLAG (0x1<<4)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT 4
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_ENABLE (0x1<<5)
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_ENABLE_SHIFT 5
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN (0x1<<6)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN_SHIFT 6
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN (0x1<<7)
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT 7
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN (0x1<<8)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN_SHIFT 8
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<9)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 9
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SET_RTO_CF (0x3<<10)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT 10
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF (0x3<<12)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT 12
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF (0x3<<14)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT 14
#elif defined(__LITTLE_ENDIAN)
u16_t tcp_agg_vars2;
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG (0x1<<0)
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_SHIFT 0
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED (0x1<<1)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_UNBLOCKED_SHIFT 1
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE (0x1<<2)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_TIMER_ACTIVE_SHIFT 2
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX3_FLAG (0x1<<3)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX3_FLAG_SHIFT 3
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX4_FLAG (0x1<<4)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX4_FLAG_SHIFT 4
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_ENABLE (0x1<<5)
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DA_ENABLE_SHIFT 5
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN (0x1<<6)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ACK_TO_FE_UPDATED_EN_SHIFT 6
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN (0x1<<7)
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SIDEBAND_SENT_CF_EN_SHIFT 7
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN (0x1<<8)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_FIN_FLAG_EN_SHIFT 8
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX1_FLAG (0x1<<9)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX1_FLAG_SHIFT 9
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SET_RTO_CF (0x3<<10)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_SET_RTO_CF_SHIFT 10
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF (0x3<<12)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_UPDATED_CF_SHIFT 12
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF (0x3<<14)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_SHIFT 14
u8_t __tx_dest ;
u8_t __agg_val8_th ;
#endif
u32_t ack_to_far_end ;
u32_t rto_timer ;
u32_t ka_timer ;
u32_t ts_to_echo ;
#if defined(__BIG_ENDIAN)
u16_t __agg_val7_th ;
u16_t __agg_val7 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __agg_val7 ;
u16_t __agg_val7_th ;
#endif
#if defined(__BIG_ENDIAN)
u8_t __tcp_agg_vars5 ;
u8_t __tcp_agg_vars4 ;
u8_t __tcp_agg_vars3 ;
u8_t __force_pure_ack_cnt ;
#elif defined(__LITTLE_ENDIAN)
u8_t __force_pure_ack_cnt ;
u8_t __tcp_agg_vars3 ;
u8_t __tcp_agg_vars4 ;
u8_t __tcp_agg_vars5 ;
#endif
u32_t tcp_agg_vars6;
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_CF_EN (0x1<<0)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TS_TO_ECHO_CF_EN_SHIFT 0
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_EN (0x1<<1)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TX_DEST_UPDATED_CF_EN_SHIFT 1
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX9_CF_EN (0x1<<2)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX9_CF_EN_SHIFT 2
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN (0x1<<3)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX10_CF_EN_SHIFT 3
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX6_FLAG (0x1<<4)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX6_FLAG_SHIFT 4
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX7_FLAG (0x1<<5)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX7_FLAG_SHIFT 5
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX5_CF (0x3<<6)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX5_CF_SHIFT 6
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX9_CF (0x3<<8)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX9_CF_SHIFT 8
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX10_CF (0x3<<10)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX10_CF_SHIFT 10
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX11_CF (0x3<<12)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX11_CF_SHIFT 12
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX12_CF (0x3<<14)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX12_CF_SHIFT 14
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX13_CF (0x3<<16)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX13_CF_SHIFT 16
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX14_CF (0x3<<18)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX14_CF_SHIFT 18
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX15_CF (0x3<<20)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX15_CF_SHIFT 20
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX16_CF (0x3<<22)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX16_CF_SHIFT 22
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX17_CF (0x3<<24)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_AUX17_CF_SHIFT 24
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ECE_FLAG (0x1<<26)
#define XSTORM_TOE_TCP_AG_CONTEXT_SECTION_ECE_FLAG_SHIFT 26
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED71 (0x1<<27)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_RESERVED71_SHIFT 27
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_FORCE_PURE_ACK_CNT_DIRTY (0x1<<28)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_FORCE_PURE_ACK_CNT_DIRTY_SHIFT 28
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TCP_AUTO_STOP_FLAG (0x1<<29)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_TCP_AUTO_STOP_FLAG_SHIFT 29
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DO_TS_UPDATE_FLAG (0x1<<30)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_DO_TS_UPDATE_FLAG_SHIFT 30
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_CANCEL_RETRANSMIT_FLAG (0x1<<31)
#define __XSTORM_TOE_TCP_AG_CONTEXT_SECTION_CANCEL_RETRANSMIT_FLAG_SHIFT 31
#if defined(__BIG_ENDIAN)
u16_t __agg_misc6 ;
u16_t __tcp_agg_vars7 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __tcp_agg_vars7 ;
u16_t __agg_misc6 ;
#endif
u32_t __agg_val10 ;
u32_t __agg_val10_th ;
#if defined(__BIG_ENDIAN)
u16_t __reserved3;
u8_t __reserved2;
u8_t __da_only_cnt ;
#elif defined(__LITTLE_ENDIAN)
u8_t __da_only_cnt ;
u8_t __reserved2;
u16_t __reserved3;
#endif
};
struct xstorm_toe_ag_context
{
#if defined(__BIG_ENDIAN)
u16_t agg_val1 ;
u8_t agg_vars1;
#define __XSTORM_TOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
#define __XSTORM_TOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
#define __XSTORM_TOE_AG_CONTEXT_RESERVED50 (0x1<<1)
#define __XSTORM_TOE_AG_CONTEXT_RESERVED50_SHIFT 1
#define __XSTORM_TOE_AG_CONTEXT_RESERVED51 (0x1<<2)
#define __XSTORM_TOE_AG_CONTEXT_RESERVED51_SHIFT 2
#define __XSTORM_TOE_AG_CONTEXT_RESERVED52 (0x1<<3)
#define __XSTORM_TOE_AG_CONTEXT_RESERVED52_SHIFT 3
#define __XSTORM_TOE_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
#define __XSTORM_TOE_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
#define XSTORM_TOE_AG_CONTEXT_NAGLE_EN (0x1<<5)
#define XSTORM_TOE_AG_CONTEXT_NAGLE_EN_SHIFT 5
#define __XSTORM_TOE_AG_CONTEXT_DQ_FLUSH_FLAG (0x1<<6)
#define __XSTORM_TOE_AG_CONTEXT_DQ_FLUSH_FLAG_SHIFT 6
#define __XSTORM_TOE_AG_CONTEXT_UNA_GT_NXT_EN (0x1<<7)
#define __XSTORM_TOE_AG_CONTEXT_UNA_GT_NXT_EN_SHIFT 7
u8_t __state ;
#elif defined(__LITTLE_ENDIAN)
u8_t __state ;
u8_t agg_vars1;
#define __XSTORM_TOE_AG_CONTEXT_EXISTS_IN_QM0 (0x1<<0)
#define __XSTORM_TOE_AG_CONTEXT_EXISTS_IN_QM0_SHIFT 0
#define __XSTORM_TOE_AG_CONTEXT_RESERVED50 (0x1<<1)
#define __XSTORM_TOE_AG_CONTEXT_RESERVED50_SHIFT 1
#define __XSTORM_TOE_AG_CONTEXT_RESERVED51 (0x1<<2)
#define __XSTORM_TOE_AG_CONTEXT_RESERVED51_SHIFT 2
#define __XSTORM_TOE_AG_CONTEXT_RESERVED52 (0x1<<3)
#define __XSTORM_TOE_AG_CONTEXT_RESERVED52_SHIFT 3
#define __XSTORM_TOE_AG_CONTEXT_MORE_TO_SEND_EN (0x1<<4)
#define __XSTORM_TOE_AG_CONTEXT_MORE_TO_SEND_EN_SHIFT 4
#define XSTORM_TOE_AG_CONTEXT_NAGLE_EN (0x1<<5)
#define XSTORM_TOE_AG_CONTEXT_NAGLE_EN_SHIFT 5
#define __XSTORM_TOE_AG_CONTEXT_DQ_FLUSH_FLAG (0x1<<6)
#define __XSTORM_TOE_AG_CONTEXT_DQ_FLUSH_FLAG_SHIFT 6
#define __XSTORM_TOE_AG_CONTEXT_UNA_GT_NXT_EN (0x1<<7)
#define __XSTORM_TOE_AG_CONTEXT_UNA_GT_NXT_EN_SHIFT 7
u16_t agg_val1 ;
#endif
#if defined(__BIG_ENDIAN)
u8_t cdu_reserved ;
u8_t __agg_vars4 ;
u8_t agg_vars3;
#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
#define __XSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q1_CF (0x3<<6)
#define __XSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q1_CF_SHIFT 6
u8_t agg_vars2;
#define __XSTORM_TOE_AG_CONTEXT_DQ_CF (0x3<<0)
#define __XSTORM_TOE_AG_CONTEXT_DQ_CF_SHIFT 0
#define __XSTORM_TOE_AG_CONTEXT_DQ_FLUSH_FLAG_EN (0x1<<2)
#define __XSTORM_TOE_AG_CONTEXT_DQ_FLUSH_FLAG_EN_SHIFT 2
#define __XSTORM_TOE_AG_CONTEXT_AUX8_FLAG (0x1<<3)
#define __XSTORM_TOE_AG_CONTEXT_AUX8_FLAG_SHIFT 3
#define __XSTORM_TOE_AG_CONTEXT_AUX9_FLAG (0x1<<4)
#define __XSTORM_TOE_AG_CONTEXT_AUX9_FLAG_SHIFT 4
#define XSTORM_TOE_AG_CONTEXT_RESERVED53 (0x3<<5)
#define XSTORM_TOE_AG_CONTEXT_RESERVED53_SHIFT 5
#define __XSTORM_TOE_AG_CONTEXT_DQ_CF_EN (0x1<<7)
#define __XSTORM_TOE_AG_CONTEXT_DQ_CF_EN_SHIFT 7
#elif defined(__LITTLE_ENDIAN)
u8_t agg_vars2;
#define __XSTORM_TOE_AG_CONTEXT_DQ_CF (0x3<<0)
#define __XSTORM_TOE_AG_CONTEXT_DQ_CF_SHIFT 0
#define __XSTORM_TOE_AG_CONTEXT_DQ_FLUSH_FLAG_EN (0x1<<2)
#define __XSTORM_TOE_AG_CONTEXT_DQ_FLUSH_FLAG_EN_SHIFT 2
#define __XSTORM_TOE_AG_CONTEXT_AUX8_FLAG (0x1<<3)
#define __XSTORM_TOE_AG_CONTEXT_AUX8_FLAG_SHIFT 3
#define __XSTORM_TOE_AG_CONTEXT_AUX9_FLAG (0x1<<4)
#define __XSTORM_TOE_AG_CONTEXT_AUX9_FLAG_SHIFT 4
#define XSTORM_TOE_AG_CONTEXT_RESERVED53 (0x3<<5)
#define XSTORM_TOE_AG_CONTEXT_RESERVED53_SHIFT 5
#define __XSTORM_TOE_AG_CONTEXT_DQ_CF_EN (0x1<<7)
#define __XSTORM_TOE_AG_CONTEXT_DQ_CF_EN_SHIFT 7
u8_t agg_vars3;
#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2 (0x3F<<0)
#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM2_SHIFT 0
#define __XSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q1_CF (0x3<<6)
#define __XSTORM_TOE_AG_CONTEXT_QUEUES_FLUSH_Q1_CF_SHIFT 6
u8_t __agg_vars4 ;
u8_t cdu_reserved ;
#endif
u32_t more_to_send ;
#if defined(__BIG_ENDIAN)
u16_t agg_vars5;
#define __XSTORM_TOE_AG_CONTEXT_RESERVED54 (0x3<<0)
#define __XSTORM_TOE_AG_CONTEXT_RESERVED54_SHIFT 0
#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
#define __XSTORM_TOE_AG_CONTEXT_RESERVED56 (0x3<<14)
#define __XSTORM_TOE_AG_CONTEXT_RESERVED56_SHIFT 14
u16_t __agg_val4_th ;
#elif defined(__LITTLE_ENDIAN)
u16_t __agg_val4_th ;
u16_t agg_vars5;
#define __XSTORM_TOE_AG_CONTEXT_RESERVED54 (0x3<<0)
#define __XSTORM_TOE_AG_CONTEXT_RESERVED54_SHIFT 0
#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0 (0x3F<<2)
#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM0_SHIFT 2
#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1 (0x3F<<8)
#define XSTORM_TOE_AG_CONTEXT_PHYSICAL_QUEUE_NUM1_SHIFT 8
#define __XSTORM_TOE_AG_CONTEXT_RESERVED56 (0x3<<14)
#define __XSTORM_TOE_AG_CONTEXT_RESERVED56_SHIFT 14
#endif
struct xstorm_toe_tcp_ag_context_section tcp ;
#if defined(__BIG_ENDIAN)
u16_t __agg_vars7 ;
u8_t __agg_val3_th ;
u8_t __agg_vars6 ;
#elif defined(__LITTLE_ENDIAN)
u8_t __agg_vars6 ;
u8_t __agg_val3_th ;
u16_t __agg_vars7 ;
#endif
#if defined(__BIG_ENDIAN)
u16_t __agg_val11_th ;
u16_t __agg_val11 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __agg_val11 ;
u16_t __agg_val11_th ;
#endif
#if defined(__BIG_ENDIAN)
u8_t __reserved1;
u8_t __agg_val6_th ;
u16_t __agg_val9 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __agg_val9 ;
u8_t __agg_val6_th ;
u8_t __reserved1;
#endif
#if defined(__BIG_ENDIAN)
u16_t __agg_val2_th ;
u16_t cmp_bd_cons ;
#elif defined(__LITTLE_ENDIAN)
u16_t cmp_bd_cons ;
u16_t __agg_val2_th ;
#endif
u32_t __agg_vars8 ;
#if defined(__BIG_ENDIAN)
u16_t __agg_misc0 ;
u16_t __agg_val4 ;
#elif defined(__LITTLE_ENDIAN)
u16_t __agg_val4 ;
u16_t __agg_misc0 ;
#endif
#if defined(__BIG_ENDIAN)
u8_t __agg_val3 ;
u8_t __agg_val6 ;
u8_t __agg_val5_th ;
u8_t __agg_val5 ;
#elif defined(__LITTLE_ENDIAN)
u8_t __agg_val5 ;
u8_t __agg_val5_th ;
u8_t __agg_val6 ;
u8_t __agg_val3 ;
#endif
#if defined(__BIG_ENDIAN)
u16_t __agg_misc1 ;
u16_t __bd_ind_max_val ;
#elif defined(__LITTLE_ENDIAN)
u16_t __bd_ind_max_val ;
u16_t __agg_misc1 ;
#endif
u32_t cmp_bd_start_seq ;
u32_t cmp_bd_page_0_to_31 ;
u32_t cmp_bd_page_32_to_63 ;
};
struct doorbell
{
#if defined(__BIG_ENDIAN)
u16_t zero_fill2 ;
u8_t zero_fill1 ;
struct doorbell_hdr_t header;
#elif defined(__LITTLE_ENDIAN)
struct doorbell_hdr_t header;
u8_t zero_fill1 ;
u16_t zero_fill2 ;
#endif
};
struct doorbell_set_prod
{
#if defined(__BIG_ENDIAN)
u16_t prod ;
u8_t zero_fill1 ;
struct doorbell_hdr_t header;
#elif defined(__LITTLE_ENDIAN)
struct doorbell_hdr_t header;
u8_t zero_fill1 ;
u16_t prod ;
#endif
};
struct regpair_native_t
{
u32_t lo ;
u32_t hi ;
};
struct regpair_t
{
u32_t lo ;
u32_t hi ;
};
enum classify_rule
{
CLASSIFY_RULE_OPCODE_MAC ,
CLASSIFY_RULE_OPCODE_VLAN ,
CLASSIFY_RULE_OPCODE_PAIR ,
CLASSIFY_RULE_OPCODE_VXLAN ,
MAX_CLASSIFY_RULE};
enum classify_rule_action_type
{
CLASSIFY_RULE_REMOVE,
CLASSIFY_RULE_ADD,
MAX_CLASSIFY_RULE_ACTION_TYPE};
struct client_init_general_data
{
u8_t client_id ;
u8_t statistics_counter_id ;
u8_t statistics_en_flg ;
u8_t is_fcoe_flg ;
u8_t activate_flg ;
u8_t sp_client_id ;
u16_t mtu ;
u8_t statistics_zero_flg ;
u8_t func_id ;
u8_t cos ;
u8_t traffic_type;
u8_t fp_hsi_ver ;
u8_t reserved0[3];
};
struct client_init_rx_data
{
u8_t tpa_en;
#define CLIENT_INIT_RX_DATA_TPA_EN_IPV4 (0x1<<0)
#define CLIENT_INIT_RX_DATA_TPA_EN_IPV4_SHIFT 0
#define CLIENT_INIT_RX_DATA_TPA_EN_IPV6 (0x1<<1)
#define CLIENT_INIT_RX_DATA_TPA_EN_IPV6_SHIFT 1
#define CLIENT_INIT_RX_DATA_TPA_MODE (0x1<<2)
#define CLIENT_INIT_RX_DATA_TPA_MODE_SHIFT 2
#define CLIENT_INIT_RX_DATA_RESERVED5 (0x1F<<3)
#define CLIENT_INIT_RX_DATA_RESERVED5_SHIFT 3
u8_t vmqueue_mode_en_flg ;
u8_t extra_data_over_sgl_en_flg ;
u8_t cache_line_alignment_log_size ;
u8_t enable_dynamic_hc ;
u8_t max_sges_for_packet ;
u8_t client_qzone_id ;
u8_t drop_ip_cs_err_flg ;
u8_t drop_tcp_cs_err_flg ;
u8_t drop_ttl0_flg ;
u8_t drop_udp_cs_err_flg ;
u8_t inner_vlan_removal_enable_flg ;
u8_t outer_vlan_removal_enable_flg ;
u8_t status_block_id ;
u8_t rx_sb_index_number ;
u8_t dont_verify_rings_pause_thr_flg ;
u8_t max_tpa_queues ;
u8_t silent_vlan_removal_flg ;
u16_t max_bytes_on_bd ;
u16_t sge_buff_size ;
u8_t approx_mcast_engine_id ;
u8_t rss_engine_id ;
struct regpair_t bd_page_base ;
struct regpair_t sge_page_base ;
struct regpair_t cqe_page_base ;
u8_t is_leading_rss;
u8_t is_approx_mcast;
u16_t max_agg_size ;
u16_t state;
#define CLIENT_INIT_RX_DATA_UCAST_DROP_ALL (0x1<<0)
#define CLIENT_INIT_RX_DATA_UCAST_DROP_ALL_SHIFT 0
#define CLIENT_INIT_RX_DATA_UCAST_ACCEPT_ALL (0x1<<1)
#define CLIENT_INIT_RX_DATA_UCAST_ACCEPT_ALL_SHIFT 1
#define CLIENT_INIT_RX_DATA_UCAST_ACCEPT_UNMATCHED (0x1<<2)
#define CLIENT_INIT_RX_DATA_UCAST_ACCEPT_UNMATCHED_SHIFT 2
#define CLIENT_INIT_RX_DATA_MCAST_DROP_ALL (0x1<<3)
#define CLIENT_INIT_RX_DATA_MCAST_DROP_ALL_SHIFT 3
#define CLIENT_INIT_RX_DATA_MCAST_ACCEPT_ALL (0x1<<4)
#define CLIENT_INIT_RX_DATA_MCAST_ACCEPT_ALL_SHIFT 4
#define CLIENT_INIT_RX_DATA_BCAST_ACCEPT_ALL (0x1<<5)
#define CLIENT_INIT_RX_DATA_BCAST_ACCEPT_ALL_SHIFT 5
#define CLIENT_INIT_RX_DATA_ACCEPT_ANY_VLAN (0x1<<6)
#define CLIENT_INIT_RX_DATA_ACCEPT_ANY_VLAN_SHIFT 6
#define CLIENT_INIT_RX_DATA_RESERVED2 (0x1FF<<7)
#define CLIENT_INIT_RX_DATA_RESERVED2_SHIFT 7
u16_t cqe_pause_thr_low ;
u16_t cqe_pause_thr_high ;
u16_t bd_pause_thr_low ;
u16_t bd_pause_thr_high ;
u16_t sge_pause_thr_low ;
u16_t sge_pause_thr_high ;
u16_t rx_cos_mask ;
u16_t silent_vlan_value ;
u16_t silent_vlan_mask ;
u8_t handle_ptp_pkts_flg ;
u8_t reserved6[3];
u32_t reserved7;
};
struct client_init_tx_data
{
u8_t enforce_security_flg ;
u8_t tx_status_block_id ;
u8_t tx_sb_index_number ;
u8_t tss_leading_client_id ;
u8_t tx_switching_flg ;
u8_t anti_spoofing_flg ;
u16_t default_vlan ;
struct regpair_t tx_bd_page_base ;
u16_t state;
#define CLIENT_INIT_TX_DATA_UCAST_ACCEPT_ALL (0x1<<0)
#define CLIENT_INIT_TX_DATA_UCAST_ACCEPT_ALL_SHIFT 0
#define CLIENT_INIT_TX_DATA_MCAST_ACCEPT_ALL (0x1<<1)
#define CLIENT_INIT_TX_DATA_MCAST_ACCEPT_ALL_SHIFT 1
#define CLIENT_INIT_TX_DATA_BCAST_ACCEPT_ALL (0x1<<2)
#define CLIENT_INIT_TX_DATA_BCAST_ACCEPT_ALL_SHIFT 2
#define CLIENT_INIT_TX_DATA_ACCEPT_ANY_VLAN (0x1<<3)
#define CLIENT_INIT_TX_DATA_ACCEPT_ANY_VLAN_SHIFT 3
#define CLIENT_INIT_TX_DATA_RESERVED0 (0xFFF<<4)
#define CLIENT_INIT_TX_DATA_RESERVED0_SHIFT 4
u8_t default_vlan_flg ;
u8_t force_default_pri_flg ;
u8_t tunnel_lso_inc_ip_id ;
u8_t refuse_outband_vlan_flg ;
u8_t tunnel_non_lso_pcsum_location ;
u8_t tunnel_non_lso_outer_ip_csum_location ;
};
struct client_init_ramrod_data
{
struct client_init_general_data general ;
struct client_init_rx_data rx ;
struct client_init_tx_data tx ;
};
struct client_update_ramrod_data
{
u8_t client_id ;
u8_t func_id ;
u8_t inner_vlan_removal_enable_flg ;
u8_t inner_vlan_removal_change_flg ;
u8_t outer_vlan_removal_enable_flg ;
u8_t outer_vlan_removal_change_flg ;
u8_t anti_spoofing_enable_flg ;
u8_t anti_spoofing_change_flg ;
u8_t activate_flg ;
u8_t activate_change_flg ;
u16_t default_vlan ;
u8_t default_vlan_enable_flg;
u8_t default_vlan_change_flg;
u16_t silent_vlan_value ;
u16_t silent_vlan_mask ;
u8_t silent_vlan_removal_flg ;
u8_t silent_vlan_change_flg;
u8_t refuse_outband_vlan_flg ;
u8_t refuse_outband_vlan_change_flg ;
u8_t tx_switching_flg ;
u8_t tx_switching_change_flg ;
u8_t handle_ptp_pkts_flg ;
u8_t handle_ptp_pkts_change_flg ;
u16_t reserved1;
u32_t echo ;
};
struct cstorm_eth_st_context
{
u32_t __reserved0[4];
};
struct double_regpair
{
u32_t regpair0_lo ;
u32_t regpair0_hi ;
u32_t regpair1_lo ;
u32_t regpair1_hi ;
};
enum eth_2nd_parse_bd_type
{
ETH_2ND_PARSE_BD_TYPE_LSO_TUNNEL,
MAX_ETH_2ND_PARSE_BD_TYPE};
enum eth_addr_type
{
UNKNOWN_ADDRESS,
UNICAST_ADDRESS,
MULTICAST_ADDRESS,
BROADCAST_ADDRESS,
MAX_ETH_ADDR_TYPE};
struct eth_classify_cmd_header
{
u8_t cmd_general_data;
#define ETH_CLASSIFY_CMD_HEADER_RX_CMD (0x1<<0)
#define ETH_CLASSIFY_CMD_HEADER_RX_CMD_SHIFT 0
#define ETH_CLASSIFY_CMD_HEADER_TX_CMD (0x1<<1)
#define ETH_CLASSIFY_CMD_HEADER_TX_CMD_SHIFT 1
#define ETH_CLASSIFY_CMD_HEADER_OPCODE (0x3<<2)
#define ETH_CLASSIFY_CMD_HEADER_OPCODE_SHIFT 2
#define ETH_CLASSIFY_CMD_HEADER_IS_ADD (0x1<<4)
#define ETH_CLASSIFY_CMD_HEADER_IS_ADD_SHIFT 4
#define ETH_CLASSIFY_CMD_HEADER_RESERVED0 (0x7<<5)
#define ETH_CLASSIFY_CMD_HEADER_RESERVED0_SHIFT 5
u8_t func_id ;
u8_t client_id;
u8_t reserved1;
};
struct eth_classify_header
{
u8_t rule_cnt ;
u8_t reserved0;
u16_t reserved1;
u32_t echo ;
};
struct eth_classify_mac_cmd
{
struct eth_classify_cmd_header header;
u16_t reserved0;
u16_t inner_mac;
u16_t mac_lsb;
u16_t mac_mid;
u16_t mac_msb;
u16_t reserved1;
};
struct eth_classify_pair_cmd
{
struct eth_classify_cmd_header header;
u16_t reserved0;
u16_t inner_mac;
u16_t mac_lsb;
u16_t mac_mid;
u16_t mac_msb;
u16_t vlan;
};
struct eth_classify_vlan_cmd
{
struct eth_classify_cmd_header header;
u32_t reserved0;
u32_t reserved1;
u16_t reserved2;
u16_t vlan;
};
struct eth_classify_vxlan_cmd
{
struct eth_classify_cmd_header header;
u32_t vni;
u16_t inner_mac_lsb;
u16_t inner_mac_mid;
u16_t inner_mac_msb;
u16_t reserved1;
};
union eth_classify_rule_cmd
{
struct eth_classify_mac_cmd mac;
struct eth_classify_vlan_cmd vlan;
struct eth_classify_pair_cmd pair;
struct eth_classify_vxlan_cmd vxlan;
};
struct eth_classify_rules_ramrod_data
{
struct eth_classify_header header;
union eth_classify_rule_cmd rules[CLASSIFY_RULES_COUNT];
};
struct eth_common_ramrod_data
{
u32_t client_id ;
u32_t reserved1;
};
struct ustorm_eth_st_context
{
u32_t reserved0[52];
};
struct tstorm_eth_st_context
{
u32_t __reserved0[28];
};
struct xstorm_eth_st_context
{
u32_t reserved0[60];
};
struct eth_context
{
struct ustorm_eth_st_context ustorm_st_context ;
struct tstorm_eth_st_context tstorm_st_context ;
struct xstorm_eth_ag_context xstorm_ag_context ;
struct tstorm_eth_ag_context tstorm_ag_context ;
struct cstorm_eth_ag_context cstorm_ag_context ;
struct ustorm_eth_ag_context ustorm_ag_context ;
struct timers_block_context timers_context ;
struct xstorm_eth_st_context xstorm_st_context ;
struct cstorm_eth_st_context cstorm_st_context ;
};
union eth_sgl_or_raw_data
{
u16_t sgl[8] ;
u32_t raw_data[4] ;
};
struct eth_end_agg_rx_cqe
{
u8_t type_error_flags;
#define ETH_END_AGG_RX_CQE_TYPE (0x3<<0)
#define ETH_END_AGG_RX_CQE_TYPE_SHIFT 0
#define ETH_END_AGG_RX_CQE_SGL_RAW_SEL (0x1<<2)
#define ETH_END_AGG_RX_CQE_SGL_RAW_SEL_SHIFT 2
#define ETH_END_AGG_RX_CQE_RESERVED0 (0x1F<<3)
#define ETH_END_AGG_RX_CQE_RESERVED0_SHIFT 3
u8_t reserved1;
u8_t queue_index ;
u8_t reserved2;
u32_t timestamp_delta ;
u16_t num_of_coalesced_segs ;
u16_t pkt_len ;
u8_t pure_ack_count ;
u8_t reserved3;
u16_t reserved4;
union eth_sgl_or_raw_data sgl_or_raw_data ;
u32_t reserved5[8];
};
struct eth_fast_path_rx_cqe
{
u8_t type_error_flags;
#define ETH_FAST_PATH_RX_CQE_TYPE (0x3<<0)
#define ETH_FAST_PATH_RX_CQE_TYPE_SHIFT 0
#define ETH_FAST_PATH_RX_CQE_SGL_RAW_SEL (0x1<<2)
#define ETH_FAST_PATH_RX_CQE_SGL_RAW_SEL_SHIFT 2
#define ETH_FAST_PATH_RX_CQE_PHY_DECODE_ERR_FLG (0x1<<3)
#define ETH_FAST_PATH_RX_CQE_PHY_DECODE_ERR_FLG_SHIFT 3
#define ETH_FAST_PATH_RX_CQE_IP_BAD_XSUM_FLG (0x1<<4)
#define ETH_FAST_PATH_RX_CQE_IP_BAD_XSUM_FLG_SHIFT 4
#define ETH_FAST_PATH_RX_CQE_L4_BAD_XSUM_FLG (0x1<<5)
#define ETH_FAST_PATH_RX_CQE_L4_BAD_XSUM_FLG_SHIFT 5
#define ETH_FAST_PATH_RX_CQE_PTP_PKT (0x1<<6)
#define ETH_FAST_PATH_RX_CQE_PTP_PKT_SHIFT 6
#define ETH_FAST_PATH_RX_CQE_RESERVED0 (0x1<<7)
#define ETH_FAST_PATH_RX_CQE_RESERVED0_SHIFT 7
u8_t status_flags;
#define ETH_FAST_PATH_RX_CQE_RSS_HASH_TYPE (0x7<<0)
#define ETH_FAST_PATH_RX_CQE_RSS_HASH_TYPE_SHIFT 0
#define ETH_FAST_PATH_RX_CQE_RSS_HASH_FLG (0x1<<3)
#define ETH_FAST_PATH_RX_CQE_RSS_HASH_FLG_SHIFT 3
#define ETH_FAST_PATH_RX_CQE_BROADCAST_FLG (0x1<<4)
#define ETH_FAST_PATH_RX_CQE_BROADCAST_FLG_SHIFT 4
#define ETH_FAST_PATH_RX_CQE_MAC_MATCH_FLG (0x1<<5)
#define ETH_FAST_PATH_RX_CQE_MAC_MATCH_FLG_SHIFT 5
#define ETH_FAST_PATH_RX_CQE_IP_XSUM_NO_VALIDATION_FLG (0x1<<6)
#define ETH_FAST_PATH_RX_CQE_IP_XSUM_NO_VALIDATION_FLG_SHIFT 6
#define ETH_FAST_PATH_RX_CQE_L4_XSUM_NO_VALIDATION_FLG (0x1<<7)
#define ETH_FAST_PATH_RX_CQE_L4_XSUM_NO_VALIDATION_FLG_SHIFT 7
u8_t queue_index ;
u8_t placement_offset ;
u32_t rss_hash_result ;
u16_t vlan_tag ;
u16_t pkt_len_or_gro_seg_len ;
u16_t len_on_bd ;
struct parsing_flags pars_flags;
union eth_sgl_or_raw_data sgl_or_raw_data ;
u32_t reserved1[8];
};
struct eth_filter_rules_cmd
{
u8_t cmd_general_data;
#define ETH_FILTER_RULES_CMD_RX_CMD (0x1<<0)
#define ETH_FILTER_RULES_CMD_RX_CMD_SHIFT 0
#define ETH_FILTER_RULES_CMD_TX_CMD (0x1<<1)
#define ETH_FILTER_RULES_CMD_TX_CMD_SHIFT 1
#define ETH_FILTER_RULES_CMD_RESERVED0 (0x3F<<2)
#define ETH_FILTER_RULES_CMD_RESERVED0_SHIFT 2
u8_t func_id ;
u8_t client_id ;
u8_t reserved1;
u16_t state;
#define ETH_FILTER_RULES_CMD_UCAST_DROP_ALL (0x1<<0)
#define ETH_FILTER_RULES_CMD_UCAST_DROP_ALL_SHIFT 0
#define ETH_FILTER_RULES_CMD_UCAST_ACCEPT_ALL (0x1<<1)
#define ETH_FILTER_RULES_CMD_UCAST_ACCEPT_ALL_SHIFT 1
#define ETH_FILTER_RULES_CMD_UCAST_ACCEPT_UNMATCHED (0x1<<2)
#define ETH_FILTER_RULES_CMD_UCAST_ACCEPT_UNMATCHED_SHIFT 2
#define ETH_FILTER_RULES_CMD_MCAST_DROP_ALL (0x1<<3)
#define ETH_FILTER_RULES_CMD_MCAST_DROP_ALL_SHIFT 3
#define ETH_FILTER_RULES_CMD_MCAST_ACCEPT_ALL (0x1<<4)
#define ETH_FILTER_RULES_CMD_MCAST_ACCEPT_ALL_SHIFT 4
#define ETH_FILTER_RULES_CMD_BCAST_ACCEPT_ALL (0x1<<5)
#define ETH_FILTER_RULES_CMD_BCAST_ACCEPT_ALL_SHIFT 5
#define ETH_FILTER_RULES_CMD_ACCEPT_ANY_VLAN (0x1<<6)
#define ETH_FILTER_RULES_CMD_ACCEPT_ANY_VLAN_SHIFT 6
#define ETH_FILTER_RULES_CMD_RESERVED2 (0x1FF<<7)
#define ETH_FILTER_RULES_CMD_RESERVED2_SHIFT 7
u16_t reserved3;
struct regpair_t reserved4;
};
struct eth_filter_rules_ramrod_data
{
struct eth_classify_header header;
struct eth_filter_rules_cmd rules[FILTER_RULES_COUNT];
};
enum eth_fp_hsi_ver
{
ETH_FP_HSI_VER_0 ,
ETH_FP_HSI_VER_1 ,
ETH_FP_HSI_VER_2 ,
MAX_ETH_FP_HSI_VER};
struct eth_general_rules_ramrod_data
{
struct eth_classify_header header;
union eth_classify_rule_cmd rules[CLASSIFY_RULES_COUNT];
};
struct eth_halt_ramrod_data
{
u32_t client_id ;
u32_t reserved0;
};
struct eth_mac_addresses
{
#if defined(__BIG_ENDIAN)
u16_t dst_mid ;
u16_t dst_lo ;
#elif defined(__LITTLE_ENDIAN)
u16_t dst_lo ;
u16_t dst_mid ;
#endif
#if defined(__BIG_ENDIAN)
u16_t src_lo ;
u16_t dst_hi ;
#elif defined(__LITTLE_ENDIAN)
u16_t dst_hi ;
u16_t src_lo ;
#endif
#if defined(__BIG_ENDIAN)
u16_t src_hi ;
u16_t src_mid ;
#elif defined(__LITTLE_ENDIAN)
u16_t src_mid ;
u16_t src_hi ;
#endif
};
struct eth_tunnel_data
{
#if defined(__BIG_ENDIAN)
u16_t dst_mid ;
u16_t dst_lo ;
#elif defined(__LITTLE_ENDIAN)
u16_t dst_lo ;
u16_t dst_mid ;
#endif
#if defined(__BIG_ENDIAN)
u16_t fw_ip_hdr_csum ;
u16_t dst_hi ;
#elif defined(__LITTLE_ENDIAN)
u16_t dst_hi ;
u16_t fw_ip_hdr_csum ;
#endif
#if defined(__BIG_ENDIAN)
u8_t flags;
#define ETH_TUNNEL_DATA_IP_HDR_TYPE_OUTER (0x1<<0)
#define ETH_TUNNEL_DATA_IP_HDR_TYPE_OUTER_SHIFT 0
#define ETH_TUNNEL_DATA_RESERVED (0x7F<<1)
#define ETH_TUNNEL_DATA_RESERVED_SHIFT 1
u8_t ip_hdr_start_inner_w ;
u16_t pseudo_csum ;
#elif defined(__LITTLE_ENDIAN)
u16_t pseudo_csum ;
u8_t ip_hdr_start_inner_w ;
u8_t flags;
#define ETH_TUNNEL_DATA_IP_HDR_TYPE_OUTER (0x1<<0)
#define ETH_TUNNEL_DATA_IP_HDR_TYPE_OUTER_SHIFT 0
#define ETH_TUNNEL_DATA_RESERVED (0x7F<<1)
#define ETH_TUNNEL_DATA_RESERVED_SHIFT 1
#endif
};
union eth_mac_addr_or_tunnel_data
{
struct eth_mac_addresses mac_addr ;
struct eth_tunnel_data tunnel_data ;
};
struct eth_multicast_rules_cmd
{
u8_t cmd_general_data;
#define ETH_MULTICAST_RULES_CMD_RX_CMD (0x1<<0)
#define ETH_MULTICAST_RULES_CMD_RX_CMD_SHIFT 0
#define ETH_MULTICAST_RULES_CMD_TX_CMD (0x1<<1)
#define ETH_MULTICAST_RULES_CMD_TX_CMD_SHIFT 1
#define ETH_MULTICAST_RULES_CMD_IS_ADD (0x1<<2)
#define ETH_MULTICAST_RULES_CMD_IS_ADD_SHIFT 2
#define ETH_MULTICAST_RULES_CMD_RESERVED0 (0x1F<<3)
#define ETH_MULTICAST_RULES_CMD_RESERVED0_SHIFT 3
u8_t func_id ;
u8_t bin_id ;
u8_t engine_id ;
u32_t reserved2;
struct regpair_t reserved3;
};
struct eth_multicast_rules_ramrod_data
{
struct eth_classify_header header;
struct eth_multicast_rules_cmd rules[MULTICAST_RULES_COUNT];
};
struct ramrod_data
{
u32_t data_lo;
u32_t data_hi;
};
union eth_ramrod_data
{
struct ramrod_data general;
};
enum eth_rss_hash_type
{
DEFAULT_HASH_TYPE,
IPV4_HASH_TYPE,
TCP_IPV4_HASH_TYPE,
IPV6_HASH_TYPE,
TCP_IPV6_HASH_TYPE,
VLAN_PRI_HASH_TYPE,
E1HOV_PRI_HASH_TYPE,
DSCP_HASH_TYPE,
MAX_ETH_RSS_HASH_TYPE};
enum eth_rss_mode
{
ETH_RSS_MODE_DISABLED,
ETH_RSS_MODE_REGULAR ,
ETH_RSS_MODE_VLAN_PRI ,
ETH_RSS_MODE_E1HOV_PRI ,
ETH_RSS_MODE_IP_DSCP ,
ETH_RSS_MODE_ESX51 ,
MAX_ETH_RSS_MODE};
struct eth_rss_update_ramrod_data
{
u8_t rss_engine_id;
u8_t rss_mode ;
u16_t capabilities;
#define ETH_RSS_UPDATE_RAMROD_DATA_IPV4_CAPABILITY (0x1<<0)
#define ETH_RSS_UPDATE_RAMROD_DATA_IPV4_CAPABILITY_SHIFT 0
#define ETH_RSS_UPDATE_RAMROD_DATA_IPV4_TCP_CAPABILITY (0x1<<1)
#define ETH_RSS_UPDATE_RAMROD_DATA_IPV4_TCP_CAPABILITY_SHIFT 1
#define ETH_RSS_UPDATE_RAMROD_DATA_IPV4_UDP_CAPABILITY (0x1<<2)
#define ETH_RSS_UPDATE_RAMROD_DATA_IPV4_UDP_CAPABILITY_SHIFT 2
#define ETH_RSS_UPDATE_RAMROD_DATA_IPV4_VXLAN_CAPABILITY (0x1<<3)
#define ETH_RSS_UPDATE_RAMROD_DATA_IPV4_VXLAN_CAPABILITY_SHIFT 3
#define ETH_RSS_UPDATE_RAMROD_DATA_IPV6_CAPABILITY (0x1<<4)
#define ETH_RSS_UPDATE_RAMROD_DATA_IPV6_CAPABILITY_SHIFT 4
#define ETH_RSS_UPDATE_RAMROD_DATA_IPV6_TCP_CAPABILITY (0x1<<5)
#define ETH_RSS_UPDATE_RAMROD_DATA_IPV6_TCP_CAPABILITY_SHIFT 5
#define ETH_RSS_UPDATE_RAMROD_DATA_IPV6_UDP_CAPABILITY (0x1<<6)
#define ETH_RSS_UPDATE_RAMROD_DATA_IPV6_UDP_CAPABILITY_SHIFT 6
#define ETH_RSS_UPDATE_RAMROD_DATA_IPV6_VXLAN_CAPABILITY (0x1<<7)
#define ETH_RSS_UPDATE_RAMROD_DATA_IPV6_VXLAN_CAPABILITY_SHIFT 7
#define ETH_RSS_UPDATE_RAMROD_DATA_EN_5_TUPLE_CAPABILITY (0x1<<8)
#define ETH_RSS_UPDATE_RAMROD_DATA_EN_5_TUPLE_CAPABILITY_SHIFT 8
#define ETH_RSS_UPDATE_RAMROD_DATA_NVGRE_KEY_ENTROPY_CAPABILITY (0x1<<9)
#define ETH_RSS_UPDATE_RAMROD_DATA_NVGRE_KEY_ENTROPY_CAPABILITY_SHIFT 9
#define ETH_RSS_UPDATE_RAMROD_DATA_GRE_INNER_HDRS_CAPABILITY (0x1<<10)
#define ETH_RSS_UPDATE_RAMROD_DATA_GRE_INNER_HDRS_CAPABILITY_SHIFT 10
#define ETH_RSS_UPDATE_RAMROD_DATA_UPDATE_RSS_KEY (0x1<<11)
#define ETH_RSS_UPDATE_RAMROD_DATA_UPDATE_RSS_KEY_SHIFT 11
#define ETH_RSS_UPDATE_RAMROD_DATA_RESERVED (0xF<<12)
#define ETH_RSS_UPDATE_RAMROD_DATA_RESERVED_SHIFT 12
u8_t rss_result_mask ;
u8_t reserved3;
u16_t reserved4;
u8_t indirection_table[T_ETH_INDIRECTION_TABLE_SIZE] ;
u32_t rss_key[T_ETH_RSS_KEY] ;
u32_t echo;
u32_t reserved5;
};
struct eth_rx_bd
{
u32_t addr_lo ;
u32_t addr_hi ;
};
struct eth_rx_bd_next_page
{
u32_t addr_lo ;
u32_t addr_hi ;
u8_t reserved[8];
};
struct common_ramrod_eth_rx_cqe
{
u8_t ramrod_type;
#define COMMON_RAMROD_ETH_RX_CQE_TYPE (0x3<<0)
#define COMMON_RAMROD_ETH_RX_CQE_TYPE_SHIFT 0
#define COMMON_RAMROD_ETH_RX_CQE_ERROR (0x1<<2)
#define COMMON_RAMROD_ETH_RX_CQE_ERROR_SHIFT 2
#define COMMON_RAMROD_ETH_RX_CQE_RESERVED0 (0x1F<<3)
#define COMMON_RAMROD_ETH_RX_CQE_RESERVED0_SHIFT 3
u8_t conn_type ;
u16_t reserved1 ;
u32_t conn_and_cmd_data;
#define COMMON_RAMROD_ETH_RX_CQE_CID (0xFFFFFF<<0)
#define COMMON_RAMROD_ETH_RX_CQE_CID_SHIFT 0
#define COMMON_RAMROD_ETH_RX_CQE_CMD_ID (0xFF<<24)
#define COMMON_RAMROD_ETH_RX_CQE_CMD_ID_SHIFT 24
struct ramrod_data protocol_data ;
u32_t echo;
u32_t reserved2[11];
};
struct eth_rx_cqe_next_page
{
u32_t addr_lo ;
u32_t addr_hi ;
u32_t reserved[14];
};
union eth_rx_cqe
{
struct eth_fast_path_rx_cqe fast_path_cqe;
struct common_ramrod_eth_rx_cqe ramrod_cqe;
struct eth_rx_cqe_next_page next_page_cqe;
struct eth_end_agg_rx_cqe end_agg_cqe;
};
enum eth_rx_cqe_type
{
RX_ETH_CQE_TYPE_ETH_FASTPATH ,
RX_ETH_CQE_TYPE_ETH_RAMROD ,
RX_ETH_CQE_TYPE_ETH_START_AGG ,
RX_ETH_CQE_TYPE_ETH_STOP_AGG ,
MAX_ETH_RX_CQE_TYPE};
enum eth_rx_fp_sel
{
ETH_FP_CQE_REGULAR ,
ETH_FP_CQE_RAW ,
MAX_ETH_RX_FP_SEL};
struct eth_rx_sge
{
u32_t addr_lo ;
u32_t addr_hi ;
};
struct spe_hdr_t
{
u32_t conn_and_cmd_data;
#define SPE_HDR_T_CID (0xFFFFFF<<0)
#define SPE_HDR_T_CID_SHIFT 0
#define SPE_HDR_T_CMD_ID (0xFFUL<<24)
#define SPE_HDR_T_CMD_ID_SHIFT 24
u16_t type;
#define SPE_HDR_T_CONN_TYPE (0xFF<<0)
#define SPE_HDR_T_CONN_TYPE_SHIFT 0
#define SPE_HDR_T_FUNCTION_ID (0xFF<<8)
#define SPE_HDR_T_FUNCTION_ID_SHIFT 8
u16_t reserved1;
};
union eth_specific_data
{
u8_t protocol_data[8] ;
struct regpair_t client_update_ramrod_data ;
struct regpair_t client_init_ramrod_init_data ;
struct eth_halt_ramrod_data halt_ramrod_data ;
struct regpair_t update_data_addr ;
struct eth_common_ramrod_data common_ramrod_data ;
struct regpair_t classify_cfg_addr ;
struct regpair_t filter_cfg_addr ;
struct regpair_t mcast_cfg_addr ;
};
struct eth_spe
{
struct spe_hdr_t hdr ;
union eth_specific_data data ;
};
enum eth_spqe_cmd_id
{
RAMROD_CMD_ID_ETH_UNUSED,
RAMROD_CMD_ID_ETH_CLIENT_SETUP ,
RAMROD_CMD_ID_ETH_HALT ,
RAMROD_CMD_ID_ETH_FORWARD_SETUP ,
RAMROD_CMD_ID_ETH_TX_QUEUE_SETUP ,
RAMROD_CMD_ID_ETH_CLIENT_UPDATE ,
RAMROD_CMD_ID_ETH_EMPTY ,
RAMROD_CMD_ID_ETH_TERMINATE ,
RAMROD_CMD_ID_ETH_TPA_UPDATE ,
RAMROD_CMD_ID_ETH_CLASSIFICATION_RULES ,
RAMROD_CMD_ID_ETH_FILTER_RULES ,
RAMROD_CMD_ID_ETH_MULTICAST_RULES ,
RAMROD_CMD_ID_ETH_RSS_UPDATE ,
RAMROD_CMD_ID_ETH_SET_MAC ,
MAX_ETH_SPQE_CMD_ID};
enum eth_tpa_update_command
{
TPA_UPDATE_NONE_COMMAND ,
TPA_UPDATE_ENABLE_COMMAND ,
TPA_UPDATE_DISABLE_COMMAND ,
MAX_ETH_TPA_UPDATE_COMMAND};
enum eth_tunnel_lso_inc_ip_id
{
EXT_HEADER ,
INT_HEADER ,
MAX_ETH_TUNNEL_LSO_INC_IP_ID};
enum eth_tunnel_non_lso_csum_location
{
CSUM_ON_PKT ,
CSUM_ON_BD ,
MAX_ETH_TUNNEL_NON_LSO_CSUM_LOCATION};
struct eth_tx_bd
{
u32_t addr_lo ;
u32_t addr_hi ;
u16_t total_pkt_bytes ;
u16_t nbytes ;
u8_t reserved[4] ;
};
struct eth_tx_bd_flags
{
u8_t as_bitfield;
#define ETH_TX_BD_FLAGS_IP_CSUM (0x1<<0)
#define ETH_TX_BD_FLAGS_IP_CSUM_SHIFT 0
#define ETH_TX_BD_FLAGS_L4_CSUM (0x1<<1)
#define ETH_TX_BD_FLAGS_L4_CSUM_SHIFT 1
#define ETH_TX_BD_FLAGS_VLAN_MODE (0x3<<2)
#define ETH_TX_BD_FLAGS_VLAN_MODE_SHIFT 2
#define ETH_TX_BD_FLAGS_START_BD (0x1<<4)
#define ETH_TX_BD_FLAGS_START_BD_SHIFT 4
#define ETH_TX_BD_FLAGS_IS_UDP (0x1<<5)
#define ETH_TX_BD_FLAGS_IS_UDP_SHIFT 5
#define ETH_TX_BD_FLAGS_SW_LSO (0x1<<6)
#define ETH_TX_BD_FLAGS_SW_LSO_SHIFT 6
#define ETH_TX_BD_FLAGS_IPV6 (0x1<<7)
#define ETH_TX_BD_FLAGS_IPV6_SHIFT 7
};
struct eth_tx_start_bd
{
u32_t addr_lo ;
u32_t addr_hi ;
u16_t nbd ;
u16_t nbytes ;
u16_t vlan_or_ethertype ;
struct eth_tx_bd_flags bd_flags;
u8_t general_data;
#define ETH_TX_START_BD_HDR_NBDS (0x7<<0)
#define ETH_TX_START_BD_HDR_NBDS_SHIFT 0
#define ETH_TX_START_BD_NO_ADDED_TAGS (0x1<<3)
#define ETH_TX_START_BD_NO_ADDED_TAGS_SHIFT 3
#define ETH_TX_START_BD_FORCE_VLAN_MODE (0x1<<4)
#define ETH_TX_START_BD_FORCE_VLAN_MODE_SHIFT 4
#define ETH_TX_START_BD_PARSE_NBDS (0x3<<5)
#define ETH_TX_START_BD_PARSE_NBDS_SHIFT 5
#define ETH_TX_START_BD_TUNNEL_EXIST (0x1<<7)
#define ETH_TX_START_BD_TUNNEL_EXIST_SHIFT 7
};
struct eth_tx_parse_bd_e1x
{
u16_t global_data;
#define ETH_TX_PARSE_BD_E1X_IP_HDR_START_OFFSET_W (0xF<<0)
#define ETH_TX_PARSE_BD_E1X_IP_HDR_START_OFFSET_W_SHIFT 0
#define ETH_TX_PARSE_BD_E1X_ETH_ADDR_TYPE (0x3<<4)
#define ETH_TX_PARSE_BD_E1X_ETH_ADDR_TYPE_SHIFT 4
#define ETH_TX_PARSE_BD_E1X_PSEUDO_CS_WITHOUT_LEN (0x1<<6)
#define ETH_TX_PARSE_BD_E1X_PSEUDO_CS_WITHOUT_LEN_SHIFT 6
#define ETH_TX_PARSE_BD_E1X_LLC_SNAP_EN (0x1<<7)
#define ETH_TX_PARSE_BD_E1X_LLC_SNAP_EN_SHIFT 7
#define ETH_TX_PARSE_BD_E1X_NS_FLG (0x1<<8)
#define ETH_TX_PARSE_BD_E1X_NS_FLG_SHIFT 8
#define ETH_TX_PARSE_BD_E1X_RESERVED0 (0x7F<<9)
#define ETH_TX_PARSE_BD_E1X_RESERVED0_SHIFT 9
u8_t tcp_flags;
#define ETH_TX_PARSE_BD_E1X_FIN_FLG (0x1<<0)
#define ETH_TX_PARSE_BD_E1X_FIN_FLG_SHIFT 0
#define ETH_TX_PARSE_BD_E1X_SYN_FLG (0x1<<1)
#define ETH_TX_PARSE_BD_E1X_SYN_FLG_SHIFT 1
#define ETH_TX_PARSE_BD_E1X_RST_FLG (0x1<<2)
#define ETH_TX_PARSE_BD_E1X_RST_FLG_SHIFT 2
#define ETH_TX_PARSE_BD_E1X_PSH_FLG (0x1<<3)
#define ETH_TX_PARSE_BD_E1X_PSH_FLG_SHIFT 3
#define ETH_TX_PARSE_BD_E1X_ACK_FLG (0x1<<4)
#define ETH_TX_PARSE_BD_E1X_ACK_FLG_SHIFT 4
#define ETH_TX_PARSE_BD_E1X_URG_FLG (0x1<<5)
#define ETH_TX_PARSE_BD_E1X_URG_FLG_SHIFT 5
#define ETH_TX_PARSE_BD_E1X_ECE_FLG (0x1<<6)
#define ETH_TX_PARSE_BD_E1X_ECE_FLG_SHIFT 6
#define ETH_TX_PARSE_BD_E1X_CWR_FLG (0x1<<7)
#define ETH_TX_PARSE_BD_E1X_CWR_FLG_SHIFT 7
u8_t ip_hlen_w ;
u16_t total_hlen_w ;
u16_t tcp_pseudo_csum ;
u16_t lso_mss ;
u16_t ip_id ;
u32_t tcp_send_seq ;
};
struct eth_tx_parse_bd_e2
{
union eth_mac_addr_or_tunnel_data data ;
u32_t parsing_data;
#define ETH_TX_PARSE_BD_E2_L4_HDR_START_OFFSET_W (0x7FF<<0)
#define ETH_TX_PARSE_BD_E2_L4_HDR_START_OFFSET_W_SHIFT 0
#define ETH_TX_PARSE_BD_E2_TCP_HDR_LENGTH_DW (0xF<<11)
#define ETH_TX_PARSE_BD_E2_TCP_HDR_LENGTH_DW_SHIFT 11
#define ETH_TX_PARSE_BD_E2_IPV6_WITH_EXT_HDR (0x1<<15)
#define ETH_TX_PARSE_BD_E2_IPV6_WITH_EXT_HDR_SHIFT 15
#define ETH_TX_PARSE_BD_E2_LSO_MSS (0x3FFF<<16)
#define ETH_TX_PARSE_BD_E2_LSO_MSS_SHIFT 16
#define ETH_TX_PARSE_BD_E2_ETH_ADDR_TYPE (0x3<<30)
#define ETH_TX_PARSE_BD_E2_ETH_ADDR_TYPE_SHIFT 30
};
struct eth_tx_parse_2nd_bd
{
u16_t global_data;
#define ETH_TX_PARSE_2ND_BD_IP_HDR_START_OUTER_W (0xF<<0)
#define ETH_TX_PARSE_2ND_BD_IP_HDR_START_OUTER_W_SHIFT 0
#define ETH_TX_PARSE_2ND_BD_RESERVED0 (0x1<<4)
#define ETH_TX_PARSE_2ND_BD_RESERVED0_SHIFT 4
#define ETH_TX_PARSE_2ND_BD_LLC_SNAP_EN (0x1<<5)
#define ETH_TX_PARSE_2ND_BD_LLC_SNAP_EN_SHIFT 5
#define ETH_TX_PARSE_2ND_BD_NS_FLG (0x1<<6)
#define ETH_TX_PARSE_2ND_BD_NS_FLG_SHIFT 6
#define ETH_TX_PARSE_2ND_BD_TUNNEL_UDP_EXIST (0x1<<7)
#define ETH_TX_PARSE_2ND_BD_TUNNEL_UDP_EXIST_SHIFT 7
#define ETH_TX_PARSE_2ND_BD_IP_HDR_LEN_OUTER_W (0x1F<<8)
#define ETH_TX_PARSE_2ND_BD_IP_HDR_LEN_OUTER_W_SHIFT 8
#define ETH_TX_PARSE_2ND_BD_RESERVED1 (0x7<<13)
#define ETH_TX_PARSE_2ND_BD_RESERVED1_SHIFT 13
u8_t bd_type;
#define ETH_TX_PARSE_2ND_BD_TYPE (0xF<<0)
#define ETH_TX_PARSE_2ND_BD_TYPE_SHIFT 0
#define ETH_TX_PARSE_2ND_BD_RESERVED2 (0xF<<4)
#define ETH_TX_PARSE_2ND_BD_RESERVED2_SHIFT 4
u8_t reserved3;
u8_t tcp_flags;
#define ETH_TX_PARSE_2ND_BD_FIN_FLG (0x1<<0)
#define ETH_TX_PARSE_2ND_BD_FIN_FLG_SHIFT 0
#define ETH_TX_PARSE_2ND_BD_SYN_FLG (0x1<<1)
#define ETH_TX_PARSE_2ND_BD_SYN_FLG_SHIFT 1
#define ETH_TX_PARSE_2ND_BD_RST_FLG (0x1<<2)
#define ETH_TX_PARSE_2ND_BD_RST_FLG_SHIFT 2
#define ETH_TX_PARSE_2ND_BD_PSH_FLG (0x1<<3)
#define ETH_TX_PARSE_2ND_BD_PSH_FLG_SHIFT 3
#define ETH_TX_PARSE_2ND_BD_ACK_FLG (0x1<<4)
#define ETH_TX_PARSE_2ND_BD_ACK_FLG_SHIFT 4
#define ETH_TX_PARSE_2ND_BD_URG_FLG (0x1<<5)
#define ETH_TX_PARSE_2ND_BD_URG_FLG_SHIFT 5
#define ETH_TX_PARSE_2ND_BD_ECE_FLG (0x1<<6)
#define ETH_TX_PARSE_2ND_BD_ECE_FLG_SHIFT 6
#define ETH_TX_PARSE_2ND_BD_CWR_FLG (0x1<<7)
#define ETH_TX_PARSE_2ND_BD_CWR_FLG_SHIFT 7
u8_t reserved4;
u8_t tunnel_udp_hdr_start_w ;
u8_t fw_ip_hdr_to_payload_w ;
u16_t fw_ip_csum_wo_len_flags_frag ;
u16_t hw_ip_id ;
u32_t tcp_send_seq ;
};
struct eth_tx_next_bd
{
u32_t addr_lo ;
u32_t addr_hi ;
u8_t reserved[8] ;
};
union eth_tx_bd_types
{
struct eth_tx_start_bd start_bd ;
struct eth_tx_bd reg_bd ;
struct eth_tx_parse_bd_e1x parse_bd_e1x ;
struct eth_tx_parse_bd_e2 parse_bd_e2 ;
struct eth_tx_parse_2nd_bd parse_2nd_bd ;
struct eth_tx_next_bd next_bd ;
};
struct eth_tx_bds_array
{
union eth_tx_bd_types bds[13];
};
enum eth_tx_vlan_type
{
X_ETH_NO_VLAN,
X_ETH_OUTBAND_VLAN,
X_ETH_INBAND_VLAN,
X_ETH_FW_ADDED_VLAN ,
MAX_ETH_TX_VLAN_TYPE};
enum eth_vlan_filter_mode
{
ETH_VLAN_FILTER_ANY_VLAN ,
ETH_VLAN_FILTER_SPECIFIC_VLAN ,
ETH_VLAN_FILTER_CLASSIFY ,
MAX_ETH_VLAN_FILTER_MODE};
struct mac_configuration_hdr
{
u8_t length ;
u8_t offset ;
u16_t client_id ;
u32_t echo ;
};
struct mac_configuration_entry
{
u16_t lsb_mac_addr ;
u16_t middle_mac_addr ;
u16_t msb_mac_addr ;
u16_t vlan_id ;
u8_t pf_id ;
u8_t flags;
#define MAC_CONFIGURATION_ENTRY_ACTION_TYPE (0x1<<0)
#define MAC_CONFIGURATION_ENTRY_ACTION_TYPE_SHIFT 0
#define MAC_CONFIGURATION_ENTRY_RDMA_MAC (0x1<<1)
#define MAC_CONFIGURATION_ENTRY_RDMA_MAC_SHIFT 1
#define MAC_CONFIGURATION_ENTRY_VLAN_FILTERING_MODE (0x3<<2)
#define MAC_CONFIGURATION_ENTRY_VLAN_FILTERING_MODE_SHIFT 2
#define MAC_CONFIGURATION_ENTRY_OVERRIDE_VLAN_REMOVAL (0x1<<4)
#define MAC_CONFIGURATION_ENTRY_OVERRIDE_VLAN_REMOVAL_SHIFT 4
#define MAC_CONFIGURATION_ENTRY_BROADCAST (0x1<<5)
#define MAC_CONFIGURATION_ENTRY_BROADCAST_SHIFT 5
#define MAC_CONFIGURATION_ENTRY_RESERVED1 (0x3<<6)
#define MAC_CONFIGURATION_ENTRY_RESERVED1_SHIFT 6
u16_t reserved0;
u32_t clients_bit_vector ;
};
struct mac_configuration_cmd
{
struct mac_configuration_hdr hdr ;
struct mac_configuration_entry config_table[64] ;
};
enum set_mac_action_type
{
T_ETH_MAC_COMMAND_INVALIDATE,
T_ETH_MAC_COMMAND_SET,
MAX_SET_MAC_ACTION_TYPE};
enum tpa_mode
{
TPA_LRO ,
TPA_GRO ,
MAX_TPA_MODE};
struct tpa_update_ramrod_data
{
u8_t update_ipv4 ;
u8_t update_ipv6 ;
u8_t client_id ;
u8_t max_tpa_queues ;
u8_t max_sges_for_packet ;
u8_t complete_on_both_clients ;
u8_t dont_verify_rings_pause_thr_flg ;
u8_t tpa_mode ;
u16_t sge_buff_size ;
u16_t max_agg_size ;
u32_t sge_page_base_lo ;
u32_t sge_page_base_hi ;
u16_t sge_pause_thr_low ;
u16_t sge_pause_thr_high ;
};
struct tstorm_eth_approximate_match_multicast_filtering
{
u32_t mcast_add_hash_bit_array[8] ;
};
struct tstorm_eth_function_common_config
{
u16_t config_flags;
#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV4_CAPABILITY (0x1<<0)
#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV4_CAPABILITY_SHIFT 0
#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV4_TCP_CAPABILITY (0x1<<1)
#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV4_TCP_CAPABILITY_SHIFT 1
#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_CAPABILITY (0x1<<2)
#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_CAPABILITY_SHIFT 2
#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_TCP_CAPABILITY (0x1<<3)
#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_TCP_CAPABILITY_SHIFT 3
#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_MODE (0x7<<4)
#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_MODE_SHIFT 4
#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_VLAN_FILTERING_ENABLE (0x1<<7)
#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_VLAN_FILTERING_ENABLE_SHIFT 7
#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0 (0xFF<<8)
#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0_SHIFT 8
u8_t rss_result_mask ;
u8_t reserved1;
u16_t vlan_id[2] ;
};
struct tstorm_eth_mac_filter_config
{
u32_t ucast_drop_all ;
u32_t ucast_accept_all ;
u32_t mcast_drop_all ;
u32_t mcast_accept_all ;
u32_t bcast_accept_all ;
u32_t vlan_filter[2] ;
u32_t unmatched_unicast ;
};
struct tx_queue_init_ramrod_data
{
struct client_init_general_data general ;
struct client_init_tx_data tx ;
};
struct ustorm_eth_rx_producers
{
#if defined(__BIG_ENDIAN)
u16_t bd_prod ;
u16_t cqe_prod ;
#elif defined(__LITTLE_ENDIAN)
u16_t cqe_prod ;
u16_t bd_prod ;
#endif
#if defined(__BIG_ENDIAN)
u16_t reserved;
u16_t sge_prod ;
#elif defined(__LITTLE_ENDIAN)
u16_t sge_prod ;
u16_t reserved;
#endif
};
struct fcoe_abts_info
{
u16_t aborted_task_id ;
u16_t reserved0;
u32_t reserved1;
};
struct fcoe_abts_rsp_union
{
u8_t r_ctl ;
u8_t rsrv[3];
u32_t abts_rsp_payload[7] ;
};
struct fcoe_bd_ctx
{
u32_t buf_addr_hi ;
u32_t buf_addr_lo ;
u16_t buf_len ;
u16_t rsrv0;
u16_t flags ;
u16_t rsrv1;
};
struct fcoe_cached_sge_ctx
{
struct regpair_t cur_buf_addr ;
u16_t cur_buf_rem ;
u16_t second_buf_rem ;
struct regpair_t second_buf_addr ;
};
struct fcoe_cleanup_info
{
u16_t cleaned_task_id ;
u16_t rolled_tx_seq_cnt ;
u32_t rolled_tx_data_offset ;
};
struct fcoe_fcp_rsp_flags
{
u8_t flags;
#define FCOE_FCP_RSP_FLAGS_FCP_RSP_LEN_VALID (0x1<<0)
#define FCOE_FCP_RSP_FLAGS_FCP_RSP_LEN_VALID_SHIFT 0
#define FCOE_FCP_RSP_FLAGS_FCP_SNS_LEN_VALID (0x1<<1)
#define FCOE_FCP_RSP_FLAGS_FCP_SNS_LEN_VALID_SHIFT 1
#define FCOE_FCP_RSP_FLAGS_FCP_RESID_OVER (0x1<<2)
#define FCOE_FCP_RSP_FLAGS_FCP_RESID_OVER_SHIFT 2
#define FCOE_FCP_RSP_FLAGS_FCP_RESID_UNDER (0x1<<3)
#define FCOE_FCP_RSP_FLAGS_FCP_RESID_UNDER_SHIFT 3
#define FCOE_FCP_RSP_FLAGS_FCP_CONF_REQ (0x1<<4)
#define FCOE_FCP_RSP_FLAGS_FCP_CONF_REQ_SHIFT 4
#define FCOE_FCP_RSP_FLAGS_FCP_BIDI_FLAGS (0x7<<5)
#define FCOE_FCP_RSP_FLAGS_FCP_BIDI_FLAGS_SHIFT 5
};
struct fcoe_fcp_rsp_payload
{
struct regpair_t reserved0;
u32_t fcp_resid;
u8_t scsi_status_code;
struct fcoe_fcp_rsp_flags fcp_flags;
u16_t retry_delay_timer;
u32_t fcp_rsp_len;
u32_t fcp_sns_len;
};
struct fcoe_fcp_rsp_union
{
struct fcoe_fcp_rsp_payload payload;
struct regpair_t reserved0;
};
struct fcoe_fc_hdr
{
u8_t s_id[3];
u8_t cs_ctl;
u8_t d_id[3];
u8_t r_ctl;
u16_t seq_cnt;
u8_t df_ctl;
u8_t seq_id;
u8_t f_ctl[3];
u8_t type;
u32_t parameters;
u16_t rx_id;
u16_t ox_id;
};
struct fcoe_mp_rsp_union
{
struct fcoe_fc_hdr fc_hdr ;
u32_t mp_payload_len ;
u32_t rsrv;
};
union fcoe_comp_flow_info
{
struct fcoe_fcp_rsp_union fcp_rsp ;
struct fcoe_abts_rsp_union abts_rsp ;
struct fcoe_mp_rsp_union mp_rsp ;
u32_t opaque[8];
};
struct fcoe_ext_abts_info
{
u32_t rsrv0[6];
struct fcoe_abts_info ctx ;
};
struct fcoe_ext_cleanup_info
{
u32_t rsrv0[6];
struct fcoe_cleanup_info ctx ;
};
struct fcoe_fw_tx_seq_ctx
{
u32_t data_offset ;
u16_t seq_cnt ;
u16_t rsrv0;
};
struct fcoe_ext_fw_tx_seq_ctx
{
u32_t rsrv0[6];
struct fcoe_fw_tx_seq_ctx ctx ;
};
struct fcoe_mul_sges_ctx
{
struct regpair_t cur_sge_addr ;
u16_t cur_sge_off ;
u8_t cur_sge_idx ;
u8_t sgl_size ;
};
struct fcoe_ext_mul_sges_ctx
{
struct fcoe_mul_sges_ctx mul_sgl ;
struct regpair_t rsrv0;
};
struct fcoe_fcp_cmd_payload
{
u32_t opaque[8];
};
struct fcoe_fcp_xfr_rdy_payload
{
u32_t burst_len;
u32_t data_ro;
};
struct fcoe_fc_frame
{
struct fcoe_fc_hdr fc_hdr;
u32_t reserved0[2];
};
union fcoe_kcqe_params
{
u32_t reserved0[4];
};
struct fcoe_kcqe
{
u32_t fcoe_conn_id ;
u32_t completion_status ;
u32_t fcoe_conn_context_id ;
union fcoe_kcqe_params params ;
u16_t qe_self_seq ;
u8_t op_code ;
u8_t flags;
#define FCOE_KCQE_RESERVED0 (0x7<<0)
#define FCOE_KCQE_RESERVED0_SHIFT 0
#define FCOE_KCQE_RAMROD_COMPLETION (0x1<<3)
#define FCOE_KCQE_RAMROD_COMPLETION_SHIFT 3
#define FCOE_KCQE_LAYER_CODE (0x7<<4)
#define FCOE_KCQE_LAYER_CODE_SHIFT 4
#define FCOE_KCQE_LINKED_WITH_NEXT (0x1<<7)
#define FCOE_KCQE_LINKED_WITH_NEXT_SHIFT 7
};
struct fcoe_kwqe_header
{
u8_t op_code ;
u8_t flags;
#define FCOE_KWQE_HEADER_RESERVED0 (0xF<<0)
#define FCOE_KWQE_HEADER_RESERVED0_SHIFT 0
#define FCOE_KWQE_HEADER_LAYER_CODE (0x7<<4)
#define FCOE_KWQE_HEADER_LAYER_CODE_SHIFT 4
#define FCOE_KWQE_HEADER_RESERVED1 (0x1<<7)
#define FCOE_KWQE_HEADER_RESERVED1_SHIFT 7
};
struct fcoe_kwqe_init1
{
u16_t num_tasks ;
struct fcoe_kwqe_header hdr ;
u32_t task_list_pbl_addr_lo ;
u32_t task_list_pbl_addr_hi ;
u32_t dummy_buffer_addr_lo ;
u32_t dummy_buffer_addr_hi ;
u16_t sq_num_wqes ;
u16_t rq_num_wqes ;
u16_t rq_buffer_log_size ;
u16_t cq_num_wqes ;
u16_t mtu ;
u8_t num_sessions_log ;
u8_t flags;
#define FCOE_KWQE_INIT1_LOG_PAGE_SIZE (0xF<<0)
#define FCOE_KWQE_INIT1_LOG_PAGE_SIZE_SHIFT 0
#define FCOE_KWQE_INIT1_LOG_CACHED_PBES_PER_FUNC (0x7<<4)
#define FCOE_KWQE_INIT1_LOG_CACHED_PBES_PER_FUNC_SHIFT 4
#define FCOE_KWQE_INIT1_CLASSIFY_FAILED_ALLOWED (0x1<<7)
#define FCOE_KWQE_INIT1_CLASSIFY_FAILED_ALLOWED_SHIFT 7
};
struct fcoe_kwqe_init2
{
u8_t hsi_major_version ;
u8_t hsi_minor_version ;
struct fcoe_kwqe_header hdr ;
u32_t hash_tbl_pbl_addr_lo ;
u32_t hash_tbl_pbl_addr_hi ;
u32_t t2_hash_tbl_addr_lo ;
u32_t t2_hash_tbl_addr_hi ;
u32_t t2_ptr_hash_tbl_addr_lo ;
u32_t t2_ptr_hash_tbl_addr_hi ;
u32_t free_list_count ;
};
struct fcoe_kwqe_init3
{
u16_t reserved0;
struct fcoe_kwqe_header hdr ;
u32_t error_bit_map_lo ;
u32_t error_bit_map_hi ;
u8_t perf_config ;
u8_t reserved21[3];
u32_t reserved2[4];
};
struct fcoe_kwqe_conn_offload1
{
u16_t fcoe_conn_id ;
struct fcoe_kwqe_header hdr ;
u32_t sq_addr_lo ;
u32_t sq_addr_hi ;
u32_t rq_pbl_addr_lo ;
u32_t rq_pbl_addr_hi ;
u32_t rq_first_pbe_addr_lo ;
u32_t rq_first_pbe_addr_hi ;
u16_t rq_prod ;
u16_t reserved0;
};
struct fcoe_kwqe_conn_offload2
{
u16_t tx_max_fc_pay_len ;
struct fcoe_kwqe_header hdr ;
u32_t cq_addr_lo ;
u32_t cq_addr_hi ;
u32_t xferq_addr_lo ;
u32_t xferq_addr_hi ;
u32_t conn_db_addr_lo ;
u32_t conn_db_addr_hi ;
u32_t reserved1;
};
struct fcoe_kwqe_conn_offload3
{
u16_t vlan_tag;
#define FCOE_KWQE_CONN_OFFLOAD3_VLAN_ID (0xFFF<<0)
#define FCOE_KWQE_CONN_OFFLOAD3_VLAN_ID_SHIFT 0
#define FCOE_KWQE_CONN_OFFLOAD3_CFI (0x1<<12)
#define FCOE_KWQE_CONN_OFFLOAD3_CFI_SHIFT 12
#define FCOE_KWQE_CONN_OFFLOAD3_PRIORITY (0x7<<13)
#define FCOE_KWQE_CONN_OFFLOAD3_PRIORITY_SHIFT 13
struct fcoe_kwqe_header hdr ;
u8_t s_id[3] ;
u8_t tx_max_conc_seqs_c3 ;
u8_t d_id[3] ;
u8_t flags;
#define FCOE_KWQE_CONN_OFFLOAD3_B_MUL_N_PORT_IDS (0x1<<0)
#define FCOE_KWQE_CONN_OFFLOAD3_B_MUL_N_PORT_IDS_SHIFT 0
#define FCOE_KWQE_CONN_OFFLOAD3_B_E_D_TOV_RES (0x1<<1)
#define FCOE_KWQE_CONN_OFFLOAD3_B_E_D_TOV_RES_SHIFT 1
#define FCOE_KWQE_CONN_OFFLOAD3_B_CONT_INCR_SEQ_CNT (0x1<<2)
#define FCOE_KWQE_CONN_OFFLOAD3_B_CONT_INCR_SEQ_CNT_SHIFT 2
#define FCOE_KWQE_CONN_OFFLOAD3_B_CONF_REQ (0x1<<3)
#define FCOE_KWQE_CONN_OFFLOAD3_B_CONF_REQ_SHIFT 3
#define FCOE_KWQE_CONN_OFFLOAD3_B_REC_VALID (0x1<<4)
#define FCOE_KWQE_CONN_OFFLOAD3_B_REC_VALID_SHIFT 4
#define FCOE_KWQE_CONN_OFFLOAD3_B_C2_VALID (0x1<<5)
#define FCOE_KWQE_CONN_OFFLOAD3_B_C2_VALID_SHIFT 5
#define FCOE_KWQE_CONN_OFFLOAD3_B_ACK_0 (0x1<<6)
#define FCOE_KWQE_CONN_OFFLOAD3_B_ACK_0_SHIFT 6
#define FCOE_KWQE_CONN_OFFLOAD3_B_VLAN_FLAG (0x1<<7)
#define FCOE_KWQE_CONN_OFFLOAD3_B_VLAN_FLAG_SHIFT 7
u32_t reserved;
u32_t confq_first_pbe_addr_lo ;
u32_t confq_first_pbe_addr_hi ;
u16_t tx_total_conc_seqs ;
u16_t rx_max_fc_pay_len ;
u16_t rx_total_conc_seqs ;
u8_t rx_max_conc_seqs_c3 ;
u8_t rx_open_seqs_exch_c3 ;
};
struct fcoe_kwqe_conn_offload4
{
u8_t e_d_tov_timer_val ;
u8_t reserved2;
struct fcoe_kwqe_header hdr ;
u8_t src_mac_addr_lo[2] ;
u8_t src_mac_addr_mid[2] ;
u8_t src_mac_addr_hi[2] ;
u8_t dst_mac_addr_hi[2] ;
u8_t dst_mac_addr_lo[2] ;
u8_t dst_mac_addr_mid[2] ;
u32_t lcq_addr_lo ;
u32_t lcq_addr_hi ;
u32_t confq_pbl_base_addr_lo ;
u32_t confq_pbl_base_addr_hi ;
};
struct fcoe_kwqe_conn_enable_disable
{
u16_t reserved0;
struct fcoe_kwqe_header hdr ;
u8_t src_mac_addr_lo[2] ;
u8_t src_mac_addr_mid[2] ;
u8_t src_mac_addr_hi[2] ;
u16_t vlan_tag;
#define FCOE_KWQE_CONN_ENABLE_DISABLE_VLAN_ID (0xFFF<<0)
#define FCOE_KWQE_CONN_ENABLE_DISABLE_VLAN_ID_SHIFT 0
#define FCOE_KWQE_CONN_ENABLE_DISABLE_CFI (0x1<<12)
#define FCOE_KWQE_CONN_ENABLE_DISABLE_CFI_SHIFT 12
#define FCOE_KWQE_CONN_ENABLE_DISABLE_PRIORITY (0x7<<13)
#define FCOE_KWQE_CONN_ENABLE_DISABLE_PRIORITY_SHIFT 13
u8_t dst_mac_addr_lo[2] ;
u8_t dst_mac_addr_mid[2] ;
u8_t dst_mac_addr_hi[2] ;
u16_t reserved1;
u8_t s_id[3] ;
u8_t vlan_flag ;
u8_t d_id[3] ;
u8_t reserved3;
u32_t context_id ;
u32_t conn_id ;
u32_t reserved4;
};
struct fcoe_kwqe_conn_destroy
{
u16_t reserved0;
struct fcoe_kwqe_header hdr ;
u32_t context_id ;
u32_t conn_id ;
u32_t reserved1[5];
};
struct fcoe_kwqe_destroy
{
u16_t reserved0;
struct fcoe_kwqe_header hdr ;
u32_t reserved1[7];
};
struct fcoe_kwqe_stat
{
u16_t reserved0;
struct fcoe_kwqe_header hdr ;
u32_t stat_params_addr_lo ;
u32_t stat_params_addr_hi ;
u32_t reserved1[5];
};
union fcoe_kwqe
{
struct fcoe_kwqe_init1 init1;
struct fcoe_kwqe_init2 init2;
struct fcoe_kwqe_init3 init3;
struct fcoe_kwqe_conn_offload1 conn_offload1;
struct fcoe_kwqe_conn_offload2 conn_offload2;
struct fcoe_kwqe_conn_offload3 conn_offload3;
struct fcoe_kwqe_conn_offload4 conn_offload4;
struct fcoe_kwqe_conn_enable_disable conn_enable_disable;
struct fcoe_kwqe_conn_destroy conn_destroy;
struct fcoe_kwqe_destroy destroy;
struct fcoe_kwqe_stat statistics;
};
union fcoe_sgl_union_ctx
{
struct fcoe_cached_sge_ctx cached_sge ;
struct fcoe_ext_mul_sges_ctx sgl ;
u32_t opaque[5];
};
struct fcoe_read_flow_info
{
union fcoe_sgl_union_ctx sgl_ctx ;
u32_t rsrv0[3];
};
struct fcoe_s_stat_ctx
{
u8_t flags;
#define FCOE_S_STAT_CTX_ACTIVE (0x1<<0)
#define FCOE_S_STAT_CTX_ACTIVE_SHIFT 0
#define FCOE_S_STAT_CTX_ACK_ABORT_SEQ_COND (0x1<<1)
#define FCOE_S_STAT_CTX_ACK_ABORT_SEQ_COND_SHIFT 1
#define FCOE_S_STAT_CTX_ABTS_PERFORMED (0x1<<2)
#define FCOE_S_STAT_CTX_ABTS_PERFORMED_SHIFT 2
#define FCOE_S_STAT_CTX_SEQ_TIMEOUT (0x1<<3)
#define FCOE_S_STAT_CTX_SEQ_TIMEOUT_SHIFT 3
#define FCOE_S_STAT_CTX_P_RJT (0x1<<4)
#define FCOE_S_STAT_CTX_P_RJT_SHIFT 4
#define FCOE_S_STAT_CTX_ACK_EOFT (0x1<<5)
#define FCOE_S_STAT_CTX_ACK_EOFT_SHIFT 5
#define FCOE_S_STAT_CTX_RSRV1 (0x3<<6)
#define FCOE_S_STAT_CTX_RSRV1_SHIFT 6
};
struct fcoe_rx_seq_ctx
{
u8_t seq_id ;
struct fcoe_s_stat_ctx s_stat ;
u16_t seq_cnt ;
u32_t low_exp_ro ;
u32_t high_exp_ro ;
};
struct fcoe_rx_stat_params_section0
{
u32_t fcoe_rx_pkt_cnt ;
u32_t fcoe_rx_byte_cnt ;
};
struct fcoe_rx_stat_params_section1
{
u32_t fcoe_ver_cnt ;
u32_t fcoe_rx_drop_pkt_cnt ;
};
struct fcoe_rx_stat_params_section2
{
u32_t fc_crc_cnt ;
u32_t eofa_del_cnt ;
u32_t miss_frame_cnt ;
u32_t seq_timeout_cnt ;
u32_t drop_seq_cnt ;
u32_t fcoe_rx_drop_pkt_cnt ;
u32_t fcp_rx_pkt_cnt ;
u32_t reserved0;
};
union fcoe_rx_wr_union_ctx
{
struct fcoe_read_flow_info read_info ;
union fcoe_comp_flow_info comp_info ;
u32_t opaque[8];
};
struct fcoe_sqe
{
u16_t wqe;
#define FCOE_SQE_TASK_ID (0x7FFF<<0)
#define FCOE_SQE_TASK_ID_SHIFT 0
#define FCOE_SQE_TOGGLE_BIT (0x1<<15)
#define FCOE_SQE_TOGGLE_BIT_SHIFT 15
};
struct fcoe_tx_stat_params
{
u32_t fcoe_tx_pkt_cnt ;
u32_t fcoe_tx_byte_cnt ;
u32_t fcp_tx_pkt_cnt ;
u32_t reserved0;
};
struct fcoe_statistics_params
{
struct fcoe_tx_stat_params tx_stat ;
struct fcoe_rx_stat_params_section0 rx_stat0 ;
struct fcoe_rx_stat_params_section1 rx_stat1 ;
struct fcoe_rx_stat_params_section2 rx_stat2 ;
};
struct fcoe_tce_tx_only
{
union fcoe_sgl_union_ctx sgl_ctx ;
u32_t rsrv0;
};
union fcoe_tx_wr_rx_rd_union_ctx
{
struct fcoe_fc_frame tx_frame ;
struct fcoe_fcp_cmd_payload fcp_cmd ;
struct fcoe_ext_cleanup_info cleanup ;
struct fcoe_ext_abts_info abts ;
struct fcoe_ext_fw_tx_seq_ctx tx_seq ;
u32_t opaque[8];
};
struct fcoe_tce_tx_wr_rx_rd_const
{
u8_t init_flags;
#define FCOE_TCE_TX_WR_RX_RD_CONST_TASK_TYPE (0x7<<0)
#define FCOE_TCE_TX_WR_RX_RD_CONST_TASK_TYPE_SHIFT 0
#define FCOE_TCE_TX_WR_RX_RD_CONST_DEV_TYPE (0x1<<3)
#define FCOE_TCE_TX_WR_RX_RD_CONST_DEV_TYPE_SHIFT 3
#define FCOE_TCE_TX_WR_RX_RD_CONST_CLASS_TYPE (0x1<<4)
#define FCOE_TCE_TX_WR_RX_RD_CONST_CLASS_TYPE_SHIFT 4
#define FCOE_TCE_TX_WR_RX_RD_CONST_CACHED_SGE (0x3<<5)
#define FCOE_TCE_TX_WR_RX_RD_CONST_CACHED_SGE_SHIFT 5
#define FCOE_TCE_TX_WR_RX_RD_CONST_SUPPORT_REC_TOV (0x1<<7)
#define FCOE_TCE_TX_WR_RX_RD_CONST_SUPPORT_REC_TOV_SHIFT 7
u8_t tx_flags;
#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_VALID (0x1<<0)
#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_VALID_SHIFT 0
#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_STATE (0xF<<1)
#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_STATE_SHIFT 1
#define FCOE_TCE_TX_WR_RX_RD_CONST_RSRV1 (0x1<<5)
#define FCOE_TCE_TX_WR_RX_RD_CONST_RSRV1_SHIFT 5
#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_SEQ_INIT (0x1<<6)
#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_SEQ_INIT_SHIFT 6
#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_COMP_TRNS (0x1<<7)
#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_COMP_TRNS_SHIFT 7
u16_t rsrv3;
u32_t verify_tx_seq ;
};
struct fcoe_tce_tx_wr_rx_rd
{
union fcoe_tx_wr_rx_rd_union_ctx union_ctx ;
struct fcoe_tce_tx_wr_rx_rd_const const_ctx ;
};
struct fcoe_tce_rx_wr_tx_rd_const
{
u32_t data_2_trns ;
u32_t init_flags;
#define FCOE_TCE_RX_WR_TX_RD_CONST_CID (0xFFFFFF<<0)
#define FCOE_TCE_RX_WR_TX_RD_CONST_CID_SHIFT 0
#define FCOE_TCE_RX_WR_TX_RD_CONST_RSRV0 (0xFF<<24)
#define FCOE_TCE_RX_WR_TX_RD_CONST_RSRV0_SHIFT 24
};
struct fcoe_tce_rx_wr_tx_rd_var
{
u16_t rx_flags;
#define FCOE_TCE_RX_WR_TX_RD_VAR_RSRV1 (0xF<<0)
#define FCOE_TCE_RX_WR_TX_RD_VAR_RSRV1_SHIFT 0
#define FCOE_TCE_RX_WR_TX_RD_VAR_NUM_RQ_WQE (0x7<<4)
#define FCOE_TCE_RX_WR_TX_RD_VAR_NUM_RQ_WQE_SHIFT 4
#define FCOE_TCE_RX_WR_TX_RD_VAR_CONF_REQ (0x1<<7)
#define FCOE_TCE_RX_WR_TX_RD_VAR_CONF_REQ_SHIFT 7
#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_STATE (0xF<<8)
#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_STATE_SHIFT 8
#define FCOE_TCE_RX_WR_TX_RD_VAR_EXP_FIRST_FRAME (0x1<<12)
#define FCOE_TCE_RX_WR_TX_RD_VAR_EXP_FIRST_FRAME_SHIFT 12
#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_SEQ_INIT (0x1<<13)
#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_SEQ_INIT_SHIFT 13
#define FCOE_TCE_RX_WR_TX_RD_VAR_RSRV2 (0x1<<14)
#define FCOE_TCE_RX_WR_TX_RD_VAR_RSRV2_SHIFT 14
#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_VALID (0x1<<15)
#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_VALID_SHIFT 15
u16_t rx_id ;
struct fcoe_fcp_xfr_rdy_payload fcp_xfr_rdy ;
};
struct fcoe_tce_rx_wr_tx_rd
{
struct fcoe_tce_rx_wr_tx_rd_const const_ctx ;
struct fcoe_tce_rx_wr_tx_rd_var var_ctx ;
};
struct fcoe_tce_rx_only
{
struct fcoe_rx_seq_ctx rx_seq_ctx ;
union fcoe_rx_wr_union_ctx union_ctx ;
};
struct fcoe_task_ctx_entry
{
struct fcoe_tce_tx_only txwr_only ;
struct fcoe_tce_tx_wr_rx_rd txwr_rxrd ;
struct fcoe_tce_rx_wr_tx_rd rxwr_txrd ;
struct fcoe_tce_rx_only rxwr_only ;
};
struct fcoe_xfrqe
{
u16_t wqe;
#define FCOE_XFRQE_TASK_ID (0x7FFF<<0)
#define FCOE_XFRQE_TASK_ID_SHIFT 0
#define FCOE_XFRQE_TOGGLE_BIT (0x1<<15)
#define FCOE_XFRQE_TOGGLE_BIT_SHIFT 15
};
struct common_fcoe_sgl
{
struct fcoe_bd_ctx sge[3];
};
struct fcoe_cached_wqe
{
struct fcoe_sqe sqe ;
struct fcoe_xfrqe xfrqe ;
};
struct fcoe_conn_enable_disable_ramrod_params
{
struct fcoe_kwqe_conn_enable_disable enable_disable_kwqe;
};
struct fcoe_conn_offload_ramrod_params
{
struct fcoe_kwqe_conn_offload1 offload_kwqe1;
struct fcoe_kwqe_conn_offload2 offload_kwqe2;
struct fcoe_kwqe_conn_offload3 offload_kwqe3;
struct fcoe_kwqe_conn_offload4 offload_kwqe4;
};
struct ustorm_fcoe_mng_ctx
{
#if defined(__BIG_ENDIAN)
u8_t mid_seq_proc_flag ;
u8_t tce_in_cam_flag ;
u8_t tce_on_ior_flag ;
u8_t en_cached_tce_flag ;
#elif defined(__LITTLE_ENDIAN)
u8_t en_cached_tce_flag ;
u8_t tce_on_ior_flag ;
u8_t tce_in_cam_flag ;
u8_t mid_seq_proc_flag ;
#endif
#if defined(__BIG_ENDIAN)
u8_t tce_cam_addr ;
u8_t cached_conn_flag ;
u16_t rsrv0;
#elif defined(__LITTLE_ENDIAN)
u16_t rsrv0;
u8_t cached_conn_flag ;
u8_t tce_cam_addr ;
#endif
#if defined(__BIG_ENDIAN)
u16_t dma_tce_ram_addr ;
u16_t tce_ram_addr ;
#elif defined(__LITTLE_ENDIAN)
u16_t tce_ram_addr ;
u16_t dma_tce_ram_addr ;
#endif
#if defined(__BIG_ENDIAN)
u16_t ox_id ;
u16_t wr_done_seq ;
#elif defined(__LITTLE_ENDIAN)
u16_t wr_done_seq ;
u16_t ox_id ;
#endif
struct regpair_t task_addr ;
};
struct ustorm_fcoe_params
{
#if defined(__BIG_ENDIAN)
u16_t fcoe_conn_id ;
u16_t flags;
#define USTORM_FCOE_PARAMS_B_MUL_N_PORT_IDS (0x1<<0)
#define USTORM_FCOE_PARAMS_B_MUL_N_PORT_IDS_SHIFT 0
#define USTORM_FCOE_PARAMS_B_E_D_TOV_RES (0x1<<1)
#define USTORM_FCOE_PARAMS_B_E_D_TOV_RES_SHIFT 1
#define USTORM_FCOE_PARAMS_B_CONT_INCR_SEQ_CNT (0x1<<2)
#define USTORM_FCOE_PARAMS_B_CONT_INCR_SEQ_CNT_SHIFT 2
#define USTORM_FCOE_PARAMS_B_CONF_REQ (0x1<<3)
#define USTORM_FCOE_PARAMS_B_CONF_REQ_SHIFT 3
#define USTORM_FCOE_PARAMS_B_REC_VALID (0x1<<4)
#define USTORM_FCOE_PARAMS_B_REC_VALID_SHIFT 4
#define USTORM_FCOE_PARAMS_B_CQ_TOGGLE_BIT (0x1<<5)
#define USTORM_FCOE_PARAMS_B_CQ_TOGGLE_BIT_SHIFT 5
#define USTORM_FCOE_PARAMS_B_XFRQ_TOGGLE_BIT (0x1<<6)
#define USTORM_FCOE_PARAMS_B_XFRQ_TOGGLE_BIT_SHIFT 6
#define USTORM_FCOE_PARAMS_B_CONFQ_TOGGLE_BIT (0x1<<7)
#define USTORM_FCOE_PARAMS_B_CONFQ_TOGGLE_BIT_SHIFT 7
#define USTORM_FCOE_PARAMS_RSRV0 (0xFF<<8)
#define USTORM_FCOE_PARAMS_RSRV0_SHIFT 8
#elif defined(__LITTLE_ENDIAN)
u16_t flags;
#define USTORM_FCOE_PARAMS_B_MUL_N_PORT_IDS (0x1<<0)
#define USTORM_FCOE_PARAMS_B_MUL_N_PORT_IDS_SHIFT 0
#define USTORM_FCOE_PARAMS_B_E_D_TOV_RES (0x1<<1)
#define USTORM_FCOE_PARAMS_B_E_D_TOV_RES_SHIFT 1
#define USTORM_FCOE_PARAMS_B_CONT_INCR_SEQ_CNT (0x1<<2)
#define USTORM_FCOE_PARAMS_B_CONT_INCR_SEQ_CNT_SHIFT 2
#define USTORM_FCOE_PARAMS_B_CONF_REQ (0x1<<3)
#define USTORM_FCOE_PARAMS_B_CONF_REQ_SHIFT 3
#define USTORM_FCOE_PARAMS_B_REC_VALID (0x1<<4)
#define USTORM_FCOE_PARAMS_B_REC_VALID_SHIFT 4
#define USTORM_FCOE_PARAMS_B_CQ_TOGGLE_BIT (0x1<<5)
#define USTORM_FCOE_PARAMS_B_CQ_TOGGLE_BIT_SHIFT 5
#define USTORM_FCOE_PARAMS_B_XFRQ_TOGGLE_BIT (0x1<<6)
#define USTORM_FCOE_PARAMS_B_XFRQ_TOGGLE_BIT_SHIFT 6
#define USTORM_FCOE_PARAMS_B_CONFQ_TOGGLE_BIT (0x1<<7)
#define USTORM_FCOE_PARAMS_B_CONFQ_TOGGLE_BIT_SHIFT 7
#define USTORM_FCOE_PARAMS_RSRV0 (0xFF<<8)
#define USTORM_FCOE_PARAMS_RSRV0_SHIFT 8
u16_t fcoe_conn_id ;
#endif
#if defined(__BIG_ENDIAN)
u8_t hc_csdm_byte_en ;
u8_t func_id ;
u8_t port_id ;
u8_t vnic_id ;
#elif defined(__LITTLE_ENDIAN)
u8_t vnic_id ;
u8_t port_id ;
u8_t func_id ;
u8_t hc_csdm_byte_en ;
#endif
#if defined(__BIG_ENDIAN)
u16_t rx_total_conc_seqs ;
u16_t rx_max_fc_pay_len ;
#elif defined(__LITTLE_ENDIAN)
u16_t rx_max_fc_pay_len ;
u16_t rx_total_conc_seqs ;
#endif
#if defined(__BIG_ENDIAN)
u8_t task_pbe_idx_off ;
u8_t task_in_page_log_size ;
u16_t rx_max_conc_seqs ;
#elif defined(__LITTLE_ENDIAN)
u16_t rx_max_conc_seqs ;
u8_t task_in_page_log_size ;
u8_t task_pbe_idx_off ;
#endif
};
struct fcoe_idx16_fields
{
u16_t fields;
#define FCOE_IDX16_FIELDS_IDX (0x7FFF<<0)
#define FCOE_IDX16_FIELDS_IDX_SHIFT 0
#define FCOE_IDX16_FIELDS_MSB (0x1<<15)
#define FCOE_IDX16_FIELDS_MSB_SHIFT 15
};
union fcoe_idx16_field_union
{
struct fcoe_idx16_fields fields ;
u16_t val ;
};
struct ustorm_fcoe_data_place_mng
{
#if defined(__BIG_ENDIAN)
u16_t sge_off;
u8_t num_sges ;
u8_t sge_idx ;
#elif defined(__LITTLE_ENDIAN)
u8_t sge_idx ;
u8_t num_sges ;
u16_t sge_off;
#endif
};
struct ustorm_fcoe_data_place
{
struct ustorm_fcoe_data_place_mng cached_mng ;
struct fcoe_bd_ctx cached_sge[2];
};
union fcoe_u_tce_tx_wr_rx_rd_union
{
struct fcoe_abts_info abts ;
struct fcoe_cleanup_info cleanup ;
struct fcoe_fw_tx_seq_ctx tx_seq_ctx ;
u32_t opaque[2];
};
struct fcoe_u_tce_tx_wr_rx_rd
{
union fcoe_u_tce_tx_wr_rx_rd_union union_ctx ;
struct fcoe_tce_tx_wr_rx_rd_const const_ctx ;
};
struct ustorm_fcoe_tce
{
struct fcoe_u_tce_tx_wr_rx_rd txwr_rxrd ;
struct fcoe_tce_rx_wr_tx_rd rxwr_txrd ;
struct fcoe_tce_rx_only rxwr ;
};
struct ustorm_fcoe_cache_ctx
{
u32_t rsrv0;
struct ustorm_fcoe_data_place data_place;
struct ustorm_fcoe_tce tce ;
};
struct ustorm_fcoe_st_context
{
struct ustorm_fcoe_mng_ctx mng_ctx ;
struct ustorm_fcoe_params fcoe_params ;
struct regpair_t cq_base_addr ;
struct regpair_t rq_pbl_base ;
struct regpair_t rq_cur_page_addr ;
struct regpair_t confq_pbl_base_addr ;
struct regpair_t conn_db_base ;
struct regpair_t xfrq_base_addr ;
struct regpair_t lcq_base_addr ;
#if defined(__BIG_ENDIAN)
union fcoe_idx16_field_union rq_cons ;
union fcoe_idx16_field_union rq_prod ;
#elif defined(__LITTLE_ENDIAN)
union fcoe_idx16_field_union rq_prod ;
union fcoe_idx16_field_union rq_cons ;
#endif
#if defined(__BIG_ENDIAN)
u16_t xfrq_prod ;
u16_t cq_cons ;
#elif defined(__LITTLE_ENDIAN)
u16_t cq_cons ;
u16_t xfrq_prod ;
#endif
#if defined(__BIG_ENDIAN)
u16_t lcq_cons ;
u16_t hc_cram_address ;
#elif defined(__LITTLE_ENDIAN)
u16_t hc_cram_address ;
u16_t lcq_cons ;
#endif
#if defined(__BIG_ENDIAN)
u16_t sq_xfrq_lcq_confq_size ;
u16_t confq_prod ;
#elif defined(__LITTLE_ENDIAN)
u16_t confq_prod ;
u16_t sq_xfrq_lcq_confq_size ;
#endif
#if defined(__BIG_ENDIAN)
u8_t hc_csdm_agg_int ;
u8_t rsrv2;
u8_t available_rqes ;
u8_t sp_q_flush_cnt ;
#elif defined(__LITTLE_ENDIAN)
u8_t sp_q_flush_cnt ;
u8_t available_rqes ;
u8_t rsrv2;
u8_t hc_csdm_agg_int ;
#endif
#if defined(__BIG_ENDIAN)
u16_t num_pend_tasks ;
u16_t pbf_ack_ram_addr ;
#elif defined(__LITTLE_ENDIAN)
u16_t pbf_ack_ram_addr ;
u16_t num_pend_tasks ;
#endif
struct ustorm_fcoe_cache_ctx cache_ctx ;
};
struct tstorm_fcoe_st_context
{
struct regpair_t reserved0;
struct regpair_t reserved1;
};
struct xstorm_fcoe_eth_context_section
{
#if defined(__BIG_ENDIAN)
u8_t remote_addr_4 ;
u8_t remote_addr_5 ;
u8_t local_addr_0 ;
u8_t local_addr_1 ;
#elif defined(__LITTLE_ENDIAN)
u8_t local_addr_1 ;
u8_t local_addr_0 ;
u8_t remote_addr_5 ;
u8_t remote_addr_4 ;
#endif
#if defined(__BIG_ENDIAN)
u8_t remote_addr_0 ;
u8_t remote_addr_1 ;
u8_t remote_addr_2 ;
u8_t remote_addr_3 ;
#elif defined(__LITTLE_ENDIAN)
u8_t remote_addr_3 ;
u8_t remote_addr_2 ;
u8_t remote_addr_1 ;
u8_t remote_addr_0 ;
#endif
#if defined(__BIG_ENDIAN)
u16_t reserved_vlan_type ;
u16_t params;
#define XSTORM_FCOE_ETH_CONTEXT_SECTION_VLAN_ID (0xFFF<<0)
#define XSTORM_FCOE_ETH_CONTEXT_SECTION_VLAN_ID_SHIFT 0
#define XSTORM_FCOE_ETH_CONTEXT_SECTION_CFI (0x1<<12)
#define XSTORM_FCOE_ETH_CONTEXT_SECTION_CFI_SHIFT 12
#define XSTORM_FCOE_ETH_CONTEXT_SECTION_PRIORITY (0x7<<13)
#define XSTORM_FCOE_ETH_CONTEXT_SECTION_PRIORITY_SHIFT 13
#elif defined(__LITTLE_ENDIAN)
u16_t params;
#define XSTORM_FCOE_ETH_CONTEXT_SECTION_VLAN_ID (0xFFF<<0)
#define XSTORM_FCOE_ETH_CONTEXT_SECTION_VLAN_ID_SHIFT 0
#define XSTORM_FCOE_ETH_CONTEXT_SECTION_CFI (0x1<<12)
#define XSTORM_FCOE_ETH_CONTEXT_SECTION_CFI_SHIFT 12
#define XSTORM_FCOE_ETH_CONTEXT_SECTION_PRIORITY (0x7<<13)
#define XSTORM_FCOE_ETH_CONTEXT_SECTION_PRIORITY_SHIFT 13
u16_t reserved_vlan_type ;
#endif
#if defined(__BIG_ENDIAN)
u8_t local_addr_2 ;
u8_t local_addr_3 ;
u8_t local_addr_4 ;
u8_t local_addr_5 ;
#elif defined(__LITTLE_ENDIAN)
u8_t local_addr_5 ;
u8_t local_addr_4 ;
u8_t local_addr_3 ;
u8_t local_addr_2 ;
#endif
};
struct xstorm_fcoe_context_flags
{
u8_t flags;
#define XSTORM_FCOE_CONTEXT_FLAGS_B_PROC_Q (0x3<<0)
#define XSTORM_FCOE_CONTEXT_FLAGS_B_PROC_Q_SHIFT 0
#define XSTORM_FCOE_CONTEXT_FLAGS_B_MID_SEQ (0x1<<2)
#define XSTORM_FCOE_CONTEXT_FLAGS_B_MID_SEQ_SHIFT 2
#define XSTORM_FCOE_CONTEXT_FLAGS_B_BLOCK_SQ (0x1<<3)
#define XSTORM_FCOE_CONTEXT_FLAGS_B_BLOCK_SQ_SHIFT 3
#define XSTORM_FCOE_CONTEXT_FLAGS_B_REC_SUPPORT (0x1<<4)
#define XSTORM_FCOE_CONTEXT_FLAGS_B_REC_SUPPORT_SHIFT 4
#define XSTORM_FCOE_CONTEXT_FLAGS_B_SQ_TOGGLE (0x1<<5)
#define XSTORM_FCOE_CONTEXT_FLAGS_B_SQ_TOGGLE_SHIFT 5
#define XSTORM_FCOE_CONTEXT_FLAGS_B_XFRQ_TOGGLE (0x1<<6)
#define XSTORM_FCOE_CONTEXT_FLAGS_B_XFRQ_TOGGLE_SHIFT 6
#define XSTORM_FCOE_CONTEXT_FLAGS_B_VNTAG_VLAN (0x1<<7)
#define XSTORM_FCOE_CONTEXT_FLAGS_B_VNTAG_VLAN_SHIFT 7
};
struct xstorm_fcoe_tce
{
struct fcoe_tce_tx_only txwr ;
struct fcoe_tce_tx_wr_rx_rd txwr_rxrd ;
};
struct xstorm_fcoe_fcp_data
{
u32_t io_rem ;
#if defined(__BIG_ENDIAN)
u16_t cached_sge_off;
u8_t cached_num_sges ;
u8_t cached_sge_idx ;
#elif defined(__LITTLE_ENDIAN)
u8_t cached_sge_idx ;
u8_t cached_num_sges ;
u16_t cached_sge_off;
#endif
u32_t buf_addr_hi_0 ;
u32_t buf_addr_lo_0 ;
#if defined(__BIG_ENDIAN)
u16_t num_of_pending_tasks ;
u16_t buf_len_0 ;
#elif defined(__LITTLE_ENDIAN)
u16_t buf_len_0 ;
u16_t num_of_pending_tasks ;
#endif
u32_t buf_addr_hi_1 ;
u32_t buf_addr_lo_1 ;
#if defined(__BIG_ENDIAN)
u16_t task_pbe_idx_off ;
u16_t buf_len_1 ;
#elif defined(__LITTLE_ENDIAN)
u16_t buf_len_1 ;
u16_t task_pbe_idx_off ;
#endif
u32_t buf_addr_hi_2 ;
u32_t buf_addr_lo_2 ;
#if defined(__BIG_ENDIAN)
u16_t ox_id ;
u16_t buf_len_2 ;
#elif defined(__LITTLE_ENDIAN)
u16_t buf_len_2 ;
u16_t ox_id ;
#endif
};
struct xstorm_fcoe_context_flags_cont
{
u8_t flags;
#define XSTORM_FCOE_CONTEXT_FLAGS_CONT_B_CONFQ_TOGGLE (0x1<<0)
#define XSTORM_FCOE_CONTEXT_FLAGS_CONT_B_CONFQ_TOGGLE_SHIFT 0
#define XSTORM_FCOE_CONTEXT_FLAGS_CONT_VLAN_FLAG (0x1<<1)
#define XSTORM_FCOE_CONTEXT_FLAGS_CONT_VLAN_FLAG_SHIFT 1
#define XSTORM_FCOE_CONTEXT_FLAGS_CONT_RESERVED (0x3F<<2)
#define XSTORM_FCOE_CONTEXT_FLAGS_CONT_RESERVED_SHIFT 2
};
struct xstorm_fcoe_vlan_conf
{
u8_t vlan_conf;
#define XSTORM_FCOE_VLAN_CONF_PRIORITY (0x7<<0)
#define XSTORM_FCOE_VLAN_CONF_PRIORITY_SHIFT 0
#define XSTORM_FCOE_VLAN_CONF_INNER_VLAN_FLAG (0x1<<3)
#define XSTORM_FCOE_VLAN_CONF_INNER_VLAN_FLAG_SHIFT 3
#define XSTORM_FCOE_VLAN_CONF_RESERVED (0xF<<4)
#define XSTORM_FCOE_VLAN_CONF_RESERVED_SHIFT 4
};
struct fcoe_vlan_fields
{
u16_t fields;
#define FCOE_VLAN_FIELDS_VID (0xFFF<<0)
#define FCOE_VLAN_FIELDS_VID_SHIFT 0
#define FCOE_VLAN_FIELDS_CLI (0x1<<12)
#define FCOE_VLAN_FIELDS_CLI_SHIFT 12
#define FCOE_VLAN_FIELDS_PRI (0x7<<13)
#define FCOE_VLAN_FIELDS_PRI_SHIFT 13
};
union fcoe_vlan_field_union
{
struct fcoe_vlan_fields fields ;
u16_t val ;
};
union fcoe_vlan_vif_field_union
{
union fcoe_vlan_field_union vlan ;
u16_t vif ;
};
struct xstorm_fcoe_context_section
{
#if defined(__BIG_ENDIAN)
u8_t cs_ctl ;
u8_t s_id[3] ;
#elif defined(__LITTLE_ENDIAN)
u8_t s_id[3] ;
u8_t cs_ctl ;
#endif
#if defined(__BIG_ENDIAN)
u8_t rctl ;
u8_t d_id[3] ;
#elif defined(__LITTLE_ENDIAN)
u8_t d_id[3] ;
u8_t rctl ;
#endif
#if defined(__BIG_ENDIAN)
u16_t sq_xfrq_lcq_confq_size ;
u16_t tx_max_fc_pay_len ;
#elif defined(__LITTLE_ENDIAN)
u16_t tx_max_fc_pay_len ;
u16_t sq_xfrq_lcq_confq_size ;
#endif
u32_t lcq_prod ;
#if defined(__BIG_ENDIAN)
u8_t port_id ;
u8_t func_id ;
u8_t seq_id ;
struct xstorm_fcoe_context_flags tx_flags;
#elif defined(__LITTLE_ENDIAN)
struct xstorm_fcoe_context_flags tx_flags;
u8_t seq_id ;
u8_t func_id ;
u8_t port_id ;
#endif
#if defined(__BIG_ENDIAN)
u16_t mtu ;
u8_t func_mode ;
u8_t vnic_id ;
#elif defined(__LITTLE_ENDIAN)
u8_t vnic_id ;
u8_t func_mode ;
u16_t mtu ;
#endif
struct regpair_t confq_curr_page_addr ;
struct fcoe_cached_wqe cached_wqe[8] ;
struct regpair_t lcq_base_addr ;
struct xstorm_fcoe_tce tce ;
struct xstorm_fcoe_fcp_data fcp_data ;
#if defined(__BIG_ENDIAN)
u8_t tx_max_conc_seqs_c3 ;
struct xstorm_fcoe_context_flags_cont tx_flags_cont;
u8_t dcb_val ;
u8_t data_pb_cmd_size ;
#elif defined(__LITTLE_ENDIAN)
u8_t data_pb_cmd_size ;
u8_t dcb_val ;
struct xstorm_fcoe_context_flags_cont tx_flags_cont;
u8_t tx_max_conc_seqs_c3 ;
#endif
#if defined(__BIG_ENDIAN)
u16_t fcoe_tx_stat_params_ram_addr ;
u16_t fcoe_tx_fc_seq_ram_addr ;
#elif defined(__LITTLE_ENDIAN)
u16_t fcoe_tx_fc_seq_ram_addr ;
u16_t fcoe_tx_stat_params_ram_addr ;
#endif
#if defined(__BIG_ENDIAN)
u8_t fcp_cmd_line_credit;
u8_t eth_hdr_size ;
u16_t pbf_addr ;
#elif defined(__LITTLE_ENDIAN)
u16_t pbf_addr ;
u8_t eth_hdr_size ;
u8_t fcp_cmd_line_credit;
#endif
#if defined(__BIG_ENDIAN)
union fcoe_vlan_vif_field_union multi_func_val ;
u8_t page_log_size ;
struct xstorm_fcoe_vlan_conf orig_vlan_conf ;
#elif defined(__LITTLE_ENDIAN)
struct xstorm_fcoe_vlan_conf orig_vlan_conf ;
u8_t page_log_size ;
union fcoe_vlan_vif_field_union multi_func_val ;
#endif
#if defined(__BIG_ENDIAN)
u16_t fcp_cmd_frame_size ;
u16_t pbf_addr_ff ;
#elif defined(__LITTLE_ENDIAN)
u16_t pbf_addr_ff ;
u16_t fcp_cmd_frame_size ;
#endif
#if defined(__BIG_ENDIAN)
u8_t vlan_num ;
u8_t cos ;
u8_t cache_xfrq_cons ;
u8_t cache_sq_cons ;
#elif defined(__LITTLE_ENDIAN)
u8_t cache_sq_cons ;
u8_t cache_xfrq_cons ;
u8_t cos ;
u8_t vlan_num ;
#endif
u32_t verify_tx_seq ;
};
struct xstorm_fcoe_st_context
{
struct xstorm_fcoe_eth_context_section eth;
struct xstorm_fcoe_context_section fcoe;
};
struct fcoe_context
{
struct ustorm_fcoe_st_context ustorm_st_context ;
struct tstorm_fcoe_st_context tstorm_st_context ;
struct xstorm_fcoe_ag_context xstorm_ag_context ;
struct tstorm_fcoe_ag_context tstorm_ag_context ;
struct ustorm_fcoe_ag_context ustorm_ag_context ;
struct timers_block_context timers_context ;
struct xstorm_fcoe_st_context xstorm_st_context ;
};
struct fcoe_init_ramrod_params
{
struct fcoe_kwqe_init1 init_kwqe1;
struct fcoe_kwqe_init2 init_kwqe2;
struct fcoe_kwqe_init3 init_kwqe3;
struct regpair_t eq_pbl_base ;
u32_t eq_pbl_size ;
u32_t reserved2;
u16_t eq_prod ;
u16_t sb_num ;
u8_t sb_id ;
u8_t reserved0;
u16_t reserved1;
};
struct fcoe_stat_ramrod_params
{
struct fcoe_kwqe_stat stat_kwqe;
};
struct iscsi_cq_db_prod_pnd_cmpltn_cnt
{
#if defined(__BIG_ENDIAN)
u16_t cntr ;
u16_t prod ;
#elif defined(__LITTLE_ENDIAN)
u16_t prod ;
u16_t cntr ;
#endif
};
struct iscsi_cq_db_prod_pnd_cmpltn_cnt_arr
{
struct iscsi_cq_db_prod_pnd_cmpltn_cnt prod_pend_comp[8] ;
};
struct iscsi_cq_db_pnd_comp_itt_arr
{
u16_t itt[8] ;
};
struct iscsi_cq_db_sqn_2_notify_arr
{
u16_t sqn[8] ;
};
struct iscsi_cq_db
{
struct iscsi_cq_db_prod_pnd_cmpltn_cnt_arr cq_u_prod_pend_comp_ctr_arr ;
struct iscsi_cq_db_pnd_comp_itt_arr cq_c_pend_comp_itt_arr ;
struct iscsi_cq_db_sqn_2_notify_arr cq_drv_sqn_2_notify_arr ;
u32_t reserved[4] ;
};
union iscsi_kcqe_params
{
u32_t reserved0[4];
};
struct iscsi_kcqe
{
u32_t iscsi_conn_id ;
u32_t completion_status ;
u32_t iscsi_conn_context_id ;
union iscsi_kcqe_params params ;
#if defined(__BIG_ENDIAN)
u8_t flags;
#define ISCSI_KCQE_RESERVED0 (0x7<<0)
#define ISCSI_KCQE_RESERVED0_SHIFT 0
#define ISCSI_KCQE_RAMROD_COMPLETION (0x1<<3)
#define ISCSI_KCQE_RAMROD_COMPLETION_SHIFT 3
#define ISCSI_KCQE_LAYER_CODE (0x7<<4)
#define ISCSI_KCQE_LAYER_CODE_SHIFT 4
#define ISCSI_KCQE_LINKED_WITH_NEXT (0x1<<7)
#define ISCSI_KCQE_LINKED_WITH_NEXT_SHIFT 7
u8_t op_code ;
u16_t qe_self_seq ;
#elif defined(__LITTLE_ENDIAN)
u16_t qe_self_seq ;
u8_t op_code ;
u8_t flags;
#define ISCSI_KCQE_RESERVED0 (0x7<<0)
#define ISCSI_KCQE_RESERVED0_SHIFT 0
#define ISCSI_KCQE_RAMROD_COMPLETION (0x1<<3)
#define ISCSI_KCQE_RAMROD_COMPLETION_SHIFT 3
#define ISCSI_KCQE_LAYER_CODE (0x7<<4)
#define ISCSI_KCQE_LAYER_CODE_SHIFT 4
#define ISCSI_KCQE_LINKED_WITH_NEXT (0x1<<7)
#define ISCSI_KCQE_LINKED_WITH_NEXT_SHIFT 7
#endif
};
struct iscsi_kwqe_header
{
#if defined(__BIG_ENDIAN)
u8_t flags;
#define ISCSI_KWQE_HEADER_RESERVED0 (0xF<<0)
#define ISCSI_KWQE_HEADER_RESERVED0_SHIFT 0
#define ISCSI_KWQE_HEADER_LAYER_CODE (0x7<<4)
#define ISCSI_KWQE_HEADER_LAYER_CODE_SHIFT 4
#define ISCSI_KWQE_HEADER_RESERVED1 (0x1<<7)
#define ISCSI_KWQE_HEADER_RESERVED1_SHIFT 7
u8_t op_code ;
#elif defined(__LITTLE_ENDIAN)
u8_t op_code ;
u8_t flags;
#define ISCSI_KWQE_HEADER_RESERVED0 (0xF<<0)
#define ISCSI_KWQE_HEADER_RESERVED0_SHIFT 0
#define ISCSI_KWQE_HEADER_LAYER_CODE (0x7<<4)
#define ISCSI_KWQE_HEADER_LAYER_CODE_SHIFT 4
#define ISCSI_KWQE_HEADER_RESERVED1 (0x1<<7)
#define ISCSI_KWQE_HEADER_RESERVED1_SHIFT 7
#endif
};
struct iscsi_kwqe_init1
{
#if defined(__BIG_ENDIAN)
struct iscsi_kwqe_header hdr ;
u8_t hsi_version ;
u8_t num_cqs ;
#elif defined(__LITTLE_ENDIAN)
u8_t num_cqs ;
u8_t hsi_version ;
struct iscsi_kwqe_header hdr ;
#endif
u32_t dummy_buffer_addr_lo ;
u32_t dummy_buffer_addr_hi ;
#if defined(__BIG_ENDIAN)
u16_t num_ccells_per_conn ;
u16_t num_tasks_per_conn ;
#elif defined(__LITTLE_ENDIAN)
u16_t num_tasks_per_conn ;
u16_t num_ccells_per_conn ;
#endif
#if defined(__BIG_ENDIAN)
u16_t sq_wqes_per_page ;
u16_t sq_num_wqes ;
#elif defined(__LITTLE_ENDIAN)
u16_t sq_num_wqes ;
u16_t sq_wqes_per_page ;
#endif
#if defined(__BIG_ENDIAN)
u8_t cq_log_wqes_per_page ;
u8_t flags;
#define ISCSI_KWQE_INIT1_PAGE_SIZE (0xF<<0)
#define ISCSI_KWQE_INIT1_PAGE_SIZE_SHIFT 0
#define ISCSI_KWQE_INIT1_DELAYED_ACK_ENABLE (0x1<<4)
#define ISCSI_KWQE_INIT1_DELAYED_ACK_ENABLE_SHIFT 4
#define ISCSI_KWQE_INIT1_KEEP_ALIVE_ENABLE (0x1<<5)
#define ISCSI_KWQE_INIT1_KEEP_ALIVE_ENABLE_SHIFT 5
#define ISCSI_KWQE_INIT1_RESERVED1 (0x3<<6)
#define ISCSI_KWQE_INIT1_RESERVED1_SHIFT 6
u16_t cq_num_wqes ;
#elif defined(__LITTLE_ENDIAN)
u16_t cq_num_wqes ;
u8_t flags;
#define ISCSI_KWQE_INIT1_PAGE_SIZE (0xF<<0)
#define ISCSI_KWQE_INIT1_PAGE_SIZE_SHIFT 0
#define ISCSI_KWQE_INIT1_DELAYED_ACK_ENABLE (0x1<<4)
#define ISCSI_KWQE_INIT1_DELAYED_ACK_ENABLE_SHIFT 4
#define ISCSI_KWQE_INIT1_KEEP_ALIVE_ENABLE (0x1<<5)
#define ISCSI_KWQE_INIT1_KEEP_ALIVE_ENABLE_SHIFT 5
#define ISCSI_KWQE_INIT1_RESERVED1 (0x3<<6)
#define ISCSI_KWQE_INIT1_RESERVED1_SHIFT 6
u8_t cq_log_wqes_per_page ;
#endif
#if defined(__BIG_ENDIAN)
u16_t cq_num_pages ;
u16_t sq_num_pages ;
#elif defined(__LITTLE_ENDIAN)
u16_t sq_num_pages ;
u16_t cq_num_pages ;
#endif
#if defined(__BIG_ENDIAN)
u16_t rq_buffer_size ;
u16_t rq_num_wqes ;
#elif defined(__LITTLE_ENDIAN)
u16_t rq_num_wqes ;
u16_t rq_buffer_size ;
#endif
};
struct iscsi_kwqe_init2
{
#if defined(__BIG_ENDIAN)
struct iscsi_kwqe_header hdr ;
u16_t max_cq_sqn ;
#elif defined(__LITTLE_ENDIAN)
u16_t max_cq_sqn ;
struct iscsi_kwqe_header hdr ;
#endif
u32_t error_bit_map[2] ;
u32_t tcp_keepalive ;
u32_t reserved1[4];
};
struct iscsi_kwqe_conn_offload1
{
#if defined(__BIG_ENDIAN)
struct iscsi_kwqe_header hdr ;
u16_t iscsi_conn_id ;
#elif defined(__LITTLE_ENDIAN)
u16_t iscsi_conn_id ;
struct iscsi_kwqe_header hdr ;
#endif
u32_t sq_page_table_addr_lo ;
u32_t sq_page_table_addr_hi ;
u32_t cq_page_table_addr_lo ;
u32_t cq_page_table_addr_hi ;
u32_t reserved0[3];
};
struct iscsi_pte
{
u32_t hi ;
u32_t lo ;
};
struct iscsi_kwqe_conn_offload2
{
#if defined(__BIG_ENDIAN)
struct iscsi_kwqe_header hdr ;
u16_t reserved0;
#elif defined(__LITTLE_ENDIAN)
u16_t reserved0;
struct iscsi_kwqe_header hdr ;
#endif
u32_t rq_page_table_addr_lo ;
u32_t rq_page_table_addr_hi ;
struct iscsi_pte sq_first_pte ;
struct iscsi_pte cq_first_pte ;
u32_t num_additional_wqes ;
};
struct iscsi_kwqe_conn_offload3
{
#if defined(__BIG_ENDIAN)
struct iscsi_kwqe_header hdr ;
u16_t reserved0;
#elif defined(__LITTLE_ENDIAN)
u16_t reserved0;
struct iscsi_kwqe_header hdr ;
#endif
u32_t reserved1;
struct iscsi_pte qp_first_pte[3] ;
};
struct iscsi_kwqe_conn_update
{
#if defined(__BIG_ENDIAN)
struct iscsi_kwqe_header hdr ;
u16_t reserved0;
#elif defined(__LITTLE_ENDIAN)
u16_t reserved0;
struct iscsi_kwqe_header hdr ;
#endif
#if defined(__BIG_ENDIAN)
u8_t session_error_recovery_level ;
u8_t max_outstanding_r2ts ;
u8_t reserved2;
u8_t conn_flags;
#define ISCSI_KWQE_CONN_UPDATE_HEADER_DIGEST (0x1<<0)
#define ISCSI_KWQE_CONN_UPDATE_HEADER_DIGEST_SHIFT 0
#define ISCSI_KWQE_CONN_UPDATE_DATA_DIGEST (0x1<<1)
#define ISCSI_KWQE_CONN_UPDATE_DATA_DIGEST_SHIFT 1
#define ISCSI_KWQE_CONN_UPDATE_INITIAL_R2T (0x1<<2)
#define ISCSI_KWQE_CONN_UPDATE_INITIAL_R2T_SHIFT 2
#define ISCSI_KWQE_CONN_UPDATE_IMMEDIATE_DATA (0x1<<3)
#define ISCSI_KWQE_CONN_UPDATE_IMMEDIATE_DATA_SHIFT 3
#define ISCSI_KWQE_CONN_UPDATE_OOO_SUPPORT_MODE (0x3<<4)
#define ISCSI_KWQE_CONN_UPDATE_OOO_SUPPORT_MODE_SHIFT 4
#define ISCSI_KWQE_CONN_UPDATE_RESERVED1 (0x3<<6)
#define ISCSI_KWQE_CONN_UPDATE_RESERVED1_SHIFT 6
#elif defined(__LITTLE_ENDIAN)
u8_t conn_flags;
#define ISCSI_KWQE_CONN_UPDATE_HEADER_DIGEST (0x1<<0)
#define ISCSI_KWQE_CONN_UPDATE_HEADER_DIGEST_SHIFT 0
#define ISCSI_KWQE_CONN_UPDATE_DATA_DIGEST (0x1<<1)
#define ISCSI_KWQE_CONN_UPDATE_DATA_DIGEST_SHIFT 1
#define ISCSI_KWQE_CONN_UPDATE_INITIAL_R2T (0x1<<2)
#define ISCSI_KWQE_CONN_UPDATE_INITIAL_R2T_SHIFT 2
#define ISCSI_KWQE_CONN_UPDATE_IMMEDIATE_DATA (0x1<<3)
#define ISCSI_KWQE_CONN_UPDATE_IMMEDIATE_DATA_SHIFT 3
#define ISCSI_KWQE_CONN_UPDATE_OOO_SUPPORT_MODE (0x3<<4)
#define ISCSI_KWQE_CONN_UPDATE_OOO_SUPPORT_MODE_SHIFT 4
#define ISCSI_KWQE_CONN_UPDATE_RESERVED1 (0x3<<6)
#define ISCSI_KWQE_CONN_UPDATE_RESERVED1_SHIFT 6
u8_t reserved2;
u8_t max_outstanding_r2ts ;
u8_t session_error_recovery_level ;
#endif
u32_t context_id ;
u32_t max_send_pdu_length ;
u32_t max_recv_pdu_length ;
u32_t first_burst_length ;
u32_t max_burst_length ;
u32_t exp_stat_sn ;
};
struct iscsi_kwqe_conn_destroy
{
#if defined(__BIG_ENDIAN)
struct iscsi_kwqe_header hdr ;
u16_t iscsi_conn_id ;
#elif defined(__LITTLE_ENDIAN)
u16_t iscsi_conn_id ;
struct iscsi_kwqe_header hdr ;
#endif
u32_t context_id ;
u32_t reserved1[6];
};
union iscsi_kwqe
{
struct iscsi_kwqe_init1 init1;
struct iscsi_kwqe_init2 init2;
struct iscsi_kwqe_conn_offload1 conn_offload1;
struct iscsi_kwqe_conn_offload2 conn_offload2;
struct iscsi_kwqe_conn_offload3 conn_offload3;
struct iscsi_kwqe_conn_update conn_update;
struct iscsi_kwqe_conn_destroy conn_destroy;
};
struct iscsi_rq_db
{
#if defined(__BIG_ENDIAN)
u16_t reserved1;
u16_t rq_prod;
#elif defined(__LITTLE_ENDIAN)
u16_t rq_prod;
u16_t reserved1;
#endif
u32_t __fw_hdr[15] ;
};
struct iscsi_sq_db
{
#if defined(__BIG_ENDIAN)
u16_t reserved0 ;
u16_t sq_prod;
#elif defined(__LITTLE_ENDIAN)
u16_t sq_prod;
u16_t reserved0 ;
#endif
u32_t reserved1[3] ;
};
struct tstorm_l5cm_tcp_flags
{
u16_t flags;
#define TSTORM_L5CM_TCP_FLAGS_VLAN_ID (0xFFF<<0)
#define TSTORM_L5CM_TCP_FLAGS_VLAN_ID_SHIFT 0
#define TSTORM_L5CM_TCP_FLAGS_DELAYED_ACK_EN (0x1<<12)
#define TSTORM_L5CM_TCP_FLAGS_DELAYED_ACK_EN_SHIFT 12
#define TSTORM_L5CM_TCP_FLAGS_TS_ENABLED (0x1<<13)
#define TSTORM_L5CM_TCP_FLAGS_TS_ENABLED_SHIFT 13
#define TSTORM_L5CM_TCP_FLAGS_RSRV1 (0x3<<14)
#define TSTORM_L5CM_TCP_FLAGS_RSRV1_SHIFT 14
};
struct cstorm_iscsi_st_context
{
struct iscsi_cq_db_prod_pnd_cmpltn_cnt_arr cq_c_prod_pend_comp_ctr_arr ;
struct iscsi_cq_db_sqn_2_notify_arr cq_c_prod_sqn_arr ;
struct iscsi_cq_db_sqn_2_notify_arr cq_c_sqn_2_notify_arr ;
struct regpair_t hq_pbl_base ;
struct regpair_t hq_curr_pbe ;
struct regpair_t task_pbl_base ;
struct regpair_t cq_db_base ;
#if defined(__BIG_ENDIAN)
u16_t hq_bd_itt ;
u16_t iscsi_conn_id;
#elif defined(__LITTLE_ENDIAN)
u16_t iscsi_conn_id;
u16_t hq_bd_itt ;
#endif
u32_t hq_bd_data_segment_len ;
u32_t hq_bd_buffer_offset ;
#if defined(__BIG_ENDIAN)
u8_t rsrv;
u8_t cq_proc_en_bit_map ;
u8_t cq_pend_comp_itt_valid_bit_map ;
u8_t hq_bd_opcode ;
#elif defined(__LITTLE_ENDIAN)
u8_t hq_bd_opcode ;
u8_t cq_pend_comp_itt_valid_bit_map ;
u8_t cq_proc_en_bit_map ;
u8_t rsrv;
#endif
u32_t hq_tcp_seq ;
#if defined(__BIG_ENDIAN)
u16_t flags;
#define CSTORM_ISCSI_ST_CONTEXT_DATA_DIGEST_EN (0x1<<0)
#define CSTORM_ISCSI_ST_CONTEXT_DATA_DIGEST_EN_SHIFT 0
#define CSTORM_ISCSI_ST_CONTEXT_HDR_DIGEST_EN (0x1<<1)
#define CSTORM_ISCSI_ST_CONTEXT_HDR_DIGEST_EN_SHIFT 1
#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_CTXT_VALID (0x1<<2)
#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_CTXT_VALID_SHIFT 2
#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_LCL_CMPLN_FLG (0x1<<3)
#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_LCL_CMPLN_FLG_SHIFT 3
#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_WRITE_TASK (0x1<<4)
#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_WRITE_TASK_SHIFT 4
#define CSTORM_ISCSI_ST_CONTEXT_CTRL_FLAGS_RSRV (0x7FF<<5)
#define CSTORM_ISCSI_ST_CONTEXT_CTRL_FLAGS_RSRV_SHIFT 5
u16_t hq_cons ;
#elif defined(__LITTLE_ENDIAN)
u16_t hq_cons ;
u16_t flags;
#define CSTORM_ISCSI_ST_CONTEXT_DATA_DIGEST_EN (0x1<<0)
#define CSTORM_ISCSI_ST_CONTEXT_DATA_DIGEST_EN_SHIFT 0
#define CSTORM_ISCSI_ST_CONTEXT_HDR_DIGEST_EN (0x1<<1)
#define CSTORM_ISCSI_ST_CONTEXT_HDR_DIGEST_EN_SHIFT 1
#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_CTXT_VALID (0x1<<2)
#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_CTXT_VALID_SHIFT 2
#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_LCL_CMPLN_FLG (0x1<<3)
#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_LCL_CMPLN_FLG_SHIFT 3
#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_WRITE_TASK (0x1<<4)
#define CSTORM_ISCSI_ST_CONTEXT_HQ_BD_WRITE_TASK_SHIFT 4
#define CSTORM_ISCSI_ST_CONTEXT_CTRL_FLAGS_RSRV (0x7FF<<5)
#define CSTORM_ISCSI_ST_CONTEXT_CTRL_FLAGS_RSRV_SHIFT 5
#endif
struct regpair_t rsrv1;
};
struct iscsi_cmd_pdu_hdr_little_endian
{
#if defined(__BIG_ENDIAN)
u8_t opcode;
u8_t op_attr;
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_ATTRIBUTES (0x7<<0)
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_ATTRIBUTES_SHIFT 0
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_RSRV1 (0x3<<3)
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 3
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_WRITE_FLAG (0x1<<5)
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_WRITE_FLAG_SHIFT 5
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_READ_FLAG (0x1<<6)
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_READ_FLAG_SHIFT 6
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG (0x1<<7)
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG_SHIFT 7
u16_t rsrv0;
#elif defined(__LITTLE_ENDIAN)
u16_t rsrv0;
u8_t op_attr;
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_ATTRIBUTES (0x7<<0)
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_ATTRIBUTES_SHIFT 0
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_RSRV1 (0x3<<3)
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 3
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_WRITE_FLAG (0x1<<5)
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_WRITE_FLAG_SHIFT 5
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_READ_FLAG (0x1<<6)
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_READ_FLAG_SHIFT 6
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG (0x1<<7)
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG_SHIFT 7
u8_t opcode;
#endif
u32_t data_fields;
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
#define ISCSI_CMD_PDU_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
struct regpair_t lun;
u32_t itt;
u32_t expected_data_transfer_length;
u32_t cmd_sn;
u32_t exp_stat_sn;
u32_t scsi_command_block[4];
};
struct iscsi_conn_buf
{
struct regpair_t reserved[8];
};
struct ustorm_iscsi_rq_db
{
struct regpair_t pbl_base ;
struct regpair_t curr_pbe ;
};
struct ustorm_iscsi_r2tq_db
{
struct regpair_t pbl_base ;
struct regpair_t curr_pbe ;
};
struct ustorm_iscsi_cq_db
{
#if defined(__BIG_ENDIAN)
u16_t cq_sn ;
u16_t prod ;
#elif defined(__LITTLE_ENDIAN)
u16_t prod ;
u16_t cq_sn ;
#endif
struct regpair_t curr_pbe ;
};
struct rings_db
{
struct ustorm_iscsi_rq_db rq ;
struct ustorm_iscsi_r2tq_db r2tq ;
struct ustorm_iscsi_cq_db cq[8] ;
#if defined(__BIG_ENDIAN)
u16_t rq_prod ;
u16_t r2tq_prod ;
#elif defined(__LITTLE_ENDIAN)
u16_t r2tq_prod ;
u16_t rq_prod ;
#endif
struct regpair_t cq_pbl_base ;
};
struct ustorm_iscsi_placement_db
{
u32_t sgl_base_lo ;
u32_t sgl_base_hi ;
u32_t local_sge_0_address_hi ;
u32_t local_sge_0_address_lo ;
#if defined(__BIG_ENDIAN)
u16_t curr_sge_offset ;
u16_t local_sge_0_size ;
#elif defined(__LITTLE_ENDIAN)
u16_t local_sge_0_size ;
u16_t curr_sge_offset ;
#endif
u32_t local_sge_1_address_hi ;
u32_t local_sge_1_address_lo ;
#if defined(__BIG_ENDIAN)
u8_t exp_padding_2b ;
u8_t nal_len_3b ;
u16_t local_sge_1_size ;
#elif defined(__LITTLE_ENDIAN)
u16_t local_sge_1_size ;
u8_t nal_len_3b ;
u8_t exp_padding_2b ;
#endif
#if defined(__BIG_ENDIAN)
u8_t sgl_size ;
u8_t local_sge_index_2b ;
u16_t reserved7;
#elif defined(__LITTLE_ENDIAN)
u16_t reserved7;
u8_t local_sge_index_2b ;
u8_t sgl_size ;
#endif
u32_t rem_pdu ;
u32_t place_db_bitfield_1;
#define USTORM_ISCSI_PLACEMENT_DB_REM_PDU_PAYLOAD (0xFFFFFF<<0)
#define USTORM_ISCSI_PLACEMENT_DB_REM_PDU_PAYLOAD_SHIFT 0
#define USTORM_ISCSI_PLACEMENT_DB_CQ_ID (0xFF<<24)
#define USTORM_ISCSI_PLACEMENT_DB_CQ_ID_SHIFT 24
u32_t place_db_bitfield_2;
#define USTORM_ISCSI_PLACEMENT_DB_BYTES_2_TRUNCATE (0xFFFFFF<<0)
#define USTORM_ISCSI_PLACEMENT_DB_BYTES_2_TRUNCATE_SHIFT 0
#define USTORM_ISCSI_PLACEMENT_DB_HOST_SGE_INDEX (0xFF<<24)
#define USTORM_ISCSI_PLACEMENT_DB_HOST_SGE_INDEX_SHIFT 24
u32_t nal;
#define USTORM_ISCSI_PLACEMENT_DB_REM_SGE_SIZE (0xFFFFFF<<0)
#define USTORM_ISCSI_PLACEMENT_DB_REM_SGE_SIZE_SHIFT 0
#define USTORM_ISCSI_PLACEMENT_DB_EXP_DIGEST_3B (0xFF<<24)
#define USTORM_ISCSI_PLACEMENT_DB_EXP_DIGEST_3B_SHIFT 24
};
struct ustorm_iscsi_st_context
{
u32_t exp_stat_sn ;
u32_t exp_data_sn ;
struct rings_db ring ;
struct regpair_t task_pbl_base ;
struct regpair_t tce_phy_addr ;
struct ustorm_iscsi_placement_db place_db;
u32_t reserved8 ;
u32_t rem_rcv_len ;
#if defined(__BIG_ENDIAN)
u16_t hdr_itt ;
u16_t iscsi_conn_id;
#elif defined(__LITTLE_ENDIAN)
u16_t iscsi_conn_id;
u16_t hdr_itt ;
#endif
u32_t nal_bytes ;
#if defined(__BIG_ENDIAN)
u8_t hdr_second_byte_union ;
u8_t bitfield_0;
#define USTORM_ISCSI_ST_CONTEXT_BMIDDLEOFPDU (0x1<<0)
#define USTORM_ISCSI_ST_CONTEXT_BMIDDLEOFPDU_SHIFT 0
#define USTORM_ISCSI_ST_CONTEXT_BFENCECQE (0x1<<1)
#define USTORM_ISCSI_ST_CONTEXT_BFENCECQE_SHIFT 1
#define USTORM_ISCSI_ST_CONTEXT_BRESETCRC (0x1<<2)
#define USTORM_ISCSI_ST_CONTEXT_BRESETCRC_SHIFT 2
#define USTORM_ISCSI_ST_CONTEXT_RESERVED1 (0x1F<<3)
#define USTORM_ISCSI_ST_CONTEXT_RESERVED1_SHIFT 3
u8_t task_pdu_cache_index;
u8_t task_pbe_cache_index;
#elif defined(__LITTLE_ENDIAN)
u8_t task_pbe_cache_index;
u8_t task_pdu_cache_index;
u8_t bitfield_0;
#define USTORM_ISCSI_ST_CONTEXT_BMIDDLEOFPDU (0x1<<0)
#define USTORM_ISCSI_ST_CONTEXT_BMIDDLEOFPDU_SHIFT 0
#define USTORM_ISCSI_ST_CONTEXT_BFENCECQE (0x1<<1)
#define USTORM_ISCSI_ST_CONTEXT_BFENCECQE_SHIFT 1
#define USTORM_ISCSI_ST_CONTEXT_BRESETCRC (0x1<<2)
#define USTORM_ISCSI_ST_CONTEXT_BRESETCRC_SHIFT 2
#define USTORM_ISCSI_ST_CONTEXT_RESERVED1 (0x1F<<3)
#define USTORM_ISCSI_ST_CONTEXT_RESERVED1_SHIFT 3
u8_t hdr_second_byte_union ;
#endif
#if defined(__BIG_ENDIAN)
u16_t reserved3 ;
u8_t reserved2 ;
u8_t acDecrement ;
#elif defined(__LITTLE_ENDIAN)
u8_t acDecrement ;
u8_t reserved2 ;
u16_t reserved3 ;
#endif
u32_t task_stat ;
#if defined(__BIG_ENDIAN)
u8_t hdr_opcode ;
u8_t num_cqs ;
u16_t reserved5 ;
#elif defined(__LITTLE_ENDIAN)
u16_t reserved5 ;
u8_t num_cqs ;
u8_t hdr_opcode ;
#endif
u32_t negotiated_rx;
#define USTORM_ISCSI_ST_CONTEXT_MAX_RECV_PDU_LENGTH (0xFFFFFF<<0)
#define USTORM_ISCSI_ST_CONTEXT_MAX_RECV_PDU_LENGTH_SHIFT 0
#define USTORM_ISCSI_ST_CONTEXT_MAX_OUTSTANDING_R2TS (0xFF<<24)
#define USTORM_ISCSI_ST_CONTEXT_MAX_OUTSTANDING_R2TS_SHIFT 24
u32_t negotiated_rx_and_flags;
#define USTORM_ISCSI_ST_CONTEXT_MAX_BURST_LENGTH (0xFFFFFF<<0)
#define USTORM_ISCSI_ST_CONTEXT_MAX_BURST_LENGTH_SHIFT 0
#define USTORM_ISCSI_ST_CONTEXT_B_CQE_POSTED_OR_HEADER_CACHED (0x1<<24)
#define USTORM_ISCSI_ST_CONTEXT_B_CQE_POSTED_OR_HEADER_CACHED_SHIFT 24
#define USTORM_ISCSI_ST_CONTEXT_B_HDR_DIGEST_EN (0x1<<25)
#define USTORM_ISCSI_ST_CONTEXT_B_HDR_DIGEST_EN_SHIFT 25
#define USTORM_ISCSI_ST_CONTEXT_B_DATA_DIGEST_EN (0x1<<26)
#define USTORM_ISCSI_ST_CONTEXT_B_DATA_DIGEST_EN_SHIFT 26
#define USTORM_ISCSI_ST_CONTEXT_B_PROTOCOL_ERROR (0x1<<27)
#define USTORM_ISCSI_ST_CONTEXT_B_PROTOCOL_ERROR_SHIFT 27
#define USTORM_ISCSI_ST_CONTEXT_B_TASK_VALID (0x1<<28)
#define USTORM_ISCSI_ST_CONTEXT_B_TASK_VALID_SHIFT 28
#define USTORM_ISCSI_ST_CONTEXT_TASK_TYPE (0x3<<29)
#define USTORM_ISCSI_ST_CONTEXT_TASK_TYPE_SHIFT 29
#define USTORM_ISCSI_ST_CONTEXT_B_ALL_DATA_ACKED (0x1<<31)
#define USTORM_ISCSI_ST_CONTEXT_B_ALL_DATA_ACKED_SHIFT 31
};
struct tstorm_tcp_st_context_section
{
u32_t flags1;
#define TSTORM_TCP_ST_CONTEXT_SECTION_RTT_SRTT (0xFFFFFF<<0)
#define TSTORM_TCP_ST_CONTEXT_SECTION_RTT_SRTT_SHIFT 0
#define TSTORM_TCP_ST_CONTEXT_SECTION_PAWS_INVALID (0x1<<24)
#define TSTORM_TCP_ST_CONTEXT_SECTION_PAWS_INVALID_SHIFT 24
#define TSTORM_TCP_ST_CONTEXT_SECTION_TIMESTAMP_EXISTS (0x1<<25)
#define TSTORM_TCP_ST_CONTEXT_SECTION_TIMESTAMP_EXISTS_SHIFT 25
#define TSTORM_TCP_ST_CONTEXT_SECTION_RESERVED0 (0x1<<26)
#define TSTORM_TCP_ST_CONTEXT_SECTION_RESERVED0_SHIFT 26
#define TSTORM_TCP_ST_CONTEXT_SECTION_STOP_RX_PAYLOAD (0x1<<27)
#define TSTORM_TCP_ST_CONTEXT_SECTION_STOP_RX_PAYLOAD_SHIFT 27
#define TSTORM_TCP_ST_CONTEXT_SECTION_KA_ENABLED (0x1<<28)
#define TSTORM_TCP_ST_CONTEXT_SECTION_KA_ENABLED_SHIFT 28
#define TSTORM_TCP_ST_CONTEXT_SECTION_FIRST_RTO_ESTIMATE (0x1<<29)
#define TSTORM_TCP_ST_CONTEXT_SECTION_FIRST_RTO_ESTIMATE_SHIFT 29
#define TSTORM_TCP_ST_CONTEXT_SECTION_MAX_SEG_RETRANSMIT_EN (0x1<<30)
#define TSTORM_TCP_ST_CONTEXT_SECTION_MAX_SEG_RETRANSMIT_EN_SHIFT 30
#define TSTORM_TCP_ST_CONTEXT_SECTION_LAST_ISLE_HAS_FIN (0x1<<31)
#define TSTORM_TCP_ST_CONTEXT_SECTION_LAST_ISLE_HAS_FIN_SHIFT 31
u32_t flags2;
#define TSTORM_TCP_ST_CONTEXT_SECTION_RTT_VARIATION (0xFFFFFF<<0)
#define TSTORM_TCP_ST_CONTEXT_SECTION_RTT_VARIATION_SHIFT 0
#define TSTORM_TCP_ST_CONTEXT_SECTION_DA_EN (0x1<<24)
#define TSTORM_TCP_ST_CONTEXT_SECTION_DA_EN_SHIFT 24
#define TSTORM_TCP_ST_CONTEXT_SECTION_DA_COUNTER_EN (0x1<<25)
#define TSTORM_TCP_ST_CONTEXT_SECTION_DA_COUNTER_EN_SHIFT 25
#define __TSTORM_TCP_ST_CONTEXT_SECTION_KA_PROBE_SENT (0x1<<26)
#define __TSTORM_TCP_ST_CONTEXT_SECTION_KA_PROBE_SENT_SHIFT 26
#define __TSTORM_TCP_ST_CONTEXT_SECTION_PERSIST_PROBE_SENT (0x1<<27)
#define __TSTORM_TCP_ST_CONTEXT_SECTION_PERSIST_PROBE_SENT_SHIFT 27
#define TSTORM_TCP_ST_CONTEXT_SECTION_UPDATE_L2_STATSTICS (0x1<<28)
#define TSTORM_TCP_ST_CONTEXT_SECTION_UPDATE_L2_STATSTICS_SHIFT 28
#define TSTORM_TCP_ST_CONTEXT_SECTION_UPDATE_L4_STATSTICS (0x1<<29)
#define TSTORM_TCP_ST_CONTEXT_SECTION_UPDATE_L4_STATSTICS_SHIFT 29
#define __TSTORM_TCP_ST_CONTEXT_SECTION_IN_WINDOW_RST_ATTACK (0x1<<30)
#define __TSTORM_TCP_ST_CONTEXT_SECTION_IN_WINDOW_RST_ATTACK_SHIFT 30
#define __TSTORM_TCP_ST_CONTEXT_SECTION_IN_WINDOW_SYN_ATTACK (0x1<<31)
#define __TSTORM_TCP_ST_CONTEXT_SECTION_IN_WINDOW_SYN_ATTACK_SHIFT 31
#if defined(__BIG_ENDIAN)
u16_t mss;
u8_t tcp_sm_state ;
u8_t rto_exp ;
#elif defined(__LITTLE_ENDIAN)
u8_t rto_exp ;
u8_t tcp_sm_state ;
u16_t mss;
#endif
u32_t rcv_nxt ;
u32_t timestamp_recent ;
u32_t timestamp_recent_time ;
u32_t cwnd ;
u32_t ss_thresh ;
u32_t cwnd_accum ;
u32_t prev_seg_seq ;
u32_t expected_rel_seq ;
u32_t recover ;
#if defined(__BIG_ENDIAN)
u8_t retransmit_count ;
u8_t ka_max_probe_count ;
u8_t persist_probe_count ;
u8_t ka_probe_count ;
#elif defined(__LITTLE_ENDIAN)
u8_t ka_probe_count ;
u8_t persist_probe_count ;
u8_t ka_max_probe_count ;
u8_t retransmit_count ;
#endif
#if defined(__BIG_ENDIAN)
u8_t statistics_counter_id ;
u8_t ooo_support_mode;
u8_t snd_wnd_scale ;
u8_t dup_ack_count ;
#elif defined(__LITTLE_ENDIAN)
u8_t dup_ack_count ;
u8_t snd_wnd_scale ;
u8_t ooo_support_mode;
u8_t statistics_counter_id ;
#endif
u32_t retransmit_start_time ;
u32_t ka_timeout ;
u32_t ka_interval ;
u32_t isle_start_seq ;
u32_t isle_end_seq ;
#if defined(__BIG_ENDIAN)
u16_t second_isle_address ;
u16_t recent_seg_wnd ;
#elif defined(__LITTLE_ENDIAN)
u16_t recent_seg_wnd ;
u16_t second_isle_address ;
#endif
#if defined(__BIG_ENDIAN)
u8_t max_isles_ever_happened ;
u8_t isles_number ;
u16_t last_isle_address ;
#elif defined(__LITTLE_ENDIAN)
u16_t last_isle_address ;
u8_t isles_number ;
u8_t max_isles_ever_happened ;
#endif
u32_t max_rt_time;
#if defined(__BIG_ENDIAN)
u16_t lsb_mac_address ;
u16_t vlan_id ;
#elif defined(__LITTLE_ENDIAN)
u16_t vlan_id ;
u16_t lsb_mac_address ;
#endif
#if defined(__BIG_ENDIAN)
u16_t msb_mac_address ;
u16_t mid_mac_address ;
#elif defined(__LITTLE_ENDIAN)
u16_t mid_mac_address ;
u16_t msb_mac_address ;
#endif
u32_t rightmost_received_seq ;
};
struct iscsi_term_vars
{
u8_t BitMap;
#define ISCSI_TERM_VARS_TCP_STATE (0xF<<0)
#define ISCSI_TERM_VARS_TCP_STATE_SHIFT 0
#define ISCSI_TERM_VARS_FIN_RECEIVED_SBIT (0x1<<4)
#define ISCSI_TERM_VARS_FIN_RECEIVED_SBIT_SHIFT 4
#define ISCSI_TERM_VARS_ACK_ON_FIN_RECEIVED_SBIT (0x1<<5)
#define ISCSI_TERM_VARS_ACK_ON_FIN_RECEIVED_SBIT_SHIFT 5
#define ISCSI_TERM_VARS_TERM_ON_CHIP (0x1<<6)
#define ISCSI_TERM_VARS_TERM_ON_CHIP_SHIFT 6
#define ISCSI_TERM_VARS_RSRV (0x1<<7)
#define ISCSI_TERM_VARS_RSRV_SHIFT 7
};
struct tstorm_iscsi_st_context_section
{
u32_t nalPayload ;
u32_t b2nh ;
#if defined(__BIG_ENDIAN)
u16_t rq_cons ;
u8_t flags;
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_HDR_DIGEST_EN (0x1<<0)
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_HDR_DIGEST_EN_SHIFT 0
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DATA_DIGEST_EN (0x1<<1)
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DATA_DIGEST_EN_SHIFT 1
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_PARTIAL_HEADER (0x1<<2)
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_PARTIAL_HEADER_SHIFT 2
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_FULL_FEATURE (0x1<<3)
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_FULL_FEATURE_SHIFT 3
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DROP_ALL_PDUS (0x1<<4)
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DROP_ALL_PDUS_SHIFT 4
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_NALLEN (0x3<<5)
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_NALLEN_SHIFT 5
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_RSRV0 (0x1<<7)
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_RSRV0_SHIFT 7
u8_t hdr_bytes_2_fetch ;
#elif defined(__LITTLE_ENDIAN)
u8_t hdr_bytes_2_fetch ;
u8_t flags;
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_HDR_DIGEST_EN (0x1<<0)
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_HDR_DIGEST_EN_SHIFT 0
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DATA_DIGEST_EN (0x1<<1)
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DATA_DIGEST_EN_SHIFT 1
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_PARTIAL_HEADER (0x1<<2)
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_PARTIAL_HEADER_SHIFT 2
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_FULL_FEATURE (0x1<<3)
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_FULL_FEATURE_SHIFT 3
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DROP_ALL_PDUS (0x1<<4)
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_B_DROP_ALL_PDUS_SHIFT 4
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_NALLEN (0x3<<5)
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_NALLEN_SHIFT 5
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_RSRV0 (0x1<<7)
#define TSTORM_ISCSI_ST_CONTEXT_SECTION_RSRV0_SHIFT 7
u16_t rq_cons ;
#endif
struct regpair_t rq_db_phy_addr;
#if defined(__BIG_ENDIAN)
struct iscsi_term_vars term_vars ;
u8_t rsrv1;
u16_t iscsi_conn_id;
#elif defined(__LITTLE_ENDIAN)
u16_t iscsi_conn_id;
u8_t rsrv1;
struct iscsi_term_vars term_vars ;
#endif
u32_t process_nxt ;
};
struct tstorm_iscsi_st_context
{
struct tstorm_tcp_st_context_section tcp ;
struct tstorm_iscsi_st_context_section iscsi ;
};
struct xstorm_eth_context_section
{
#if defined(__BIG_ENDIAN)
u8_t remote_addr_4 ;
u8_t remote_addr_5 ;
u8_t local_addr_0 ;
u8_t local_addr_1 ;
#elif defined(__LITTLE_ENDIAN)
u8_t local_addr_1 ;
u8_t local_addr_0 ;
u8_t remote_addr_5 ;
u8_t remote_addr_4 ;
#endif
#if defined(__BIG_ENDIAN)
u8_t remote_addr_0 ;
u8_t remote_addr_1 ;
u8_t remote_addr_2 ;
u8_t remote_addr_3 ;
#elif defined(__LITTLE_ENDIAN)
u8_t remote_addr_3 ;
u8_t remote_addr_2 ;
u8_t remote_addr_1 ;
u8_t remote_addr_0 ;
#endif
#if defined(__BIG_ENDIAN)
u16_t reserved_vlan_type ;
u16_t vlan_params;
#define XSTORM_ETH_CONTEXT_SECTION_VLAN_ID (0xFFF<<0)
#define XSTORM_ETH_CONTEXT_SECTION_VLAN_ID_SHIFT 0
#define XSTORM_ETH_CONTEXT_SECTION_CFI (0x1<<12)
#define XSTORM_ETH_CONTEXT_SECTION_CFI_SHIFT 12
#define XSTORM_ETH_CONTEXT_SECTION_PRIORITY (0x7<<13)
#define XSTORM_ETH_CONTEXT_SECTION_PRIORITY_SHIFT 13
#elif defined(__LITTLE_ENDIAN)
u16_t vlan_params;
#define XSTORM_ETH_CONTEXT_SECTION_VLAN_ID (0xFFF<<0)
#define XSTORM_ETH_CONTEXT_SECTION_VLAN_ID_SHIFT 0
#define XSTORM_ETH_CONTEXT_SECTION_CFI (0x1<<12)
#define XSTORM_ETH_CONTEXT_SECTION_CFI_SHIFT 12
#define XSTORM_ETH_CONTEXT_SECTION_PRIORITY (0x7<<13)
#define XSTORM_ETH_CONTEXT_SECTION_PRIORITY_SHIFT 13
u16_t reserved_vlan_type ;
#endif
#if defined(__BIG_ENDIAN)
u8_t local_addr_2 ;
u8_t local_addr_3 ;
u8_t local_addr_4 ;
u8_t local_addr_5 ;
#elif defined(__LITTLE_ENDIAN)
u8_t local_addr_5 ;
u8_t local_addr_4 ;
u8_t local_addr_3 ;
u8_t local_addr_2 ;
#endif
};
struct xstorm_ip_v4_context_section
{
#if defined(__BIG_ENDIAN)
u16_t __pbf_hdr_cmd_rsvd_id;
u16_t __pbf_hdr_cmd_rsvd_flags_offset;
#elif defined(__LITTLE_ENDIAN)
u16_t __pbf_hdr_cmd_rsvd_flags_offset;
u16_t __pbf_hdr_cmd_rsvd_id;
#endif
#if defined(__BIG_ENDIAN)
u8_t __pbf_hdr_cmd_rsvd_ver_ihl;
u8_t tos ;
u16_t __pbf_hdr_cmd_rsvd_length;
#elif defined(__LITTLE_ENDIAN)
u16_t __pbf_hdr_cmd_rsvd_length;
u8_t tos ;
u8_t __pbf_hdr_cmd_rsvd_ver_ihl;
#endif
u32_t ip_local_addr ;
#if defined(__BIG_ENDIAN)
u8_t ttl ;
u8_t __pbf_hdr_cmd_rsvd_protocol;
u16_t __pbf_hdr_cmd_rsvd_csum;
#elif defined(__LITTLE_ENDIAN)
u16_t __pbf_hdr_cmd_rsvd_csum;
u8_t __pbf_hdr_cmd_rsvd_protocol;
u8_t ttl ;
#endif
u32_t __pbf_hdr_cmd_rsvd_1 ;
u32_t ip_remote_addr ;
};
struct xstorm_padded_ip_v4_context_section
{
struct xstorm_ip_v4_context_section ip_v4;
u32_t reserved1[4];
};
struct xstorm_ip_v6_context_section
{
#if defined(__BIG_ENDIAN)
u16_t pbf_hdr_cmd_rsvd_payload_len;
u8_t pbf_hdr_cmd_rsvd_nxt_hdr;
u8_t hop_limit ;
#elif defined(__LITTLE_ENDIAN)
u8_t hop_limit ;
u8_t pbf_hdr_cmd_rsvd_nxt_hdr;
u16_t pbf_hdr_cmd_rsvd_payload_len;
#endif
u32_t priority_flow_label;
#define XSTORM_IP_V6_CONTEXT_SECTION_FLOW_LABEL (0xFFFFF<<0)
#define XSTORM_IP_V6_CONTEXT_SECTION_FLOW_LABEL_SHIFT 0
#define XSTORM_IP_V6_CONTEXT_SECTION_TRAFFIC_CLASS (0xFF<<20)
#define XSTORM_IP_V6_CONTEXT_SECTION_TRAFFIC_CLASS_SHIFT 20
#define XSTORM_IP_V6_CONTEXT_SECTION_PBF_HDR_CMD_RSVD_VER (0xF<<28)
#define XSTORM_IP_V6_CONTEXT_SECTION_PBF_HDR_CMD_RSVD_VER_SHIFT 28
u32_t ip_local_addr_lo_hi ;
u32_t ip_local_addr_lo_lo ;
u32_t ip_local_addr_hi_hi ;
u32_t ip_local_addr_hi_lo ;
u32_t ip_remote_addr_lo_hi ;
u32_t ip_remote_addr_lo_lo ;
u32_t ip_remote_addr_hi_hi ;
u32_t ip_remote_addr_hi_lo ;
};
union xstorm_ip_context_section_types
{
struct xstorm_padded_ip_v4_context_section padded_ip_v4;
struct xstorm_ip_v6_context_section ip_v6;
};
struct xstorm_tcp_context_section
{
u32_t snd_max;
#if defined(__BIG_ENDIAN)
u16_t remote_port ;
u16_t local_port ;
#elif defined(__LITTLE_ENDIAN)
u16_t local_port ;
u16_t remote_port ;
#endif
#if defined(__BIG_ENDIAN)
u8_t original_nagle_1b;
u8_t ts_enabled ;
u16_t tcp_params;
#define XSTORM_TCP_CONTEXT_SECTION_TOTAL_HEADER_SIZE (0xFF<<0)
#define XSTORM_TCP_CONTEXT_SECTION_TOTAL_HEADER_SIZE_SHIFT 0
#define __XSTORM_TCP_CONTEXT_SECTION_ECT_BIT (0x1<<8)
#define __XSTORM_TCP_CONTEXT_SECTION_ECT_BIT_SHIFT 8
#define __XSTORM_TCP_CONTEXT_SECTION_ECN_ENABLED (0x1<<9)
#define __XSTORM_TCP_CONTEXT_SECTION_ECN_ENABLED_SHIFT 9
#define XSTORM_TCP_CONTEXT_SECTION_SACK_ENABLED (0x1<<10)
#define XSTORM_TCP_CONTEXT_SECTION_SACK_ENABLED_SHIFT 10
#define XSTORM_TCP_CONTEXT_SECTION_SMALL_WIN_ADV (0x1<<11)
#define XSTORM_TCP_CONTEXT_SECTION_SMALL_WIN_ADV_SHIFT 11
#define XSTORM_TCP_CONTEXT_SECTION_FIN_SENT_FLAG (0x1<<12)
#define XSTORM_TCP_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT 12
#define XSTORM_TCP_CONTEXT_SECTION_WINDOW_SATURATED (0x1<<13)
#define XSTORM_TCP_CONTEXT_SECTION_WINDOW_SATURATED_SHIFT 13
#define XSTORM_TCP_CONTEXT_SECTION_SLOWPATH_QUEUES_FLUSH_COUNTER (0x3<<14)
#define XSTORM_TCP_CONTEXT_SECTION_SLOWPATH_QUEUES_FLUSH_COUNTER_SHIFT 14
#elif defined(__LITTLE_ENDIAN)
u16_t tcp_params;
#define XSTORM_TCP_CONTEXT_SECTION_TOTAL_HEADER_SIZE (0xFF<<0)
#define XSTORM_TCP_CONTEXT_SECTION_TOTAL_HEADER_SIZE_SHIFT 0
#define __XSTORM_TCP_CONTEXT_SECTION_ECT_BIT (0x1<<8)
#define __XSTORM_TCP_CONTEXT_SECTION_ECT_BIT_SHIFT 8
#define __XSTORM_TCP_CONTEXT_SECTION_ECN_ENABLED (0x1<<9)
#define __XSTORM_TCP_CONTEXT_SECTION_ECN_ENABLED_SHIFT 9
#define XSTORM_TCP_CONTEXT_SECTION_SACK_ENABLED (0x1<<10)
#define XSTORM_TCP_CONTEXT_SECTION_SACK_ENABLED_SHIFT 10
#define XSTORM_TCP_CONTEXT_SECTION_SMALL_WIN_ADV (0x1<<11)
#define XSTORM_TCP_CONTEXT_SECTION_SMALL_WIN_ADV_SHIFT 11
#define XSTORM_TCP_CONTEXT_SECTION_FIN_SENT_FLAG (0x1<<12)
#define XSTORM_TCP_CONTEXT_SECTION_FIN_SENT_FLAG_SHIFT 12
#define XSTORM_TCP_CONTEXT_SECTION_WINDOW_SATURATED (0x1<<13)
#define XSTORM_TCP_CONTEXT_SECTION_WINDOW_SATURATED_SHIFT 13
#define XSTORM_TCP_CONTEXT_SECTION_SLOWPATH_QUEUES_FLUSH_COUNTER (0x3<<14)
#define XSTORM_TCP_CONTEXT_SECTION_SLOWPATH_QUEUES_FLUSH_COUNTER_SHIFT 14
u8_t ts_enabled ;
u8_t original_nagle_1b;
#endif
#if defined(__BIG_ENDIAN)
u16_t pseudo_csum ;
u16_t window_scaling_factor ;
#elif defined(__LITTLE_ENDIAN)
u16_t window_scaling_factor ;
u16_t pseudo_csum ;
#endif
#if defined(__BIG_ENDIAN)
u16_t reserved2 ;
u8_t statistics_counter_id ;
u8_t statistics_params;
#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L2_STATSTICS (0x1<<0)
#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L2_STATSTICS_SHIFT 0
#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L4_STATSTICS (0x1<<1)
#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L4_STATSTICS_SHIFT 1
#define XSTORM_TCP_CONTEXT_SECTION_RESERVED (0x3F<<2)
#define XSTORM_TCP_CONTEXT_SECTION_RESERVED_SHIFT 2
#elif defined(__LITTLE_ENDIAN)
u8_t statistics_params;
#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L2_STATSTICS (0x1<<0)
#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L2_STATSTICS_SHIFT 0
#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L4_STATSTICS (0x1<<1)
#define XSTORM_TCP_CONTEXT_SECTION_UPDATE_L4_STATSTICS_SHIFT 1
#define XSTORM_TCP_CONTEXT_SECTION_RESERVED (0x3F<<2)
#define XSTORM_TCP_CONTEXT_SECTION_RESERVED_SHIFT 2
u8_t statistics_counter_id ;
u16_t reserved2 ;
#endif
u32_t ts_time_diff ;
u32_t __next_timer_expir ;
};
struct xstorm_common_context_section
{
struct xstorm_eth_context_section ethernet;
union xstorm_ip_context_section_types ip_union;
struct xstorm_tcp_context_section tcp;
#if defined(__BIG_ENDIAN)
u8_t __dcb_val;
u8_t flags;
#define XSTORM_COMMON_CONTEXT_SECTION_PHYSQ_INITIALIZED (0x1<<0)
#define XSTORM_COMMON_CONTEXT_SECTION_PHYSQ_INITIALIZED_SHIFT 0
#define XSTORM_COMMON_CONTEXT_SECTION_PBF_PORT (0x7<<1)
#define XSTORM_COMMON_CONTEXT_SECTION_PBF_PORT_SHIFT 1
#define XSTORM_COMMON_CONTEXT_SECTION_VLAN_MODE (0x1<<4)
#define XSTORM_COMMON_CONTEXT_SECTION_VLAN_MODE_SHIFT 4
#define XSTORM_COMMON_CONTEXT_SECTION_ORIGINAL_PRIORITY (0x7<<5)
#define XSTORM_COMMON_CONTEXT_SECTION_ORIGINAL_PRIORITY_SHIFT 5
u8_t reserved;
u8_t ip_version_1b;
#elif defined(__LITTLE_ENDIAN)
u8_t ip_version_1b;
u8_t reserved;
u8_t flags;
#define XSTORM_COMMON_CONTEXT_SECTION_PHYSQ_INITIALIZED (0x1<<0)
#define XSTORM_COMMON_CONTEXT_SECTION_PHYSQ_INITIALIZED_SHIFT 0
#define XSTORM_COMMON_CONTEXT_SECTION_PBF_PORT (0x7<<1)
#define XSTORM_COMMON_CONTEXT_SECTION_PBF_PORT_SHIFT 1
#define XSTORM_COMMON_CONTEXT_SECTION_VLAN_MODE (0x1<<4)
#define XSTORM_COMMON_CONTEXT_SECTION_VLAN_MODE_SHIFT 4
#define XSTORM_COMMON_CONTEXT_SECTION_ORIGINAL_PRIORITY (0x7<<5)
#define XSTORM_COMMON_CONTEXT_SECTION_ORIGINAL_PRIORITY_SHIFT 5
u8_t __dcb_val;
#endif
};
struct xstorm_iscsi_context_flags
{
u8_t flags;
#define XSTORM_ISCSI_CONTEXT_FLAGS_B_IMMEDIATE_DATA (0x1<<0)
#define XSTORM_ISCSI_CONTEXT_FLAGS_B_IMMEDIATE_DATA_SHIFT 0
#define XSTORM_ISCSI_CONTEXT_FLAGS_B_INITIAL_R2T (0x1<<1)
#define XSTORM_ISCSI_CONTEXT_FLAGS_B_INITIAL_R2T_SHIFT 1
#define XSTORM_ISCSI_CONTEXT_FLAGS_B_EN_HEADER_DIGEST (0x1<<2)
#define XSTORM_ISCSI_CONTEXT_FLAGS_B_EN_HEADER_DIGEST_SHIFT 2
#define XSTORM_ISCSI_CONTEXT_FLAGS_B_EN_DATA_DIGEST (0x1<<3)
#define XSTORM_ISCSI_CONTEXT_FLAGS_B_EN_DATA_DIGEST_SHIFT 3
#define XSTORM_ISCSI_CONTEXT_FLAGS_B_HQ_BD_WRITTEN (0x1<<4)
#define XSTORM_ISCSI_CONTEXT_FLAGS_B_HQ_BD_WRITTEN_SHIFT 4
#define XSTORM_ISCSI_CONTEXT_FLAGS_B_LAST_OP_SQ (0x1<<5)
#define XSTORM_ISCSI_CONTEXT_FLAGS_B_LAST_OP_SQ_SHIFT 5
#define XSTORM_ISCSI_CONTEXT_FLAGS_B_UPDATE_SND_NXT (0x1<<6)
#define XSTORM_ISCSI_CONTEXT_FLAGS_B_UPDATE_SND_NXT_SHIFT 6
#define XSTORM_ISCSI_CONTEXT_FLAGS_RESERVED4 (0x1<<7)
#define XSTORM_ISCSI_CONTEXT_FLAGS_RESERVED4_SHIFT 7
};
struct iscsi_task_context_entry_x
{
u32_t data_out_buffer_offset;
u32_t itt;
u32_t data_sn;
};
struct iscsi_task_context_entry_xuc_x_write_only
{
u32_t tx_r2t_sn ;
};
struct iscsi_task_context_entry_xuc_xu_write_both
{
u32_t sgl_base_lo;
u32_t sgl_base_hi;
#if defined(__BIG_ENDIAN)
u8_t sgl_size;
u8_t sge_index;
u16_t sge_offset;
#elif defined(__LITTLE_ENDIAN)
u16_t sge_offset;
u8_t sge_index;
u8_t sgl_size;
#endif
};
struct xstorm_iscsi_context_section
{
u32_t first_burst_length;
u32_t max_send_pdu_length;
struct regpair_t sq_pbl_base;
struct regpair_t sq_curr_pbe;
struct regpair_t hq_pbl_base;
struct regpair_t hq_curr_pbe_base;
struct regpair_t r2tq_pbl_base;
struct regpair_t r2tq_curr_pbe_base;
struct regpair_t task_pbl_base;
#if defined(__BIG_ENDIAN)
u16_t data_out_count;
struct xstorm_iscsi_context_flags flags;
u8_t task_pbl_cache_idx ;
#elif defined(__LITTLE_ENDIAN)
u8_t task_pbl_cache_idx ;
struct xstorm_iscsi_context_flags flags;
u16_t data_out_count;
#endif
u32_t seq_more_2_send;
u32_t pdu_more_2_send;
struct iscsi_task_context_entry_x temp_tce_x;
struct iscsi_task_context_entry_xuc_x_write_only temp_tce_x_wr;
struct iscsi_task_context_entry_xuc_xu_write_both temp_tce_xu_wr;
struct regpair_t lun;
u32_t exp_data_transfer_len_ttt ;
u32_t pdu_data_2_rxmit;
u32_t rxmit_bytes_2_dr;
#if defined(__BIG_ENDIAN)
u16_t rxmit_sge_offset;
u16_t hq_rxmit_cons;
#elif defined(__LITTLE_ENDIAN)
u16_t hq_rxmit_cons;
u16_t rxmit_sge_offset;
#endif
#if defined(__BIG_ENDIAN)
u16_t r2tq_cons;
u8_t rxmit_flags;
#define XSTORM_ISCSI_CONTEXT_SECTION_B_NEW_HQ_BD (0x1<<0)
#define XSTORM_ISCSI_CONTEXT_SECTION_B_NEW_HQ_BD_SHIFT 0
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PDU_HDR (0x1<<1)
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PDU_HDR_SHIFT 1
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_END_PDU (0x1<<2)
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_END_PDU_SHIFT 2
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_DR (0x1<<3)
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_DR_SHIFT 3
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_START_DR (0x1<<4)
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_START_DR_SHIFT 4
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PADDING (0x3<<5)
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PADDING_SHIFT 5
#define XSTORM_ISCSI_CONTEXT_SECTION_B_ISCSI_CONT_FAST_RXMIT (0x1<<7)
#define XSTORM_ISCSI_CONTEXT_SECTION_B_ISCSI_CONT_FAST_RXMIT_SHIFT 7
u8_t rxmit_sge_idx;
#elif defined(__LITTLE_ENDIAN)
u8_t rxmit_sge_idx;
u8_t rxmit_flags;
#define XSTORM_ISCSI_CONTEXT_SECTION_B_NEW_HQ_BD (0x1<<0)
#define XSTORM_ISCSI_CONTEXT_SECTION_B_NEW_HQ_BD_SHIFT 0
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PDU_HDR (0x1<<1)
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PDU_HDR_SHIFT 1
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_END_PDU (0x1<<2)
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_END_PDU_SHIFT 2
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_DR (0x1<<3)
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_DR_SHIFT 3
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_START_DR (0x1<<4)
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_START_DR_SHIFT 4
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PADDING (0x3<<5)
#define XSTORM_ISCSI_CONTEXT_SECTION_B_RXMIT_PADDING_SHIFT 5
#define XSTORM_ISCSI_CONTEXT_SECTION_B_ISCSI_CONT_FAST_RXMIT (0x1<<7)
#define XSTORM_ISCSI_CONTEXT_SECTION_B_ISCSI_CONT_FAST_RXMIT_SHIFT 7
u16_t r2tq_cons;
#endif
u32_t hq_rxmit_tcp_seq;
};
struct xstorm_iscsi_st_context
{
struct xstorm_common_context_section common;
struct xstorm_iscsi_context_section iscsi;
};
struct iscsi_context
{
struct ustorm_iscsi_st_context ustorm_st_context ;
struct tstorm_iscsi_st_context tstorm_st_context ;
struct xstorm_iscsi_ag_context xstorm_ag_context ;
struct tstorm_iscsi_ag_context tstorm_ag_context ;
struct cstorm_iscsi_ag_context cstorm_ag_context ;
struct ustorm_iscsi_ag_context ustorm_ag_context ;
struct timers_block_context timers_context ;
struct regpair_t upb_context ;
struct xstorm_iscsi_st_context xstorm_st_context ;
struct regpair_t xpb_context ;
struct cstorm_iscsi_st_context cstorm_st_context ;
};
struct iscsi_data_pdu_hdr_little_endian
{
#if defined(__BIG_ENDIAN)
u8_t opcode;
u8_t op_attr;
#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_RSRV1 (0x7F<<0)
#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG (0x1<<7)
#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG_SHIFT 7
u16_t rsrv0;
#elif defined(__LITTLE_ENDIAN)
u16_t rsrv0;
u8_t op_attr;
#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_RSRV1 (0x7F<<0)
#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG (0x1<<7)
#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_FINAL_FLAG_SHIFT 7
u8_t opcode;
#endif
u32_t data_fields;
#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
#define ISCSI_DATA_PDU_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
struct regpair_t lun;
u32_t itt;
u32_t ttt;
u32_t rsrv2;
u32_t exp_stat_sn;
u32_t rsrv3;
u32_t data_sn;
u32_t buffer_offset;
u32_t rsrv4;
};
struct iscsi_login_req_hdr_little_endian
{
#if defined(__BIG_ENDIAN)
u8_t opcode;
u8_t op_attr;
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_NSG (0x3<<0)
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_NSG_SHIFT 0
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CSG (0x3<<2)
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CSG_SHIFT 2
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_RSRV0 (0x3<<4)
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_RSRV0_SHIFT 4
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG (0x1<<6)
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG_SHIFT 6
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TRANSIT (0x1<<7)
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TRANSIT_SHIFT 7
u8_t version_max;
u8_t version_min;
#elif defined(__LITTLE_ENDIAN)
u8_t version_min;
u8_t version_max;
u8_t op_attr;
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_NSG (0x3<<0)
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_NSG_SHIFT 0
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CSG (0x3<<2)
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CSG_SHIFT 2
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_RSRV0 (0x3<<4)
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_RSRV0_SHIFT 4
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG (0x1<<6)
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG_SHIFT 6
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TRANSIT (0x1<<7)
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TRANSIT_SHIFT 7
u8_t opcode;
#endif
u32_t data_fields;
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
#define ISCSI_LOGIN_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
u32_t isid_lo;
#if defined(__BIG_ENDIAN)
u16_t isid_hi;
u16_t tsih;
#elif defined(__LITTLE_ENDIAN)
u16_t tsih;
u16_t isid_hi;
#endif
u32_t itt;
#if defined(__BIG_ENDIAN)
u16_t cid;
u16_t rsrv1;
#elif defined(__LITTLE_ENDIAN)
u16_t rsrv1;
u16_t cid;
#endif
u32_t cmd_sn;
u32_t exp_stat_sn;
u32_t rsrv2[4];
};
struct iscsi_logout_req_hdr_little_endian
{
#if defined(__BIG_ENDIAN)
u8_t opcode;
u8_t op_attr;
#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_REASON_CODE (0x7F<<0)
#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_REASON_CODE_SHIFT 0
#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_RSRV1_1 (0x1<<7)
#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_RSRV1_1_SHIFT 7
u16_t rsrv0;
#elif defined(__LITTLE_ENDIAN)
u16_t rsrv0;
u8_t op_attr;
#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_REASON_CODE (0x7F<<0)
#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_REASON_CODE_SHIFT 0
#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_RSRV1_1 (0x1<<7)
#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_RSRV1_1_SHIFT 7
u8_t opcode;
#endif
u32_t data_fields;
#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
#define ISCSI_LOGOUT_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
u32_t rsrv2[2];
u32_t itt;
#if defined(__BIG_ENDIAN)
u16_t cid;
u16_t rsrv1;
#elif defined(__LITTLE_ENDIAN)
u16_t rsrv1;
u16_t cid;
#endif
u32_t cmd_sn;
u32_t exp_stat_sn;
u32_t rsrv3[4];
};
struct iscsi_tmf_req_hdr_little_endian
{
#if defined(__BIG_ENDIAN)
u8_t opcode;
u8_t op_attr;
#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_FUNCTION (0x7F<<0)
#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_FUNCTION_SHIFT 0
#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_RSRV1_1 (0x1<<7)
#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_RSRV1_1_SHIFT 7
u16_t rsrv0;
#elif defined(__LITTLE_ENDIAN)
u16_t rsrv0;
u8_t op_attr;
#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_FUNCTION (0x7F<<0)
#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_FUNCTION_SHIFT 0
#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_RSRV1_1 (0x1<<7)
#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_RSRV1_1_SHIFT 7
u8_t opcode;
#endif
u32_t data_fields;
#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
#define ISCSI_TMF_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
struct regpair_t lun;
u32_t itt;
u32_t referenced_task_tag;
u32_t cmd_sn;
u32_t exp_stat_sn;
u32_t ref_cmd_sn;
u32_t exp_data_sn;
u32_t rsrv2[2];
};
struct iscsi_text_req_hdr_little_endian
{
#if defined(__BIG_ENDIAN)
u8_t opcode;
u8_t op_attr;
#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_RSRV1 (0x3F<<0)
#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG (0x1<<6)
#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG_SHIFT 6
#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_FINAL (0x1<<7)
#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_FINAL_SHIFT 7
u16_t rsrv0;
#elif defined(__LITTLE_ENDIAN)
u16_t rsrv0;
u8_t op_attr;
#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_RSRV1 (0x3F<<0)
#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG (0x1<<6)
#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_CONTINUE_FLG_SHIFT 6
#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_FINAL (0x1<<7)
#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_FINAL_SHIFT 7
u8_t opcode;
#endif
u32_t data_fields;
#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
#define ISCSI_TEXT_REQ_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
struct regpair_t lun;
u32_t itt;
u32_t ttt;
u32_t cmd_sn;
u32_t exp_stat_sn;
u32_t rsrv3[4];
};
struct iscsi_nop_out_hdr_little_endian
{
#if defined(__BIG_ENDIAN)
u8_t opcode;
u8_t op_attr;
#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV1 (0x7F<<0)
#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV2_1 (0x1<<7)
#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV2_1_SHIFT 7
u16_t rsrv0;
#elif defined(__LITTLE_ENDIAN)
u16_t rsrv0;
u8_t op_attr;
#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV1 (0x7F<<0)
#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV1_SHIFT 0
#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV2_1 (0x1<<7)
#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_RSRV2_1_SHIFT 7
u8_t opcode;
#endif
u32_t data_fields;
#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH (0xFFFFFF<<0)
#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_DATA_SEGMENT_LENGTH_SHIFT 0
#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH (0xFF<<24)
#define ISCSI_NOP_OUT_HDR_LITTLE_ENDIAN_TOTAL_AHS_LENGTH_SHIFT 24
struct regpair_t lun;
u32_t itt;
u32_t ttt;
u32_t cmd_sn;
u32_t exp_stat_sn;
u32_t rsrv3[4];
};
union iscsi_pdu_headers_little_endian
{
u32_t fullHeaderSize[12] ;
struct iscsi_cmd_pdu_hdr_little_endian command_pdu_hdr ;
struct iscsi_data_pdu_hdr_little_endian data_out_pdu_hdr ;
struct iscsi_login_req_hdr_little_endian login_req_pdu_hdr ;
struct iscsi_logout_req_hdr_little_endian logout_req_pdu_hdr ;
struct iscsi_tmf_req_hdr_little_endian tmf_req_pdu_hdr ;
struct iscsi_text_req_hdr_little_endian text_req_pdu_hdr ;
struct iscsi_nop_out_hdr_little_endian nop_out_pdu_hdr ;
};
struct iscsi_hq_bd
{
union iscsi_pdu_headers_little_endian pdu_header;
#if defined(__BIG_ENDIAN)
u16_t reserved1;
u16_t lcl_cmp_flg;
#elif defined(__LITTLE_ENDIAN)
u16_t lcl_cmp_flg;
u16_t reserved1;
#endif
u32_t sgl_base_lo;
u32_t sgl_base_hi;
#if defined(__BIG_ENDIAN)
u8_t sgl_size;
u8_t sge_index;
u16_t sge_offset;
#elif defined(__LITTLE_ENDIAN)
u16_t sge_offset;
u8_t sge_index;
u8_t sgl_size;
#endif
};
struct iscsi_l2_ooo_data
{
u32_t iscsi_cid ;
u8_t drop_isle ;
u8_t drop_size ;
u8_t ooo_opcode ;
u8_t ooo_isle ;
u8_t reserved[8];
};
struct iscsi_task_context_entry_xuc_c_write_only
{
u32_t total_data_acked ;
};
struct iscsi_task_context_r2t_table_entry
{
u32_t ttt;
u32_t desired_data_len;
};
struct iscsi_task_context_entry_xuc_u_write_only
{
u32_t exp_r2t_sn ;
struct iscsi_task_context_r2t_table_entry r2t_table[4] ;
#if defined(__BIG_ENDIAN)
u16_t data_in_count ;
u8_t cq_id ;
u8_t valid_1b ;
#elif defined(__LITTLE_ENDIAN)
u8_t valid_1b ;
u8_t cq_id ;
u16_t data_in_count ;
#endif
};
struct iscsi_task_context_entry_xuc
{
struct iscsi_task_context_entry_xuc_c_write_only write_c ;
u32_t exp_data_transfer_len ;
struct iscsi_task_context_entry_xuc_x_write_only write_x ;
u32_t lun_lo ;
struct iscsi_task_context_entry_xuc_xu_write_both write_xu ;
u32_t lun_hi ;
struct iscsi_task_context_entry_xuc_u_write_only write_u ;
};
struct iscsi_task_context_entry_u
{
u32_t exp_r2t_buff_offset;
u32_t rem_rcv_len;
u32_t exp_data_sn;
};
struct iscsi_task_context_entry
{
struct iscsi_task_context_entry_x tce_x;
#if defined(__BIG_ENDIAN)
u16_t data_out_count;
u16_t rsrv0;
#elif defined(__LITTLE_ENDIAN)
u16_t rsrv0;
u16_t data_out_count;
#endif
struct iscsi_task_context_entry_xuc tce_xuc;
struct iscsi_task_context_entry_u tce_u;
u32_t rsrv1[7] ;
};
struct iscsi_task_context_entry_xuc_x_init_only
{
struct regpair_t lun ;
u32_t exp_data_transfer_len ;
};
struct afex_vif_list_ramrod_data
{
u8_t afex_vif_list_command ;
u8_t func_bit_map ;
u16_t vif_list_index ;
u8_t func_to_clear ;
u8_t echo;
u16_t reserved1;
};
struct cfc_del_event_data
{
u32_t cid ;
u32_t reserved0;
u32_t reserved1;
};
struct cmng_flags_per_port
{
u32_t cmng_enables;
#define CMNG_FLAGS_PER_PORT_FAIRNESS_VN (0x1<<0)
#define CMNG_FLAGS_PER_PORT_FAIRNESS_VN_SHIFT 0
#define CMNG_FLAGS_PER_PORT_RATE_SHAPING_VN (0x1<<1)
#define CMNG_FLAGS_PER_PORT_RATE_SHAPING_VN_SHIFT 1
#define CMNG_FLAGS_PER_PORT_FAIRNESS_COS (0x1<<2)
#define CMNG_FLAGS_PER_PORT_FAIRNESS_COS_SHIFT 2
#define CMNG_FLAGS_PER_PORT_FAIRNESS_COS_MODE (0x1<<3)
#define CMNG_FLAGS_PER_PORT_FAIRNESS_COS_MODE_SHIFT 3
#define __CMNG_FLAGS_PER_PORT_RESERVED0 (0xFFFFFFF<<4)
#define __CMNG_FLAGS_PER_PORT_RESERVED0_SHIFT 4
u32_t __reserved1;
};
struct rate_shaping_vars_per_port
{
u32_t rs_periodic_timeout ;
u32_t rs_threshold ;
};
struct fairness_vars_per_port
{
u32_t upper_bound ;
u32_t fair_threshold ;
u32_t fairness_timeout ;
u32_t reserved0;
};
struct safc_struct_per_port
{
#if defined(__BIG_ENDIAN)
u16_t __reserved1;
u8_t __reserved0;
u8_t safc_timeout_usec ;
#elif defined(__LITTLE_ENDIAN)
u8_t safc_timeout_usec ;
u8_t __reserved0;
u16_t __reserved1;
#endif
u8_t cos_to_traffic_types[MAX_COS_NUMBER] ;
u16_t cos_to_pause_mask[NUM_OF_SAFC_BITS] ;
};
struct cmng_struct_per_port
{
struct rate_shaping_vars_per_port rs_vars;
struct fairness_vars_per_port fair_vars;
struct safc_struct_per_port safc_vars;
struct cmng_flags_per_port flags;
};
struct rate_shaping_counter
{
u32_t quota ;
#if defined(__BIG_ENDIAN)
u16_t __reserved0;
u16_t rate ;
#elif defined(__LITTLE_ENDIAN)
u16_t rate ;
u16_t __reserved0;
#endif
};
struct rate_shaping_vars_per_vn
{
struct rate_shaping_counter vn_counter ;
};
struct fairness_vars_per_vn
{
u32_t cos_credit_delta[MAX_COS_NUMBER] ;
u32_t vn_credit_delta ;
u32_t __reserved0;
};
struct cmng_vnic
{
struct rate_shaping_vars_per_vn vnic_max_rate[4];
struct fairness_vars_per_vn vnic_min_rate[4];
};
struct cmng_init
{
struct cmng_struct_per_port port;
struct cmng_vnic vnic;
};
struct cmng_init_input
{
u32_t port_rate;
u16_t vnic_min_rate[4] ;
u16_t vnic_max_rate[4] ;
u16_t cos_min_rate[MAX_COS_NUMBER] ;
u16_t cos_to_pause_mask[MAX_COS_NUMBER];
struct cmng_flags_per_port flags;
};
enum common_spqe_cmd_id
{
RAMROD_CMD_ID_COMMON_UNUSED,
RAMROD_CMD_ID_COMMON_FUNCTION_START ,
RAMROD_CMD_ID_COMMON_FUNCTION_STOP ,
RAMROD_CMD_ID_COMMON_FUNCTION_UPDATE ,
RAMROD_CMD_ID_COMMON_CFC_DEL ,
RAMROD_CMD_ID_COMMON_CFC_DEL_WB ,
RAMROD_CMD_ID_COMMON_STAT_QUERY ,
RAMROD_CMD_ID_COMMON_STOP_TRAFFIC ,
RAMROD_CMD_ID_COMMON_START_TRAFFIC ,
RAMROD_CMD_ID_COMMON_AFEX_VIF_LISTS ,
RAMROD_CMD_ID_COMMON_SET_TIMESYNC ,
MAX_COMMON_SPQE_CMD_ID};
enum connection_type
{
ETH_CONNECTION_TYPE ,
TOE_CONNECTION_TYPE ,
RDMA_CONNECTION_TYPE ,
ISCSI_CONNECTION_TYPE ,
FCOE_CONNECTION_TYPE ,
RESERVED_CONNECTION_TYPE_0,
RESERVED_CONNECTION_TYPE_1,
RESERVED_CONNECTION_TYPE_2,
NONE_CONNECTION_TYPE ,
MAX_CONNECTION_TYPE};
enum cos_mode
{
OVERRIDE_COS ,
STATIC_COS ,
FW_WRR ,
MAX_COS_MODE};
struct hc_dynamic_drv_counter
{
u32_t val[HC_SB_MAX_DYNAMIC_INDICES] ;
};
struct cstorm_queue_zone_data
{
struct hc_dynamic_drv_counter hc_dyn_drv_cnt ;
struct regpair_t reserved[2];
};
struct vf_pf_channel_zone_data
{
u32_t msg_addr_lo ;
u32_t msg_addr_hi ;
};
struct non_trigger_vf_zone
{
struct vf_pf_channel_zone_data vf_pf_channel ;
};
struct vf_pf_channel_zone_trigger
{
u8_t addr_valid ;
};
struct trigger_vf_zone
{
#if defined(__BIG_ENDIAN)
u16_t reserved1;
u8_t reserved0;
struct vf_pf_channel_zone_trigger vf_pf_channel;
#elif defined(__LITTLE_ENDIAN)
struct vf_pf_channel_zone_trigger vf_pf_channel;
u8_t reserved0;
u16_t reserved1;
#endif
u32_t reserved2;
};
struct cstorm_vf_zone_data
{
struct non_trigger_vf_zone non_trigger ;
struct trigger_vf_zone trigger ;
};
struct dynamic_hc_sm_config
{
u32_t threshold[3] ;
u8_t shift_per_protocol[HC_SB_MAX_DYNAMIC_INDICES] ;
u8_t hc_timeout0[HC_SB_MAX_DYNAMIC_INDICES] ;
u8_t hc_timeout1[HC_SB_MAX_DYNAMIC_INDICES] ;
u8_t hc_timeout2[HC_SB_MAX_DYNAMIC_INDICES] ;
u8_t hc_timeout3[HC_SB_MAX_DYNAMIC_INDICES] ;
};
struct dynamic_hc_config
{
struct dynamic_hc_sm_config sm_config[HC_SB_MAX_SM] ;
};
struct e2_integ_data
{
#if defined(__BIG_ENDIAN)
u8_t flags;
#define E2_INTEG_DATA_TESTING_EN (0x1<<0)
#define E2_INTEG_DATA_TESTING_EN_SHIFT 0
#define E2_INTEG_DATA_LB_TX (0x1<<1)
#define E2_INTEG_DATA_LB_TX_SHIFT 1
#define E2_INTEG_DATA_COS_TX (0x1<<2)
#define E2_INTEG_DATA_COS_TX_SHIFT 2
#define E2_INTEG_DATA_OPPORTUNISTICQM (0x1<<3)
#define E2_INTEG_DATA_OPPORTUNISTICQM_SHIFT 3
#define E2_INTEG_DATA_DPMTESTRELEASEDQ (0x1<<4)
#define E2_INTEG_DATA_DPMTESTRELEASEDQ_SHIFT 4
#define E2_INTEG_DATA_RESERVED (0x7<<5)
#define E2_INTEG_DATA_RESERVED_SHIFT 5
u8_t cos ;
u8_t voq ;
u8_t pbf_queue ;
#elif defined(__LITTLE_ENDIAN)
u8_t pbf_queue ;
u8_t voq ;
u8_t cos ;
u8_t flags;
#define E2_INTEG_DATA_TESTING_EN (0x1<<0)
#define E2_INTEG_DATA_TESTING_EN_SHIFT 0
#define E2_INTEG_DATA_LB_TX (0x1<<1)
#define E2_INTEG_DATA_LB_TX_SHIFT 1
#define E2_INTEG_DATA_COS_TX (0x1<<2)
#define E2_INTEG_DATA_COS_TX_SHIFT 2
#define E2_INTEG_DATA_OPPORTUNISTICQM (0x1<<3)
#define E2_INTEG_DATA_OPPORTUNISTICQM_SHIFT 3
#define E2_INTEG_DATA_DPMTESTRELEASEDQ (0x1<<4)
#define E2_INTEG_DATA_DPMTESTRELEASEDQ_SHIFT 4
#define E2_INTEG_DATA_RESERVED (0x7<<5)
#define E2_INTEG_DATA_RESERVED_SHIFT 5
#endif
#if defined(__BIG_ENDIAN)
u16_t reserved3;
u8_t reserved2;
u8_t ramEn ;
#elif defined(__LITTLE_ENDIAN)
u8_t ramEn ;
u8_t reserved2;
u16_t reserved3;
#endif
};
struct eth_event_data
{
u32_t echo ;
u32_t reserved0;
u32_t reserved1;
};
struct vf_pf_event_data
{
u8_t vf_id ;
u8_t reserved0;
u16_t reserved1;
u32_t msg_addr_lo ;
u32_t msg_addr_hi ;
};
struct vf_flr_event_data
{
u8_t vf_id ;
u8_t reserved0;
u16_t reserved1;
u32_t reserved2;
u32_t reserved3;
};
struct malicious_vf_event_data
{
u8_t vf_id ;
u8_t err_id ;
u16_t reserved1;
u32_t reserved2;
u32_t reserved3;
};
struct vif_list_event_data
{
u8_t func_bit_map ;
u8_t echo;
u16_t reserved0;
u32_t reserved1;
u32_t reserved2;
};
struct function_update_event_data
{
u8_t echo;
u8_t reserved;
u16_t reserved0;
u32_t reserved1;
u32_t reserved2;
};
union event_data
{
struct vf_pf_event_data vf_pf_event ;
struct eth_event_data eth_event ;
struct cfc_del_event_data cfc_del_event ;
struct vf_flr_event_data vf_flr_event ;
struct malicious_vf_event_data malicious_vf_event ;
struct vif_list_event_data vif_list_event ;
struct function_update_event_data function_update_event ;
};
struct event_ring_data
{
struct regpair_native_t base_addr ;
#if defined(__BIG_ENDIAN)
u8_t index_id ;
u8_t sb_id ;
u16_t producer ;
#elif defined(__LITTLE_ENDIAN)
u16_t producer ;
u8_t sb_id ;
u8_t index_id ;
#endif
u32_t reserved0;
};
struct event_ring_msg
{
u8_t opcode;
u8_t error ;
u16_t reserved1;
union event_data data ;
};
struct event_ring_next
{
struct regpair_t addr ;
u32_t reserved[2];
};
union event_ring_elem
{
struct event_ring_msg message ;
struct event_ring_next next_page ;
};
enum event_ring_opcode
{
EVENT_RING_OPCODE_VF_PF_CHANNEL,
EVENT_RING_OPCODE_FUNCTION_START ,
EVENT_RING_OPCODE_FUNCTION_STOP ,
EVENT_RING_OPCODE_CFC_DEL ,
EVENT_RING_OPCODE_CFC_DEL_WB ,
EVENT_RING_OPCODE_STAT_QUERY ,
EVENT_RING_OPCODE_STOP_TRAFFIC ,
EVENT_RING_OPCODE_START_TRAFFIC ,
EVENT_RING_OPCODE_VF_FLR ,
EVENT_RING_OPCODE_MALICIOUS_VF ,
EVENT_RING_OPCODE_FORWARD_SETUP ,
EVENT_RING_OPCODE_RSS_UPDATE_RULES ,
EVENT_RING_OPCODE_FUNCTION_UPDATE ,
EVENT_RING_OPCODE_AFEX_VIF_LISTS ,
EVENT_RING_OPCODE_SET_MAC ,
EVENT_RING_OPCODE_CLASSIFICATION_RULES ,
EVENT_RING_OPCODE_FILTERS_RULES ,
EVENT_RING_OPCODE_MULTICAST_RULES ,
EVENT_RING_OPCODE_SET_TIMESYNC ,
MAX_EVENT_RING_OPCODE};
enum fairness_mode
{
FAIRNESS_COS_WRR_MODE ,
FAIRNESS_COS_ETS_MODE ,
MAX_FAIRNESS_MODE};
struct priority_cos
{
u8_t priority ;
u8_t cos ;
u16_t reserved1;
};
struct flow_control_configuration
{
struct priority_cos traffic_type_to_priority_cos[MAX_TRAFFIC_TYPES] ;
u8_t dcb_enabled ;
u8_t dcb_version ;
u8_t dont_add_pri_0 ;
u8_t reserved1;
u32_t reserved2;
};
struct function_start_data
{
u8_t function_mode ;
u8_t allow_npar_tx_switching ;
u16_t sd_vlan_tag ;
u16_t vif_id ;
u8_t path_id;
u8_t network_cos_mode ;
u8_t dmae_cmd_id ;
u8_t tunnel_mode ;
u8_t gre_tunnel_type ;
u8_t tunn_clss_en ;
u8_t inner_gre_rss_en ;
u8_t sd_accept_mf_clss_fail ;
u16_t vxlan_dst_port ;
u16_t sd_accept_mf_clss_fail_ethtype ;
u16_t sd_vlan_eth_type ;
u8_t sd_vlan_force_pri_flg ;
u8_t sd_vlan_force_pri_val ;
u8_t sd_accept_mf_clss_fail_match_ethtype ;
u8_t no_added_tags ;
};
struct function_update_data
{
u8_t vif_id_change_flg ;
u8_t afex_default_vlan_change_flg ;
u8_t allowed_priorities_change_flg ;
u8_t network_cos_mode_change_flg ;
u16_t vif_id ;
u16_t afex_default_vlan ;
u8_t allowed_priorities ;
u8_t network_cos_mode ;
u8_t lb_mode_en_change_flg ;
u8_t lb_mode_en ;
u8_t tx_switch_suspend_change_flg ;
u8_t tx_switch_suspend ;
u8_t echo;
u8_t update_tunn_cfg_flg ;
u8_t tunnel_mode ;
u8_t gre_tunnel_type ;
u8_t tunn_clss_en ;
u8_t inner_gre_rss_en ;
u16_t vxlan_dst_port ;
u8_t sd_vlan_force_pri_change_flg ;
u8_t sd_vlan_force_pri_flg ;
u8_t sd_vlan_force_pri_val ;
u8_t sd_vlan_tag_change_flg ;
u8_t sd_vlan_eth_type_change_flg ;
u8_t reserved1;
u16_t sd_vlan_tag ;
u16_t sd_vlan_eth_type ;
};
struct fw_version
{
#if defined(__BIG_ENDIAN)
u8_t engineering ;
u8_t revision ;
u8_t minor ;
u8_t major ;
#elif defined(__LITTLE_ENDIAN)
u8_t major ;
u8_t minor ;
u8_t revision ;
u8_t engineering ;
#endif
u32_t flags;
#define FW_VERSION_OPTIMIZED (0x1<<0)
#define FW_VERSION_OPTIMIZED_SHIFT 0
#define FW_VERSION_BIG_ENDIEN (0x1<<1)
#define FW_VERSION_BIG_ENDIEN_SHIFT 1
#define FW_VERSION_CHIP_VERSION (0x3<<2)
#define FW_VERSION_CHIP_VERSION_SHIFT 2
#define __FW_VERSION_RESERVED (0xFFFFFFF<<4)
#define __FW_VERSION_RESERVED_SHIFT 4
};
enum gre_tunnel_type
{
NVGRE_TUNNEL ,
L2GRE_TUNNEL ,
IPGRE_TUNNEL ,
MAX_GRE_TUNNEL_TYPE};
struct hc_dynamic_sb_drv_counters
{
u32_t dynamic_hc_drv_counter[HC_SB_MAX_DYNAMIC_INDICES] ;
};
struct hc_index_data
{
#if defined(__BIG_ENDIAN)
u8_t flags;
#define HC_INDEX_DATA_SM_ID (0x1<<0)
#define HC_INDEX_DATA_SM_ID_SHIFT 0
#define HC_INDEX_DATA_HC_ENABLED (0x1<<1)
#define HC_INDEX_DATA_HC_ENABLED_SHIFT 1
#define HC_INDEX_DATA_DYNAMIC_HC_ENABLED (0x1<<2)
#define HC_INDEX_DATA_DYNAMIC_HC_ENABLED_SHIFT 2
#define HC_INDEX_DATA_RESERVE (0x1F<<3)
#define HC_INDEX_DATA_RESERVE_SHIFT 3
u8_t timeout ;
#elif defined(__LITTLE_ENDIAN)
u8_t timeout ;
u8_t flags;
#define HC_INDEX_DATA_SM_ID (0x1<<0)
#define HC_INDEX_DATA_SM_ID_SHIFT 0
#define HC_INDEX_DATA_HC_ENABLED (0x1<<1)
#define HC_INDEX_DATA_HC_ENABLED_SHIFT 1
#define HC_INDEX_DATA_DYNAMIC_HC_ENABLED (0x1<<2)
#define HC_INDEX_DATA_DYNAMIC_HC_ENABLED_SHIFT 2
#define HC_INDEX_DATA_RESERVE (0x1F<<3)
#define HC_INDEX_DATA_RESERVE_SHIFT 3
#endif
};
struct hc_status_block_sm
{
#if defined(__BIG_ENDIAN)
u8_t igu_seg_id;
u8_t igu_sb_id ;
u8_t timer_value ;
u8_t __flags;
#elif defined(__LITTLE_ENDIAN)
u8_t __flags;
u8_t timer_value ;
u8_t igu_sb_id ;
u8_t igu_seg_id;
#endif
u32_t time_to_expire ;
};
struct pci_entity
{
#if defined(__BIG_ENDIAN)
u8_t vf_valid ;
u8_t vf_id ;
u8_t vnic_id ;
u8_t pf_id ;
#elif defined(__LITTLE_ENDIAN)
u8_t pf_id ;
u8_t vnic_id ;
u8_t vf_id ;
u8_t vf_valid ;
#endif
};
struct hc_sb_data
{
struct regpair_native_t host_sb_addr ;
struct hc_status_block_sm state_machine[HC_SB_MAX_SM] ;
struct pci_entity p_func ;
#if defined(__BIG_ENDIAN)
u8_t rsrv0;
u8_t state;
u8_t dhc_qzone_id ;
u8_t same_igu_sb_1b ;
#elif defined(__LITTLE_ENDIAN)
u8_t same_igu_sb_1b ;
u8_t dhc_qzone_id ;
u8_t state;
u8_t rsrv0;
#endif
struct regpair_native_t rsrv1[2];
};
enum hc_segment
{
HC_REGULAR_SEGMENT,
HC_DEFAULT_SEGMENT,
MAX_HC_SEGMENT};
struct hc_sp_status_block_data
{
struct regpair_native_t host_sb_addr ;
#if defined(__BIG_ENDIAN)
u8_t rsrv1;
u8_t state;
u8_t igu_seg_id ;
u8_t igu_sb_id ;
#elif defined(__LITTLE_ENDIAN)
u8_t igu_sb_id ;
u8_t igu_seg_id ;
u8_t state;
u8_t rsrv1;
#endif
struct pci_entity p_func ;
};
struct hc_status_block_data_e1x
{
struct hc_index_data index_data[HC_SB_MAX_INDICES_E1X] ;
struct hc_sb_data common ;
};
struct hc_status_block_data_e2
{
struct hc_index_data index_data[HC_SB_MAX_INDICES_E2] ;
struct hc_sb_data common ;
};
enum igu_mode
{
HC_IGU_BC_MODE ,
HC_IGU_NBC_MODE ,
MAX_IGU_MODE};
enum ip_ver
{
IP_V4,
IP_V6,
MAX_IP_VER};
enum malicious_vf_error_id
{
MALICIOUS_VF_NO_ERROR ,
VF_PF_CHANNEL_NOT_READY ,
ETH_ILLEGAL_BD_LENGTHS ,
ETH_PACKET_TOO_SHORT ,
ETH_PAYLOAD_TOO_BIG ,
ETH_ILLEGAL_ETH_TYPE ,
ETH_ILLEGAL_LSO_HDR_LEN ,
ETH_TOO_MANY_BDS ,
ETH_ZERO_HDR_NBDS ,
ETH_START_BD_NOT_SET ,
ETH_ILLEGAL_PARSE_NBDS ,
ETH_IPV6_AND_CHECKSUM ,
ETH_VLAN_FLG_INCORRECT ,
ETH_ILLEGAL_LSO_MSS ,
ETH_TUNNEL_NOT_SUPPORTED ,
MAX_MALICIOUS_VF_ERROR_ID};
enum mf_mode
{
SINGLE_FUNCTION,
MULTI_FUNCTION_SD ,
MULTI_FUNCTION_SI ,
MULTI_FUNCTION_AFEX ,
MAX_MF_MODE};
struct tstorm_per_pf_stats
{
struct regpair_t rcv_error_bytes ;
};
struct per_pf_stats
{
struct tstorm_per_pf_stats tstorm_pf_statistics;
};
struct tstorm_per_port_stats
{
u32_t mac_discard ;
u32_t mac_filter_discard ;
u32_t brb_truncate_discard ;
u32_t mf_tag_discard ;
u32_t packet_drop ;
u32_t reserved;
};
struct per_port_stats
{
struct tstorm_per_port_stats tstorm_port_statistics;
};
struct tstorm_per_queue_stats
{
struct regpair_t rcv_ucast_bytes ;
u32_t rcv_ucast_pkts ;
u32_t checksum_discard ;
struct regpair_t rcv_bcast_bytes ;
u32_t rcv_bcast_pkts ;
u32_t pkts_too_big_discard ;
struct regpair_t rcv_mcast_bytes ;
u32_t rcv_mcast_pkts ;
u32_t ttl0_discard ;
u16_t no_buff_discard;
u16_t reserved0;
u32_t reserved1;
};
struct ustorm_per_queue_stats
{
struct regpair_t ucast_no_buff_bytes ;
struct regpair_t mcast_no_buff_bytes ;
struct regpair_t bcast_no_buff_bytes ;
u32_t ucast_no_buff_pkts ;
u32_t mcast_no_buff_pkts ;
u32_t bcast_no_buff_pkts ;
u32_t coalesced_pkts ;
struct regpair_t coalesced_bytes ;
u32_t coalesced_events ;
u32_t coalesced_aborts ;
};
struct xstorm_per_queue_stats
{
struct regpair_t ucast_bytes_sent ;
struct regpair_t mcast_bytes_sent ;
struct regpair_t bcast_bytes_sent ;
u32_t ucast_pkts_sent ;
u32_t mcast_pkts_sent ;
u32_t bcast_pkts_sent ;
u32_t error_drop_pkts ;
};
struct per_queue_stats
{
struct tstorm_per_queue_stats tstorm_queue_statistics;
struct ustorm_per_queue_stats ustorm_queue_statistics;
struct xstorm_per_queue_stats xstorm_queue_statistics;
};
struct pram_fw_version
{
u8_t major ;
u8_t minor ;
u8_t revision ;
u8_t engineering ;
u8_t flags;
#define PRAM_FW_VERSION_OPTIMIZED (0x1<<0)
#define PRAM_FW_VERSION_OPTIMIZED_SHIFT 0
#define PRAM_FW_VERSION_STORM_ID (0x3<<1)
#define PRAM_FW_VERSION_STORM_ID_SHIFT 1
#define PRAM_FW_VERSION_BIG_ENDIEN (0x1<<3)
#define PRAM_FW_VERSION_BIG_ENDIEN_SHIFT 3
#define PRAM_FW_VERSION_CHIP_VERSION (0x3<<4)
#define PRAM_FW_VERSION_CHIP_VERSION_SHIFT 4
#define __PRAM_FW_VERSION_RESERVED0 (0x3<<6)
#define __PRAM_FW_VERSION_RESERVED0_SHIFT 6
};
union protocol_common_specific_data
{
u8_t protocol_data[8] ;
struct regpair_t phy_address ;
struct regpair_t mac_config_addr ;
struct afex_vif_list_ramrod_data afex_vif_list_data ;
};
struct protocol_common_spe
{
struct spe_hdr_t hdr ;
union protocol_common_specific_data data ;
};
struct set_timesync_ramrod_data
{
u8_t drift_adjust_cmd ;
u8_t offset_cmd ;
u8_t add_sub_drift_adjust_value ;
u8_t drift_adjust_value ;
u32_t drift_adjust_period ;
struct regpair_t offset_delta ;
};
struct slow_path_element
{
struct spe_hdr_t hdr ;
struct regpair_t protocol_data ;
};
struct stats_counter
{
u16_t xstats_counter ;
u16_t reserved0;
u32_t reserved1;
u16_t tstats_counter ;
u16_t reserved2;
u32_t reserved3;
u16_t ustats_counter ;
u16_t reserved4;
u32_t reserved5;
u16_t cstats_counter ;
u16_t reserved6;
u32_t reserved7;
};
struct stats_query_entry
{
u8_t kind;
u8_t index ;
u16_t funcID ;
u32_t reserved;
struct regpair_t address ;
};
struct stats_query_cmd_group
{
struct stats_query_entry query[STATS_QUERY_CMD_COUNT];
};
struct stats_query_header
{
u8_t cmd_num ;
u8_t reserved0;
u16_t drv_stats_counter;
u32_t reserved1;
struct regpair_t stats_counters_addrs ;
};
enum stats_query_type
{
STATS_TYPE_QUEUE,
STATS_TYPE_PORT,
STATS_TYPE_PF,
STATS_TYPE_TOE,
STATS_TYPE_FCOE,
MAX_STATS_QUERY_TYPE};
enum status_block_state
{
SB_DISABLED,
SB_ENABLED,
SB_CLEANED,
MAX_STATUS_BLOCK_STATE};
enum storm_id
{
USTORM_ID,
CSTORM_ID,
XSTORM_ID,
TSTORM_ID,
ATTENTION_ID,
MAX_STORM_ID};
enum traffic_type
{
LLFC_TRAFFIC_TYPE_NW ,
LLFC_TRAFFIC_TYPE_FCOE ,
LLFC_TRAFFIC_TYPE_ISCSI ,
MAX_TRAFFIC_TYPE};
struct tstorm_queue_zone_data
{
struct regpair_t reserved[4];
};
struct tstorm_vf_zone_data
{
struct regpair_t reserved;
};
enum ts_add_sub_value
{
TS_SUB_VALUE ,
TS_ADD_VALUE ,
MAX_TS_ADD_SUB_VALUE};
enum ts_drift_adjust_cmd
{
TS_DRIFT_ADJUST_KEEP ,
TS_DRIFT_ADJUST_SET ,
TS_DRIFT_ADJUST_RESET ,
MAX_TS_DRIFT_ADJUST_CMD};
enum ts_offset_cmd
{
TS_OFFSET_KEEP ,
TS_OFFSET_INC ,
TS_OFFSET_DEC ,
MAX_TS_OFFSET_CMD};
enum tunnel_mode
{
TUNN_MODE_NONE ,
TUNN_MODE_VXLAN ,
TUNN_MODE_GRE ,
MAX_TUNNEL_MODE};
struct t_measure_pci_latency_ctrl
{
struct regpair_t read_addr ;
#if defined(__BIG_ENDIAN)
u8_t sleep ;
u8_t enable ;
u8_t func_id ;
u8_t read_size ;
#elif defined(__LITTLE_ENDIAN)
u8_t read_size ;
u8_t func_id ;
u8_t enable ;
u8_t sleep ;
#endif
#if defined(__BIG_ENDIAN)
u16_t num_meas ;
u8_t reserved;
u8_t period_10us ;
#elif defined(__LITTLE_ENDIAN)
u8_t period_10us ;
u8_t reserved;
u16_t num_meas ;
#endif
};
struct t_measure_pci_latency_data
{
#if defined(__BIG_ENDIAN)
u16_t max_time_ns ;
u16_t min_time_ns ;
#elif defined(__LITTLE_ENDIAN)
u16_t min_time_ns ;
u16_t max_time_ns ;
#endif
#if defined(__BIG_ENDIAN)
u16_t reserved;
u16_t num_reads ;
#elif defined(__LITTLE_ENDIAN)
u16_t num_reads ;
u16_t reserved;
#endif
struct regpair_t sum_time_ns ;
};
struct ustorm_queue_zone_data
{
struct ustorm_eth_rx_producers eth_rx_producers ;
struct regpair_t reserved[3];
};
struct ustorm_vf_zone_data
{
struct regpair_t reserved;
};
struct vf_pf_channel_data
{
#if defined(__BIG_ENDIAN)
u16_t reserved0;
u8_t valid ;
u8_t state ;
#elif defined(__LITTLE_ENDIAN)
u8_t state ;
u8_t valid ;
u16_t reserved0;
#endif
u32_t reserved1;
};
enum vf_pf_channel_state
{
VF_PF_CHANNEL_STATE_READY ,
VF_PF_CHANNEL_STATE_WAITING_FOR_ACK ,
MAX_VF_PF_CHANNEL_STATE};
enum vif_list_rule_kind
{
VIF_LIST_RULE_SET,
VIF_LIST_RULE_GET,
VIF_LIST_RULE_CLEAR_ALL,
VIF_LIST_RULE_CLEAR_FUNC,
MAX_VIF_LIST_RULE_KIND};
struct xstorm_queue_zone_data
{
struct regpair_t reserved[4];
};
struct xstorm_vf_zone_data
{
struct regpair_t reserved;
};
enum tcp_ooo_event
{
TCP_EVENT_ADD_PEN=0,
TCP_EVENT_ADD_NEW_ISLE=1,
TCP_EVENT_ADD_ISLE_RIGHT=2,
TCP_EVENT_ADD_ISLE_LEFT=3,
TCP_EVENT_JOIN=4,
TCP_EVENT_NOP=5,
MAX_TCP_OOO_EVENT};
enum tcp_tstorm_ooo
{
TCP_TSTORM_OOO_DROP_AND_PROC_ACK,
TCP_TSTORM_OOO_SEND_PURE_ACK,
TCP_TSTORM_OOO_SUPPORTED,
MAX_TCP_TSTORM_OOO};
struct cstorm_toe_stats
{
u32_t no_tx_cqes ;
u32_t reserved;
};
struct cstorm_toe_st_context
{
u32_t bds_ring_page_base_addr_lo ;
u32_t bds_ring_page_base_addr_hi ;
u32_t free_seq ;
u32_t __last_rel_to_notify ;
#if defined(__BIG_ENDIAN)
u16_t __rss_params_ram_line ;
u16_t bd_cons ;
#elif defined(__LITTLE_ENDIAN)
u16_t bd_cons ;
u16_t __rss_params_ram_line ;
#endif
u32_t cpu_id ;
u32_t prev_snd_max ;
u32_t __reserved4 ;
};
struct cstorm_toe_st_aligned_context
{
struct cstorm_toe_st_context context ;
};
struct ustorm_toe_prefetched_isle_bd
{
u32_t __addr_lo ;
u32_t __addr_hi ;
#if defined(__BIG_ENDIAN)
u8_t __reserved1 ;
u8_t __isle_num ;
u16_t __buf_un_used ;
#elif defined(__LITTLE_ENDIAN)
u16_t __buf_un_used ;
u8_t __isle_num ;
u8_t __reserved1 ;
#endif
};
struct ustorm_toe_ring_params
{
u32_t rq_cons_addr_lo ;
u32_t rq_cons_addr_hi ;
#if defined(__BIG_ENDIAN)
u8_t __rq_local_cons ;
u8_t __rq_local_prod ;
u16_t rq_cons ;
#elif defined(__LITTLE_ENDIAN)
u16_t rq_cons ;
u8_t __rq_local_prod ;
u8_t __rq_local_cons ;
#endif
};
struct ustorm_toe_prefetched_bd
{
u32_t __addr_lo ;
u32_t __addr_hi ;
#if defined(__BIG_ENDIAN)
u16_t flags;
#define __USTORM_TOE_PREFETCHED_BD_START (0x1<<0)
#define __USTORM_TOE_PREFETCHED_BD_START_SHIFT 0
#define __USTORM_TOE_PREFETCHED_BD_END (0x1<<1)
#define __USTORM_TOE_PREFETCHED_BD_END_SHIFT 1
#define __USTORM_TOE_PREFETCHED_BD_NO_PUSH (0x1<<2)
#define __USTORM_TOE_PREFETCHED_BD_NO_PUSH_SHIFT 2
#define USTORM_TOE_PREFETCHED_BD_SPLIT (0x1<<3)
#define USTORM_TOE_PREFETCHED_BD_SPLIT_SHIFT 3
#define __USTORM_TOE_PREFETCHED_BD_RESERVED1 (0xFFF<<4)
#define __USTORM_TOE_PREFETCHED_BD_RESERVED1_SHIFT 4
u16_t __buf_un_used ;
#elif defined(__LITTLE_ENDIAN)
u16_t __buf_un_used ;
u16_t flags;
#define __USTORM_TOE_PREFETCHED_BD_START (0x1<<0)
#define __USTORM_TOE_PREFETCHED_BD_START_SHIFT 0
#define __USTORM_TOE_PREFETCHED_BD_END (0x1<<1)
#define __USTORM_TOE_PREFETCHED_BD_END_SHIFT 1
#define __USTORM_TOE_PREFETCHED_BD_NO_PUSH (0x1<<2)
#define __USTORM_TOE_PREFETCHED_BD_NO_PUSH_SHIFT 2
#define USTORM_TOE_PREFETCHED_BD_SPLIT (0x1<<3)
#define USTORM_TOE_PREFETCHED_BD_SPLIT_SHIFT 3
#define __USTORM_TOE_PREFETCHED_BD_RESERVED1 (0xFFF<<4)
#define __USTORM_TOE_PREFETCHED_BD_RESERVED1_SHIFT 4
#endif
};
struct ustorm_toe_st_context
{
u32_t __pen_rq_placed ;
u32_t pen_grq_placed_bytes ;
#if defined(__BIG_ENDIAN)
u8_t flags2;
#define USTORM_TOE_ST_CONTEXT_IGNORE_GRQ_PUSH (0x1<<0)
#define USTORM_TOE_ST_CONTEXT_IGNORE_GRQ_PUSH_SHIFT 0
#define USTORM_TOE_ST_CONTEXT_PUSH_FLAG (0x1<<1)
#define USTORM_TOE_ST_CONTEXT_PUSH_FLAG_SHIFT 1
#define USTORM_TOE_ST_CONTEXT_RSS_UPDATE_ENABLED (0x1<<2)
#define USTORM_TOE_ST_CONTEXT_RSS_UPDATE_ENABLED_SHIFT 2
#define USTORM_TOE_ST_CONTEXT_RESERVED0 (0x1F<<3)
#define USTORM_TOE_ST_CONTEXT_RESERVED0_SHIFT 3
u8_t __indirection_shift ;
u16_t indirection_ram_offset ;
#elif defined(__LITTLE_ENDIAN)
u16_t indirection_ram_offset ;
u8_t __indirection_shift ;
u8_t flags2;
#define USTORM_TOE_ST_CONTEXT_IGNORE_GRQ_PUSH (0x1<<0)
#define USTORM_TOE_ST_CONTEXT_IGNORE_GRQ_PUSH_SHIFT 0
#define USTORM_TOE_ST_CONTEXT_PUSH_FLAG (0x1<<1)
#define USTORM_TOE_ST_CONTEXT_PUSH_FLAG_SHIFT 1
#define USTORM_TOE_ST_CONTEXT_RSS_UPDATE_ENABLED (0x1<<2)
#define USTORM_TOE_ST_CONTEXT_RSS_UPDATE_ENABLED_SHIFT 2
#define USTORM_TOE_ST_CONTEXT_RESERVED0 (0x1F<<3)
#define USTORM_TOE_ST_CONTEXT_RESERVED0_SHIFT 3
#endif
u32_t __rq_available_bytes;
#if defined(__BIG_ENDIAN)
u8_t isles_counter ;
u8_t __push_timer_state ;
u16_t rcv_indication_size ;
#elif defined(__LITTLE_ENDIAN)
u16_t rcv_indication_size ;
u8_t __push_timer_state ;
u8_t isles_counter ;
#endif
u32_t __min_expiration_time ;
u32_t initial_rcv_wnd ;
u32_t __bytes_cons ;
u32_t __prev_consumed_grq_bytes ;
u32_t prev_rcv_win_right_edge ;
u32_t rcv_nxt ;
struct ustorm_toe_prefetched_isle_bd __isle_bd ;
struct ustorm_toe_ring_params pen_ring_params ;
struct ustorm_toe_prefetched_bd __pen_bd_0 ;
struct ustorm_toe_prefetched_bd __pen_bd_1 ;
struct ustorm_toe_prefetched_bd __pen_bd_2 ;
struct ustorm_toe_prefetched_bd __pen_bd_3 ;
struct ustorm_toe_prefetched_bd __pen_bd_4 ;
struct ustorm_toe_prefetched_bd __pen_bd_5 ;
struct ustorm_toe_prefetched_bd __pen_bd_6 ;
struct ustorm_toe_prefetched_bd __pen_bd_7 ;
struct ustorm_toe_prefetched_bd __pen_bd_8 ;
struct ustorm_toe_prefetched_bd __pen_bd_9 ;
u32_t __reserved3 ;
};
struct ustorm_toe_st_aligned_context
{
struct ustorm_toe_st_context context ;
};
struct tstorm_toe_st_context_section
{
u32_t reserved0[3];
};
struct tstorm_toe_st_context
{
struct tstorm_tcp_st_context_section tcp ;
struct tstorm_toe_st_context_section toe ;
};
struct tstorm_toe_st_aligned_context
{
struct tstorm_toe_st_context context ;
u8_t padding[16] ;
};
struct xstorm_toe_context_section
{
u32_t tx_bd_page_base_lo ;
u32_t tx_bd_page_base_hi ;
#if defined(__BIG_ENDIAN)
u16_t tx_bd_offset ;
u16_t tx_bd_cons ;
#elif defined(__LITTLE_ENDIAN)
u16_t tx_bd_cons ;
u16_t tx_bd_offset ;
#endif
#if defined(__BIG_ENDIAN)
u16_t bd_prod;
u16_t seqMismatchCnt;
#elif defined(__LITTLE_ENDIAN)
u16_t seqMismatchCnt;
u16_t bd_prod;
#endif
u32_t driver_doorbell_info_ptr_lo;
u32_t driver_doorbell_info_ptr_hi;
};
struct xstorm_toe_st_context
{
struct xstorm_common_context_section common;
struct xstorm_toe_context_section toe;
};
struct xstorm_toe_st_aligned_context
{
struct xstorm_toe_st_context context ;
};
struct toe_context
{
struct ustorm_toe_st_aligned_context ustorm_st_context ;
struct tstorm_toe_st_aligned_context tstorm_st_context ;
struct xstorm_toe_ag_context xstorm_ag_context ;
struct tstorm_toe_ag_context tstorm_ag_context ;
struct cstorm_toe_ag_context cstorm_ag_context ;
struct ustorm_toe_ag_context ustorm_ag_context ;
struct timers_block_context timers_context ;
struct xstorm_toe_st_aligned_context xstorm_st_context ;
struct cstorm_toe_st_aligned_context cstorm_st_context ;
};
struct toe_initiate_offload_ramrod_data
{
u32_t flags;
#define TOE_INITIATE_OFFLOAD_RAMROD_DATA_SEARCH_CONFIG_FAILED (0x1<<0)
#define TOE_INITIATE_OFFLOAD_RAMROD_DATA_SEARCH_CONFIG_FAILED_SHIFT 0
#define TOE_INITIATE_OFFLOAD_RAMROD_DATA_LICENSE_FAILURE (0x1<<1)
#define TOE_INITIATE_OFFLOAD_RAMROD_DATA_LICENSE_FAILURE_SHIFT 1
#define TOE_INITIATE_OFFLOAD_RAMROD_DATA_RESERVED0 (0x3FFFFFFF<<2)
#define TOE_INITIATE_OFFLOAD_RAMROD_DATA_RESERVED0_SHIFT 2
u32_t reserved1;
};
struct toe_init_ramrod_data
{
#if defined(__BIG_ENDIAN)
u16_t reserved1;
u8_t reserved0;
u8_t rss_num ;
#elif defined(__LITTLE_ENDIAN)
u8_t rss_num ;
u8_t reserved0;
u16_t reserved1;
#endif
u32_t reserved2;
};
struct toe_page_addr_bd
{
u32_t addr_lo ;
u32_t addr_hi ;
u8_t reserved[8] ;
};
union toe_ramrod_data
{
struct ramrod_data general;
struct toe_initiate_offload_ramrod_data initiate_offload;
};
enum toe_rss_update_opcode
{
TOE_RSS_UPD_QUIET,
TOE_RSS_UPD_SLEEPING,
TOE_RSS_UPD_DELAYED,
MAX_TOE_RSS_UPDATE_OPCODE};
struct toe_rss_update_ramrod_data
{
u8_t indirection_table[128] ;
#if defined(__BIG_ENDIAN)
u16_t reserved0;
u16_t toe_rss_bitmap ;
#elif defined(__LITTLE_ENDIAN)
u16_t toe_rss_bitmap ;
u16_t reserved0;
#endif
u32_t reserved1;
};
struct toe_rx_bd
{
u32_t addr_lo ;
u32_t addr_hi ;
#if defined(__BIG_ENDIAN)
u16_t flags;
#define TOE_RX_BD_START (0x1<<0)
#define TOE_RX_BD_START_SHIFT 0
#define TOE_RX_BD_END (0x1<<1)
#define TOE_RX_BD_END_SHIFT 1
#define TOE_RX_BD_NO_PUSH (0x1<<2)
#define TOE_RX_BD_NO_PUSH_SHIFT 2
#define TOE_RX_BD_SPLIT (0x1<<3)
#define TOE_RX_BD_SPLIT_SHIFT 3
#define TOE_RX_BD_RESERVED1 (0xFFF<<4)
#define TOE_RX_BD_RESERVED1_SHIFT 4
u16_t size ;
#elif defined(__LITTLE_ENDIAN)
u16_t size ;
u16_t flags;
#define TOE_RX_BD_START (0x1<<0)
#define TOE_RX_BD_START_SHIFT 0
#define TOE_RX_BD_END (0x1<<1)
#define TOE_RX_BD_END_SHIFT 1
#define TOE_RX_BD_NO_PUSH (0x1<<2)
#define TOE_RX_BD_NO_PUSH_SHIFT 2
#define TOE_RX_BD_SPLIT (0x1<<3)
#define TOE_RX_BD_SPLIT_SHIFT 3
#define TOE_RX_BD_RESERVED1 (0xFFF<<4)
#define TOE_RX_BD_RESERVED1_SHIFT 4
#endif
u32_t dbg_bytes_prod ;
};
struct toe_rx_completion_ramrod_data
{
#if defined(__BIG_ENDIAN)
u16_t reserved0;
u16_t hash_value ;
#elif defined(__LITTLE_ENDIAN)
u16_t hash_value ;
u16_t reserved0;
#endif
u32_t reserved1;
};
struct toe_rx_cqe_ooo_params
{
u32_t ooo_params;
#define TOE_RX_CQE_OOO_PARAMS_NBYTES (0xFFFFFF<<0)
#define TOE_RX_CQE_OOO_PARAMS_NBYTES_SHIFT 0
#define TOE_RX_CQE_OOO_PARAMS_ISLE_NUM (0xFF<<24)
#define TOE_RX_CQE_OOO_PARAMS_ISLE_NUM_SHIFT 24
};
struct toe_rx_cqe_in_order_params
{
u32_t in_order_params;
#define TOE_RX_CQE_IN_ORDER_PARAMS_NBYTES (0xFFFFFFFF<<0)
#define TOE_RX_CQE_IN_ORDER_PARAMS_NBYTES_SHIFT 0
};
union toe_rx_cqe_data_union
{
struct toe_rx_cqe_ooo_params ooo_params ;
struct toe_rx_cqe_in_order_params in_order_params ;
u32_t raw_data ;
};
struct toe_rx_cqe
{
u32_t params1;
#define TOE_RX_CQE_CID (0xFFFFFF<<0)
#define TOE_RX_CQE_CID_SHIFT 0
#define TOE_RX_CQE_COMPLETION_OPCODE (0xFF<<24)
#define TOE_RX_CQE_COMPLETION_OPCODE_SHIFT 24
union toe_rx_cqe_data_union data ;
};
struct toe_rx_db_data
{
u32_t rcv_win_right_edge ;
u32_t bytes_prod ;
#if defined(__BIG_ENDIAN)
u8_t reserved1 ;
u8_t flags;
#define TOE_RX_DB_DATA_IGNORE_WND_UPDATES (0x1<<0)
#define TOE_RX_DB_DATA_IGNORE_WND_UPDATES_SHIFT 0
#define TOE_RX_DB_DATA_PARTIAL_FILLED_BUF (0x1<<1)
#define TOE_RX_DB_DATA_PARTIAL_FILLED_BUF_SHIFT 1
#define TOE_RX_DB_DATA_RESERVED0 (0x3F<<2)
#define TOE_RX_DB_DATA_RESERVED0_SHIFT 2
u16_t bds_prod ;
#elif defined(__LITTLE_ENDIAN)
u16_t bds_prod ;
u8_t flags;
#define TOE_RX_DB_DATA_IGNORE_WND_UPDATES (0x1<<0)
#define TOE_RX_DB_DATA_IGNORE_WND_UPDATES_SHIFT 0
#define TOE_RX_DB_DATA_PARTIAL_FILLED_BUF (0x1<<1)
#define TOE_RX_DB_DATA_PARTIAL_FILLED_BUF_SHIFT 1
#define TOE_RX_DB_DATA_RESERVED0 (0x3F<<2)
#define TOE_RX_DB_DATA_RESERVED0_SHIFT 2
u8_t reserved1 ;
#endif
u32_t consumed_grq_bytes ;
};
struct toe_rx_grq_bd
{
u32_t addr_lo ;
u32_t addr_hi ;
};
union toe_spe_data
{
u8_t protocol_data[8] ;
struct regpair_t phys_addr ;
struct toe_rx_completion_ramrod_data rx_completion ;
struct toe_init_ramrod_data toe_init ;
};
struct toe_spe
{
struct spe_hdr_t hdr ;
union toe_spe_data toe_data ;
};
enum toe_sq_opcode_type
{
CMP_OPCODE_TOE_GA=1,
CMP_OPCODE_TOE_GR=2,
CMP_OPCODE_TOE_GNI=3,
CMP_OPCODE_TOE_GAIR=4,
CMP_OPCODE_TOE_GAIL=5,
CMP_OPCODE_TOE_GRI=6,
CMP_OPCODE_TOE_GJ=7,
CMP_OPCODE_TOE_DGI=8,
CMP_OPCODE_TOE_CMP=9,
CMP_OPCODE_TOE_REL=10,
CMP_OPCODE_TOE_SKP=11,
CMP_OPCODE_TOE_URG=12,
CMP_OPCODE_TOE_RT_TO=13,
CMP_OPCODE_TOE_KA_TO=14,
CMP_OPCODE_TOE_MAX_RT=15,
CMP_OPCODE_TOE_DBT_RE=16,
CMP_OPCODE_TOE_SYN=17,
CMP_OPCODE_TOE_OPT_ERR=18,
CMP_OPCODE_TOE_FW2_TO=19,
CMP_OPCODE_TOE_2WY_CLS=20,
CMP_OPCODE_TOE_TX_CMP=21,
RAMROD_OPCODE_TOE_INIT=32,
RAMROD_OPCODE_TOE_RSS_UPDATE=33,
RAMROD_OPCODE_TOE_TERMINATE_RING=34,
CMP_OPCODE_TOE_RST_RCV=48,
CMP_OPCODE_TOE_FIN_RCV=49,
CMP_OPCODE_TOE_FIN_UPL=50,
CMP_OPCODE_TOE_SRC_ERR=51,
CMP_OPCODE_TOE_LCN_ERR=52,
RAMROD_OPCODE_TOE_INITIATE_OFFLOAD=80,
RAMROD_OPCODE_TOE_SEARCHER_DELETE=81,
RAMROD_OPCODE_TOE_TERMINATE=82,
RAMROD_OPCODE_TOE_QUERY=83,
RAMROD_OPCODE_TOE_RESET_SEND=84,
RAMROD_OPCODE_TOE_INVALIDATE=85,
RAMROD_OPCODE_TOE_EMPTY_RAMROD=86,
RAMROD_OPCODE_TOE_UPDATE=87,
MAX_TOE_SQ_OPCODE_TYPE};
struct xstorm_toe_stats_section
{
u32_t tcp_out_segments;
u32_t tcp_retransmitted_segments;
struct regpair_t ip_out_octets;
u32_t ip_out_requests;
u32_t reserved;
};
struct xstorm_toe_stats
{
struct xstorm_toe_stats_section statistics[2] ;
u32_t reserved[2];
};
struct tstorm_toe_stats_section
{
u32_t ip_in_receives;
u32_t ip_in_delivers;
struct regpair_t ip_in_octets;
u32_t tcp_in_errors ;
u32_t ip_in_header_errors ;
u32_t ip_in_discards ;
u32_t ip_in_truncated_packets;
};
struct tstorm_toe_stats
{
struct tstorm_toe_stats_section statistics[2] ;
u32_t reserved[2];
};
struct toe_stats_query
{
struct xstorm_toe_stats xstorm_toe ;
struct tstorm_toe_stats tstorm_toe ;
struct cstorm_toe_stats cstorm_toe ;
};
struct toe_tx_bd
{
u32_t addr_lo ;
u32_t addr_hi ;
#if defined(__BIG_ENDIAN)
u16_t flags;
#define TOE_TX_BD_PUSH (0x1<<0)
#define TOE_TX_BD_PUSH_SHIFT 0
#define TOE_TX_BD_NOTIFY (0x1<<1)
#define TOE_TX_BD_NOTIFY_SHIFT 1
#define TOE_TX_BD_FIN (0x1<<2)
#define TOE_TX_BD_FIN_SHIFT 2
#define TOE_TX_BD_LARGE_IO (0x1<<3)
#define TOE_TX_BD_LARGE_IO_SHIFT 3
#define TOE_TX_BD_RESERVED1 (0xFFF<<4)
#define TOE_TX_BD_RESERVED1_SHIFT 4
u16_t size ;
#elif defined(__LITTLE_ENDIAN)
u16_t size ;
u16_t flags;
#define TOE_TX_BD_PUSH (0x1<<0)
#define TOE_TX_BD_PUSH_SHIFT 0
#define TOE_TX_BD_NOTIFY (0x1<<1)
#define TOE_TX_BD_NOTIFY_SHIFT 1
#define TOE_TX_BD_FIN (0x1<<2)
#define TOE_TX_BD_FIN_SHIFT 2
#define TOE_TX_BD_LARGE_IO (0x1<<3)
#define TOE_TX_BD_LARGE_IO_SHIFT 3
#define TOE_TX_BD_RESERVED1 (0xFFF<<4)
#define TOE_TX_BD_RESERVED1_SHIFT 4
#endif
u32_t nextBdStartSeq;
};
struct toe_tx_cqe
{
u32_t params;
#define TOE_TX_CQE_CID (0xFFFFFF<<0)
#define TOE_TX_CQE_CID_SHIFT 0
#define TOE_TX_CQE_COMPLETION_OPCODE (0xFF<<24)
#define TOE_TX_CQE_COMPLETION_OPCODE_SHIFT 24
u32_t len ;
};
struct toe_tx_db_data
{
u32_t bytes_prod_seq ;
#if defined(__BIG_ENDIAN)
u16_t flags;
#define TOE_TX_DB_DATA_FIN (0x1<<0)
#define TOE_TX_DB_DATA_FIN_SHIFT 0
#define TOE_TX_DB_DATA_FLUSH (0x1<<1)
#define TOE_TX_DB_DATA_FLUSH_SHIFT 1
#define TOE_TX_DB_DATA_RESERVE (0x3FFF<<2)
#define TOE_TX_DB_DATA_RESERVE_SHIFT 2
u16_t bds_prod ;
#elif defined(__LITTLE_ENDIAN)
u16_t bds_prod ;
u16_t flags;
#define TOE_TX_DB_DATA_FIN (0x1<<0)
#define TOE_TX_DB_DATA_FIN_SHIFT 0
#define TOE_TX_DB_DATA_FLUSH (0x1<<1)
#define TOE_TX_DB_DATA_FLUSH_SHIFT 1
#define TOE_TX_DB_DATA_RESERVE (0x3FFF<<2)
#define TOE_TX_DB_DATA_RESERVE_SHIFT 2
#endif
};
struct toe_update_ramrod_cached_params
{
u16_t changed_fields;
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_DEST_ADDR_CHANGED (0x1<<0)
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_DEST_ADDR_CHANGED_SHIFT 0
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_MSS_CHANGED (0x1<<1)
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_MSS_CHANGED_SHIFT 1
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_KA_TIMEOUT_CHANGED (0x1<<2)
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_KA_TIMEOUT_CHANGED_SHIFT 2
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_KA_INTERVAL_CHANGED (0x1<<3)
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_KA_INTERVAL_CHANGED_SHIFT 3
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_MAX_RT_CHANGED (0x1<<4)
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_MAX_RT_CHANGED_SHIFT 4
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_RCV_INDICATION_SIZE_CHANGED (0x1<<5)
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_RCV_INDICATION_SIZE_CHANGED_SHIFT 5
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_FLOW_LABEL_CHANGED (0x1<<6)
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_FLOW_LABEL_CHANGED_SHIFT 6
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_ENABLE_KEEPALIVE_CHANGED (0x1<<7)
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_ENABLE_KEEPALIVE_CHANGED_SHIFT 7
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_ENABLE_NAGLE_CHANGED (0x1<<8)
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_ENABLE_NAGLE_CHANGED_SHIFT 8
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_TTL_CHANGED (0x1<<9)
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_TTL_CHANGED_SHIFT 9
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_HOP_LIMIT_CHANGED (0x1<<10)
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_HOP_LIMIT_CHANGED_SHIFT 10
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_TOS_CHANGED (0x1<<11)
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_TOS_CHANGED_SHIFT 11
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_TRAFFIC_CLASS_CHANGED (0x1<<12)
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_TRAFFIC_CLASS_CHANGED_SHIFT 12
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_KA_MAX_PROBE_COUNT_CHANGED (0x1<<13)
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_KA_MAX_PROBE_COUNT_CHANGED_SHIFT 13
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_USER_PRIORITY_CHANGED (0x1<<14)
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_USER_PRIORITY_CHANGED_SHIFT 14
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_INITIAL_RCV_WND_CHANGED (0x1<<15)
#define TOE_UPDATE_RAMROD_CACHED_PARAMS_INITIAL_RCV_WND_CHANGED_SHIFT 15
u8_t ka_restart ;
u8_t retransmit_restart ;
u8_t dest_addr[6];
u16_t mss;
u32_t ka_timeout;
u32_t ka_interval;
u32_t max_rt;
u32_t flow_label ;
u16_t rcv_indication_size;
u8_t enable_keepalive ;
u8_t enable_nagle ;
u8_t ttl;
u8_t hop_limit;
u8_t tos;
u8_t traffic_class;
u8_t ka_max_probe_count;
u8_t user_priority ;
u16_t reserved2;
u32_t initial_rcv_wnd;
u32_t reserved1;
};
struct ustorm_toe_rx_pause_data_e1h
{
#if defined(__BIG_ENDIAN)
u16_t grq_thr_low ;
u16_t cq_thr_low ;
#elif defined(__LITTLE_ENDIAN)
u16_t cq_thr_low ;
u16_t grq_thr_low ;
#endif
#if defined(__BIG_ENDIAN)
u16_t grq_thr_high ;
u16_t cq_thr_high ;
#elif defined(__LITTLE_ENDIAN)
u16_t cq_thr_high ;
u16_t grq_thr_high ;
#endif
};
#endif