/* Control Queue information */
struct ice_ctl_q_info {
enum ice_ctl_q qtype;
+ enum ice_aq_err rq_last_status; /* last status on receive queue */
struct ice_ctl_q_ring rq; /* receive queue */
struct ice_ctl_q_ring sq; /* send queue */
u32 sq_cmd_timeout; /* send queue cmd write back timeout */
u16 num_sq_entries; /* send queue depth */
u16 rq_buf_size; /* receive queue buffer size */
u16 sq_buf_size; /* send queue buffer size */
+ enum ice_aq_err sq_last_status; /* last status on send queue */
struct ice_lock sq_lock; /* Send queue lock */
struct ice_lock rq_lock; /* Receive queue lock */
- enum ice_aq_err sq_last_status; /* last status on send queue */
- enum ice_aq_err rq_last_status; /* last status on receive queue */
};
#endif /* _ICE_CONTROLQ_H_ */
#ifndef _ICE_FLEX_TYPE_H_
#define _ICE_FLEX_TYPE_H_
-#define ICE_FV_OFFSET_INVAL 0x1FF
+#define ICE_FV_OFFSET_INVAL 0x1FF
#pragma pack(1)
/* Extraction Sequence (Field Vector) Table */
u16 off; /* Offset within the protocol header */
u8 resvrd;
};
-
#pragma pack()
#define ICE_MAX_FV_WORDS 48
__le16 hv_src_port_key;
u8 tcam_search_key;
};
-
#pragma pack()
struct ice_boost_key {
__le16 offset;
u8 value[1];
};
-
#pragma pack()
#define ICE_XLT1_SIZE(n) (sizeof(struct ice_xlt1_section) + \
struct ice_tunnel_entry {
enum ice_tunnel_type type;
- u8 valid;
- u8 in_use;
- u8 marked;
u16 boost_addr;
u16 port;
struct ice_boost_tcam_entry *boost_entry;
+ u8 valid;
+ u8 in_use;
+ u8 marked;
};
#define ICE_TUNNEL_MAX_ENTRIES 16
struct ice_tunnel_table {
- u16 count;
struct ice_tunnel_entry tbl[ICE_TUNNEL_MAX_ENTRIES];
+ u16 count;
};
struct ice_pkg_es {
#define ICE_DEFAULT_PTG 0
struct ice_ptg_entry {
- u8 in_use;
struct ice_ptg_ptype *first_ptype;
+ u8 in_use;
};
struct ice_ptg_ptype {
- u8 ptg;
struct ice_ptg_ptype *next_ptype;
+ u8 ptg;
};
#define ICE_MAX_TCAM_PER_PROFILE 8
#define ICE_INVALID_TCAM 0xFFFF
struct ice_tcam_inf {
+ u16 tcam_idx;
u8 ptg;
u8 prof_id;
- u16 tcam_idx;
u8 in_use;
};
};
struct ice_vsig_entry {
- u8 in_use;
struct LIST_HEAD_TYPE prop_lst;
struct ice_vsig_vsi *first_vsi;
+ u8 in_use;
};
struct ice_vsig_vsi {
+ struct ice_vsig_vsi *next_vsi;
+ u32 prop_mask;
u16 changed;
u16 vsig;
- u32 prop_mask;
- struct ice_vsig_vsi *next_vsi;
};
#define ICE_XLT1_CNT 1024
/* XLT1 Table */
struct ice_xlt1 {
- u32 sid;
- u16 count;
struct ice_ptg_entry *ptg_tbl;
struct ice_ptg_ptype *ptypes;
u8 *t;
+ u32 sid;
+ u16 count;
};
#define ICE_XLT2_CNT 768
/* XLT2 Table */
struct ice_xlt2 {
- u32 sid;
- u16 count;
struct ice_vsig_entry *vsig_tbl;
struct ice_vsig_vsi *vsis;
u16 *t;
+ u32 sid;
+ u16 count;
};
/* Extraction sequence - list of match fields:
__le16 count;
struct ice_prof_tcam_entry entry[1];
};
-
#pragma pack()
struct ice_prof_tcam {
u32 sid;
u16 count;
u16 max_prof_id;
- u8 cdid_bits; /* # cdid bits to use in key, 0, 2, 4, or 8 */
struct ice_prof_tcam_entry *t;
+ u8 cdid_bits; /* # cdid bits to use in key, 0, 2, 4, or 8 */
};
struct ice_prof_redir {
+ u8 *t;
u32 sid;
u16 count;
- u8 *t;
};
/* Tables per block */
/* Manage parameters and info. used during the creation of a flow profile */
struct ice_flow_prof_params {
enum ice_block blk;
- struct ice_flow_prof *prof;
-
u16 entry_length; /* # of bytes formatted entry will require */
u8 es_cnt;
+ struct ice_flow_prof *prof;
+
/* For ACL, the es[0] will have the data of ICE_RX_MDID_PKT_FLAGS_15_0
* This will give us the direction flags.
*/
struct LIST_ENTRY_TYPE l_entry;
u64 id;
- u16 vsi_handle;
- enum ice_flow_priority priority;
struct ice_flow_prof *prof;
-
+ /* Action list */
+ struct ice_flow_action *acts;
/* Flow entry's content */
- u16 entry_sz;
void *entry;
-
- /* Action list */
+ enum ice_flow_priority priority;
+ u16 vsi_handle;
+ u16 entry_sz;
u8 acts_cnt;
- struct ice_flow_action *acts;
};
#define ICE_FLOW_ENTRY_HNDL(e) ((unsigned long)e)
u64 id;
enum ice_flow_dir dir;
+ u8 segs_cnt;
+ u8 acts_cnt;
/* Keep track of flow entries associated with this flow profile */
struct ice_lock entries_lock;
struct LIST_HEAD_TYPE entries;
- u8 segs_cnt;
struct ice_flow_seg_info segs[ICE_FLOW_SEG_MAX];
/* software VSI handles referenced by this flow profile */
} cfg;
/* Default actions */
- u8 acts_cnt;
struct ice_flow_action *acts;
};