Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ycai
simbricks
Commits
bdf29016
Commit
bdf29016
authored
Aug 31, 2020
by
Antoine Kaufmann
Browse files
i40e: import descriptor defines and structs from intel driver
parent
bdb271b9
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
608 additions
and
0 deletions
+608
-0
i40e_bm/base/i40e_rxtxq.h
i40e_bm/base/i40e_rxtxq.h
+606
-0
i40e_bm/i40e_base_wrapper.h
i40e_bm/i40e_base_wrapper.h
+2
-0
No files found.
i40e_bm/base/i40e_rxtxq.h
0 → 100644
View file @
bdf29016
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2001-2020 Intel Corporation
*/
#ifndef _I40E_RXTXQ_H_
#define _I40E_RXTXQ_H_
/* RX Descriptors */
union
i40e_16byte_rx_desc
{
struct
{
__le64
pkt_addr
;
/* Packet buffer address */
__le64
hdr_addr
;
/* Header buffer address */
}
read
;
struct
{
struct
{
struct
{
union
{
__le16
mirroring_status
;
__le16
fcoe_ctx_id
;
}
mirr_fcoe
;
__le16
l2tag1
;
}
lo_dword
;
union
{
__le32
rss
;
/* RSS Hash */
__le32
fd_id
;
/* Flow director filter id */
__le32
fcoe_param
;
/* FCoE DDP Context id */
}
hi_dword
;
}
qword0
;
struct
{
/* ext status/error/pktype/length */
__le64
status_error_len
;
}
qword1
;
}
wb
;
/* writeback */
};
union
i40e_32byte_rx_desc
{
struct
{
__le64
pkt_addr
;
/* Packet buffer address */
__le64
hdr_addr
;
/* Header buffer address */
/* bit 0 of hdr_buffer_addr is DD bit */
__le64
rsvd1
;
__le64
rsvd2
;
}
read
;
struct
{
struct
{
struct
{
union
{
__le16
mirroring_status
;
__le16
fcoe_ctx_id
;
}
mirr_fcoe
;
__le16
l2tag1
;
}
lo_dword
;
union
{
__le32
rss
;
/* RSS Hash */
__le32
fcoe_param
;
/* FCoE DDP Context id */
/* Flow director filter id in case of
* Programming status desc WB
*/
__le32
fd_id
;
}
hi_dword
;
}
qword0
;
struct
{
/* status/error/pktype/length */
__le64
status_error_len
;
}
qword1
;
struct
{
__le16
ext_status
;
/* extended status */
__le16
rsvd
;
__le16
l2tag2_1
;
__le16
l2tag2_2
;
}
qword2
;
struct
{
union
{
__le32
flex_bytes_lo
;
__le32
pe_status
;
}
lo_dword
;
union
{
__le32
flex_bytes_hi
;
__le32
fd_id
;
}
hi_dword
;
}
qword3
;
}
wb
;
/* writeback */
};
#define I40E_RXD_QW0_MIRROR_STATUS_SHIFT 8
#define I40E_RXD_QW0_MIRROR_STATUS_MASK (0x3FUL << \
I40E_RXD_QW0_MIRROR_STATUS_SHIFT)
#define I40E_RXD_QW0_FCOEINDX_SHIFT 0
#define I40E_RXD_QW0_FCOEINDX_MASK (0xFFFUL << \
I40E_RXD_QW0_FCOEINDX_SHIFT)
enum
i40e_rx_desc_status_bits
{
/* Note: These are predefined bit offsets */
I40E_RX_DESC_STATUS_DD_SHIFT
=
0
,
I40E_RX_DESC_STATUS_EOF_SHIFT
=
1
,
I40E_RX_DESC_STATUS_L2TAG1P_SHIFT
=
2
,
I40E_RX_DESC_STATUS_L3L4P_SHIFT
=
3
,
I40E_RX_DESC_STATUS_CRCP_SHIFT
=
4
,
I40E_RX_DESC_STATUS_TSYNINDX_SHIFT
=
5
,
/* 2 BITS */
I40E_RX_DESC_STATUS_TSYNVALID_SHIFT
=
7
,
I40E_RX_DESC_STATUS_EXT_UDP_0_SHIFT
=
8
,
I40E_RX_DESC_STATUS_UMBCAST_SHIFT
=
9
,
/* 2 BITS */
I40E_RX_DESC_STATUS_FLM_SHIFT
=
11
,
I40E_RX_DESC_STATUS_FLTSTAT_SHIFT
=
12
,
/* 2 BITS */
I40E_RX_DESC_STATUS_LPBK_SHIFT
=
14
,
I40E_RX_DESC_STATUS_IPV6EXADD_SHIFT
=
15
,
I40E_RX_DESC_STATUS_RESERVED2_SHIFT
=
16
,
/* 2 BITS */
I40E_RX_DESC_STATUS_INT_UDP_0_SHIFT
=
18
,
I40E_RX_DESC_STATUS_LAST
/* this entry must be last!!! */
};
#define I40E_RXD_QW1_STATUS_SHIFT 0
#define I40E_RXD_QW1_STATUS_MASK ((BIT(I40E_RX_DESC_STATUS_LAST) - 1) << \
I40E_RXD_QW1_STATUS_SHIFT)
#define I40E_RXD_QW1_STATUS_TSYNINDX_SHIFT I40E_RX_DESC_STATUS_TSYNINDX_SHIFT
#define I40E_RXD_QW1_STATUS_TSYNINDX_MASK (0x3UL << \
I40E_RXD_QW1_STATUS_TSYNINDX_SHIFT)
#define I40E_RXD_QW1_STATUS_TSYNVALID_SHIFT I40E_RX_DESC_STATUS_TSYNVALID_SHIFT
#define I40E_RXD_QW1_STATUS_TSYNVALID_MASK BIT_ULL(I40E_RXD_QW1_STATUS_TSYNVALID_SHIFT)
#define I40E_RXD_QW1_STATUS_UMBCAST_SHIFT I40E_RX_DESC_STATUS_UMBCAST
#define I40E_RXD_QW1_STATUS_UMBCAST_MASK (0x3UL << \
I40E_RXD_QW1_STATUS_UMBCAST_SHIFT)
enum
i40e_rx_desc_fltstat_values
{
I40E_RX_DESC_FLTSTAT_NO_DATA
=
0
,
I40E_RX_DESC_FLTSTAT_RSV_FD_ID
=
1
,
/* 16byte desc? FD_ID : RSV */
I40E_RX_DESC_FLTSTAT_RSV
=
2
,
I40E_RX_DESC_FLTSTAT_RSS_HASH
=
3
,
};
#define I40E_RXD_PACKET_TYPE_UNICAST 0
#define I40E_RXD_PACKET_TYPE_MULTICAST 1
#define I40E_RXD_PACKET_TYPE_BROADCAST 2
#define I40E_RXD_PACKET_TYPE_MIRRORED 3
#define I40E_RXD_QW1_ERROR_SHIFT 19
#define I40E_RXD_QW1_ERROR_MASK (0xFFUL << I40E_RXD_QW1_ERROR_SHIFT)
enum
i40e_rx_desc_error_bits
{
/* Note: These are predefined bit offsets */
I40E_RX_DESC_ERROR_RXE_SHIFT
=
0
,
I40E_RX_DESC_ERROR_RECIPE_SHIFT
=
1
,
I40E_RX_DESC_ERROR_HBO_SHIFT
=
2
,
I40E_RX_DESC_ERROR_L3L4E_SHIFT
=
3
,
/* 3 BITS */
I40E_RX_DESC_ERROR_IPE_SHIFT
=
3
,
I40E_RX_DESC_ERROR_L4E_SHIFT
=
4
,
I40E_RX_DESC_ERROR_EIPE_SHIFT
=
5
,
I40E_RX_DESC_ERROR_OVERSIZE_SHIFT
=
6
,
I40E_RX_DESC_ERROR_PPRS_SHIFT
=
7
};
enum
i40e_rx_desc_error_l3l4e_fcoe_masks
{
I40E_RX_DESC_ERROR_L3L4E_NONE
=
0
,
I40E_RX_DESC_ERROR_L3L4E_PROT
=
1
,
I40E_RX_DESC_ERROR_L3L4E_FC
=
2
,
I40E_RX_DESC_ERROR_L3L4E_DMAC_ERR
=
3
,
I40E_RX_DESC_ERROR_L3L4E_DMAC_WARN
=
4
};
#define I40E_RXD_QW1_PTYPE_SHIFT 30
#define I40E_RXD_QW1_PTYPE_MASK (0xFFULL << I40E_RXD_QW1_PTYPE_SHIFT)
/* Packet type non-ip values */
enum
i40e_rx_l2_ptype
{
I40E_RX_PTYPE_L2_RESERVED
=
0
,
I40E_RX_PTYPE_L2_MAC_PAY2
=
1
,
I40E_RX_PTYPE_L2_TIMESYNC_PAY2
=
2
,
I40E_RX_PTYPE_L2_FIP_PAY2
=
3
,
I40E_RX_PTYPE_L2_OUI_PAY2
=
4
,
I40E_RX_PTYPE_L2_MACCNTRL_PAY2
=
5
,
I40E_RX_PTYPE_L2_LLDP_PAY2
=
6
,
I40E_RX_PTYPE_L2_ECP_PAY2
=
7
,
I40E_RX_PTYPE_L2_EVB_PAY2
=
8
,
I40E_RX_PTYPE_L2_QCN_PAY2
=
9
,
I40E_RX_PTYPE_L2_EAPOL_PAY2
=
10
,
I40E_RX_PTYPE_L2_ARP
=
11
,
I40E_RX_PTYPE_L2_FCOE_PAY3
=
12
,
I40E_RX_PTYPE_L2_FCOE_FCDATA_PAY3
=
13
,
I40E_RX_PTYPE_L2_FCOE_FCRDY_PAY3
=
14
,
I40E_RX_PTYPE_L2_FCOE_FCRSP_PAY3
=
15
,
I40E_RX_PTYPE_L2_FCOE_FCOTHER_PA
=
16
,
I40E_RX_PTYPE_L2_FCOE_VFT_PAY3
=
17
,
I40E_RX_PTYPE_L2_FCOE_VFT_FCDATA
=
18
,
I40E_RX_PTYPE_L2_FCOE_VFT_FCRDY
=
19
,
I40E_RX_PTYPE_L2_FCOE_VFT_FCRSP
=
20
,
I40E_RX_PTYPE_L2_FCOE_VFT_FCOTHER
=
21
,
I40E_RX_PTYPE_GRENAT4_MAC_PAY3
=
58
,
I40E_RX_PTYPE_GRENAT4_MACVLAN_IPV6_ICMP_PAY4
=
87
,
I40E_RX_PTYPE_GRENAT6_MAC_PAY3
=
124
,
I40E_RX_PTYPE_GRENAT6_MACVLAN_IPV6_ICMP_PAY4
=
153
};
struct
i40e_rx_ptype_decoded
{
u32
ptype
:
8
;
u32
known
:
1
;
u32
outer_ip
:
1
;
u32
outer_ip_ver
:
1
;
u32
outer_frag
:
1
;
u32
tunnel_type
:
3
;
u32
tunnel_end_prot
:
2
;
u32
tunnel_end_frag
:
1
;
u32
inner_prot
:
4
;
u32
payload_layer
:
3
;
};
enum
i40e_rx_ptype_outer_ip
{
I40E_RX_PTYPE_OUTER_L2
=
0
,
I40E_RX_PTYPE_OUTER_IP
=
1
};
enum
i40e_rx_ptype_outer_ip_ver
{
I40E_RX_PTYPE_OUTER_NONE
=
0
,
I40E_RX_PTYPE_OUTER_IPV4
=
0
,
I40E_RX_PTYPE_OUTER_IPV6
=
1
};
enum
i40e_rx_ptype_outer_fragmented
{
I40E_RX_PTYPE_NOT_FRAG
=
0
,
I40E_RX_PTYPE_FRAG
=
1
};
enum
i40e_rx_ptype_tunnel_type
{
I40E_RX_PTYPE_TUNNEL_NONE
=
0
,
I40E_RX_PTYPE_TUNNEL_IP_IP
=
1
,
I40E_RX_PTYPE_TUNNEL_IP_GRENAT
=
2
,
I40E_RX_PTYPE_TUNNEL_IP_GRENAT_MAC
=
3
,
I40E_RX_PTYPE_TUNNEL_IP_GRENAT_MAC_VLAN
=
4
,
};
enum
i40e_rx_ptype_tunnel_end_prot
{
I40E_RX_PTYPE_TUNNEL_END_NONE
=
0
,
I40E_RX_PTYPE_TUNNEL_END_IPV4
=
1
,
I40E_RX_PTYPE_TUNNEL_END_IPV6
=
2
,
};
enum
i40e_rx_ptype_inner_prot
{
I40E_RX_PTYPE_INNER_PROT_NONE
=
0
,
I40E_RX_PTYPE_INNER_PROT_UDP
=
1
,
I40E_RX_PTYPE_INNER_PROT_TCP
=
2
,
I40E_RX_PTYPE_INNER_PROT_SCTP
=
3
,
I40E_RX_PTYPE_INNER_PROT_ICMP
=
4
,
I40E_RX_PTYPE_INNER_PROT_TIMESYNC
=
5
};
enum
i40e_rx_ptype_payload_layer
{
I40E_RX_PTYPE_PAYLOAD_LAYER_NONE
=
0
,
I40E_RX_PTYPE_PAYLOAD_LAYER_PAY2
=
1
,
I40E_RX_PTYPE_PAYLOAD_LAYER_PAY3
=
2
,
I40E_RX_PTYPE_PAYLOAD_LAYER_PAY4
=
3
,
};
#define I40E_RX_PTYPE_BIT_MASK 0x0FFFFFFF
#define I40E_RX_PTYPE_SHIFT 56
#define I40E_RXD_QW1_LENGTH_PBUF_SHIFT 38
#define I40E_RXD_QW1_LENGTH_PBUF_MASK (0x3FFFULL << \
I40E_RXD_QW1_LENGTH_PBUF_SHIFT)
#define I40E_RXD_QW1_LENGTH_HBUF_SHIFT 52
#define I40E_RXD_QW1_LENGTH_HBUF_MASK (0x7FFULL << \
I40E_RXD_QW1_LENGTH_HBUF_SHIFT)
#define I40E_RXD_QW1_LENGTH_SPH_SHIFT 63
#define I40E_RXD_QW1_LENGTH_SPH_MASK BIT_ULL(I40E_RXD_QW1_LENGTH_SPH_SHIFT)
#define I40E_RXD_QW1_NEXTP_SHIFT 38
#define I40E_RXD_QW1_NEXTP_MASK (0x1FFFULL << I40E_RXD_QW1_NEXTP_SHIFT)
#define I40E_RXD_QW2_EXT_STATUS_SHIFT 0
#define I40E_RXD_QW2_EXT_STATUS_MASK (0xFFFFFUL << \
I40E_RXD_QW2_EXT_STATUS_SHIFT)
enum
i40e_rx_desc_ext_status_bits
{
/* Note: These are predefined bit offsets */
I40E_RX_DESC_EXT_STATUS_L2TAG2P_SHIFT
=
0
,
I40E_RX_DESC_EXT_STATUS_L2TAG3P_SHIFT
=
1
,
I40E_RX_DESC_EXT_STATUS_FLEXBL_SHIFT
=
2
,
/* 2 BITS */
I40E_RX_DESC_EXT_STATUS_FLEXBH_SHIFT
=
4
,
/* 2 BITS */
I40E_RX_DESC_EXT_STATUS_FDLONGB_SHIFT
=
9
,
I40E_RX_DESC_EXT_STATUS_FCOELONGB_SHIFT
=
10
,
I40E_RX_DESC_EXT_STATUS_PELONGB_SHIFT
=
11
,
};
#define I40E_RXD_QW2_L2TAG2_SHIFT 0
#define I40E_RXD_QW2_L2TAG2_MASK (0xFFFFUL << I40E_RXD_QW2_L2TAG2_SHIFT)
#define I40E_RXD_QW2_L2TAG3_SHIFT 16
#define I40E_RXD_QW2_L2TAG3_MASK (0xFFFFUL << I40E_RXD_QW2_L2TAG3_SHIFT)
enum
i40e_rx_desc_pe_status_bits
{
/* Note: These are predefined bit offsets */
I40E_RX_DESC_PE_STATUS_QPID_SHIFT
=
0
,
/* 18 BITS */
I40E_RX_DESC_PE_STATUS_L4PORT_SHIFT
=
0
,
/* 16 BITS */
I40E_RX_DESC_PE_STATUS_IPINDEX_SHIFT
=
16
,
/* 8 BITS */
I40E_RX_DESC_PE_STATUS_QPIDHIT_SHIFT
=
24
,
I40E_RX_DESC_PE_STATUS_APBVTHIT_SHIFT
=
25
,
I40E_RX_DESC_PE_STATUS_PORTV_SHIFT
=
26
,
I40E_RX_DESC_PE_STATUS_URG_SHIFT
=
27
,
I40E_RX_DESC_PE_STATUS_IPFRAG_SHIFT
=
28
,
I40E_RX_DESC_PE_STATUS_IPOPT_SHIFT
=
29
};
#define I40E_RX_PROG_STATUS_DESC_LENGTH_SHIFT 38
#define I40E_RX_PROG_STATUS_DESC_LENGTH 0x2000000
#define I40E_RX_PROG_STATUS_DESC_QW1_PROGID_SHIFT 2
#define I40E_RX_PROG_STATUS_DESC_QW1_PROGID_MASK (0x7UL << \
I40E_RX_PROG_STATUS_DESC_QW1_PROGID_SHIFT)
#define I40E_RX_PROG_STATUS_DESC_QW1_STATUS_SHIFT 0
#define I40E_RX_PROG_STATUS_DESC_QW1_STATUS_MASK (0x7FFFUL << \
I40E_RX_PROG_STATUS_DESC_QW1_STATUS_SHIFT)
#define I40E_RX_PROG_STATUS_DESC_QW1_ERROR_SHIFT 19
#define I40E_RX_PROG_STATUS_DESC_QW1_ERROR_MASK (0x3FUL << \
I40E_RX_PROG_STATUS_DESC_QW1_ERROR_SHIFT)
enum
i40e_rx_prog_status_desc_status_bits
{
/* Note: These are predefined bit offsets */
I40E_RX_PROG_STATUS_DESC_DD_SHIFT
=
0
,
I40E_RX_PROG_STATUS_DESC_PROG_ID_SHIFT
=
2
/* 3 BITS */
};
enum
i40e_rx_prog_status_desc_prog_id_masks
{
I40E_RX_PROG_STATUS_DESC_FD_FILTER_STATUS
=
1
,
I40E_RX_PROG_STATUS_DESC_FCOE_CTXT_PROG_STATUS
=
2
,
I40E_RX_PROG_STATUS_DESC_FCOE_CTXT_INVL_STATUS
=
4
,
};
enum
i40e_rx_prog_status_desc_error_bits
{
/* Note: These are predefined bit offsets */
I40E_RX_PROG_STATUS_DESC_FD_TBL_FULL_SHIFT
=
0
,
I40E_RX_PROG_STATUS_DESC_NO_FD_ENTRY_SHIFT
=
1
,
I40E_RX_PROG_STATUS_DESC_FCOE_TBL_FULL_SHIFT
=
2
,
I40E_RX_PROG_STATUS_DESC_FCOE_CONFLICT_SHIFT
=
3
};
#define I40E_TWO_BIT_MASK 0x3
#define I40E_THREE_BIT_MASK 0x7
#define I40E_FOUR_BIT_MASK 0xF
#define I40E_EIGHTEEN_BIT_MASK 0x3FFFF
/* TX Descriptor */
struct
i40e_tx_desc
{
__le64
buffer_addr
;
/* Address of descriptor's data buf */
__le64
cmd_type_offset_bsz
;
};
#define I40E_TXD_QW1_DTYPE_SHIFT 0
#define I40E_TXD_QW1_DTYPE_MASK (0xFUL << I40E_TXD_QW1_DTYPE_SHIFT)
enum
i40e_tx_desc_dtype_value
{
I40E_TX_DESC_DTYPE_DATA
=
0x0
,
I40E_TX_DESC_DTYPE_NOP
=
0x1
,
/* same as Context desc */
I40E_TX_DESC_DTYPE_CONTEXT
=
0x1
,
I40E_TX_DESC_DTYPE_FCOE_CTX
=
0x2
,
I40E_TX_DESC_DTYPE_FILTER_PROG
=
0x8
,
I40E_TX_DESC_DTYPE_DDP_CTX
=
0x9
,
I40E_TX_DESC_DTYPE_FLEX_DATA
=
0xB
,
I40E_TX_DESC_DTYPE_FLEX_CTX_1
=
0xC
,
I40E_TX_DESC_DTYPE_FLEX_CTX_2
=
0xD
,
I40E_TX_DESC_DTYPE_DESC_DONE
=
0xF
};
#define I40E_TXD_QW1_CMD_SHIFT 4
#define I40E_TXD_QW1_CMD_MASK (0x3FFUL << I40E_TXD_QW1_CMD_SHIFT)
enum
i40e_tx_desc_cmd_bits
{
I40E_TX_DESC_CMD_EOP
=
0x0001
,
I40E_TX_DESC_CMD_RS
=
0x0002
,
I40E_TX_DESC_CMD_ICRC
=
0x0004
,
I40E_TX_DESC_CMD_IL2TAG1
=
0x0008
,
I40E_TX_DESC_CMD_DUMMY
=
0x0010
,
I40E_TX_DESC_CMD_IIPT_NONIP
=
0x0000
,
/* 2 BITS */
I40E_TX_DESC_CMD_IIPT_IPV6
=
0x0020
,
/* 2 BITS */
I40E_TX_DESC_CMD_IIPT_IPV4
=
0x0040
,
/* 2 BITS */
I40E_TX_DESC_CMD_IIPT_IPV4_CSUM
=
0x0060
,
/* 2 BITS */
I40E_TX_DESC_CMD_FCOET
=
0x0080
,
I40E_TX_DESC_CMD_L4T_EOFT_UNK
=
0x0000
,
/* 2 BITS */
I40E_TX_DESC_CMD_L4T_EOFT_TCP
=
0x0100
,
/* 2 BITS */
I40E_TX_DESC_CMD_L4T_EOFT_SCTP
=
0x0200
,
/* 2 BITS */
I40E_TX_DESC_CMD_L4T_EOFT_UDP
=
0x0300
,
/* 2 BITS */
I40E_TX_DESC_CMD_L4T_EOFT_EOF_N
=
0x0000
,
/* 2 BITS */
I40E_TX_DESC_CMD_L4T_EOFT_EOF_T
=
0x0100
,
/* 2 BITS */
I40E_TX_DESC_CMD_L4T_EOFT_EOF_NI
=
0x0200
,
/* 2 BITS */
I40E_TX_DESC_CMD_L4T_EOFT_EOF_A
=
0x0300
,
/* 2 BITS */
};
#define I40E_TXD_QW1_OFFSET_SHIFT 16
#define I40E_TXD_QW1_OFFSET_MASK (0x3FFFFULL << \
I40E_TXD_QW1_OFFSET_SHIFT)
enum
i40e_tx_desc_length_fields
{
/* Note: These are predefined bit offsets */
I40E_TX_DESC_LENGTH_MACLEN_SHIFT
=
0
,
/* 7 BITS */
I40E_TX_DESC_LENGTH_IPLEN_SHIFT
=
7
,
/* 7 BITS */
I40E_TX_DESC_LENGTH_L4_FC_LEN_SHIFT
=
14
/* 4 BITS */
};
#define I40E_TXD_QW1_MACLEN_MASK (0x7FUL << I40E_TX_DESC_LENGTH_MACLEN_SHIFT)
#define I40E_TXD_QW1_IPLEN_MASK (0x7FUL << I40E_TX_DESC_LENGTH_IPLEN_SHIFT)
#define I40E_TXD_QW1_L4LEN_MASK (0xFUL << I40E_TX_DESC_LENGTH_L4_FC_LEN_SHIFT)
#define I40E_TXD_QW1_FCLEN_MASK (0xFUL << I40E_TX_DESC_LENGTH_L4_FC_LEN_SHIFT)
#define I40E_TXD_QW1_TX_BUF_SZ_SHIFT 34
#define I40E_TXD_QW1_TX_BUF_SZ_MASK (0x3FFFULL << \
I40E_TXD_QW1_TX_BUF_SZ_SHIFT)
#define I40E_TXD_QW1_L2TAG1_SHIFT 48
#define I40E_TXD_QW1_L2TAG1_MASK (0xFFFFULL << I40E_TXD_QW1_L2TAG1_SHIFT)
/* Context descriptors */
struct
i40e_tx_context_desc
{
__le32
tunneling_params
;
__le16
l2tag2
;
__le16
rsvd
;
__le64
type_cmd_tso_mss
;
};
#define I40E_TXD_CTX_QW1_DTYPE_SHIFT 0
#define I40E_TXD_CTX_QW1_DTYPE_MASK (0xFUL << I40E_TXD_CTX_QW1_DTYPE_SHIFT)
#define I40E_TXD_CTX_QW1_CMD_SHIFT 4
#define I40E_TXD_CTX_QW1_CMD_MASK (0xFFFFUL << I40E_TXD_CTX_QW1_CMD_SHIFT)
enum
i40e_tx_ctx_desc_cmd_bits
{
I40E_TX_CTX_DESC_TSO
=
0x01
,
I40E_TX_CTX_DESC_TSYN
=
0x02
,
I40E_TX_CTX_DESC_IL2TAG2
=
0x04
,
I40E_TX_CTX_DESC_IL2TAG2_IL2H
=
0x08
,
I40E_TX_CTX_DESC_SWTCH_NOTAG
=
0x00
,
I40E_TX_CTX_DESC_SWTCH_UPLINK
=
0x10
,
I40E_TX_CTX_DESC_SWTCH_LOCAL
=
0x20
,
I40E_TX_CTX_DESC_SWTCH_VSI
=
0x30
,
I40E_TX_CTX_DESC_SWPE
=
0x40
};
#define I40E_TXD_CTX_QW1_TSO_LEN_SHIFT 30
#define I40E_TXD_CTX_QW1_TSO_LEN_MASK (0x3FFFFULL << \
I40E_TXD_CTX_QW1_TSO_LEN_SHIFT)
#define I40E_TXD_CTX_QW1_MSS_SHIFT 50
#define I40E_TXD_CTX_QW1_MSS_MASK (0x3FFFULL << \
I40E_TXD_CTX_QW1_MSS_SHIFT)
#define I40E_TXD_CTX_QW1_VSI_SHIFT 50
#define I40E_TXD_CTX_QW1_VSI_MASK (0x1FFULL << I40E_TXD_CTX_QW1_VSI_SHIFT)
#define I40E_TXD_CTX_QW0_EXT_IP_SHIFT 0
#define I40E_TXD_CTX_QW0_EXT_IP_MASK (0x3ULL << \
I40E_TXD_CTX_QW0_EXT_IP_SHIFT)
enum
i40e_tx_ctx_desc_eipt_offload
{
I40E_TX_CTX_EXT_IP_NONE
=
0x0
,
I40E_TX_CTX_EXT_IP_IPV6
=
0x1
,
I40E_TX_CTX_EXT_IP_IPV4_NO_CSUM
=
0x2
,
I40E_TX_CTX_EXT_IP_IPV4
=
0x3
};
#define I40E_TXD_CTX_QW0_EXT_IPLEN_SHIFT 2
#define I40E_TXD_CTX_QW0_EXT_IPLEN_MASK (0x3FULL << \
I40E_TXD_CTX_QW0_EXT_IPLEN_SHIFT)
#define I40E_TXD_CTX_QW0_NATT_SHIFT 9
#define I40E_TXD_CTX_QW0_NATT_MASK (0x3ULL << I40E_TXD_CTX_QW0_NATT_SHIFT)
#define I40E_TXD_CTX_UDP_TUNNELING BIT_ULL(I40E_TXD_CTX_QW0_NATT_SHIFT)
#define I40E_TXD_CTX_GRE_TUNNELING (0x2ULL << I40E_TXD_CTX_QW0_NATT_SHIFT)
#define I40E_TXD_CTX_QW0_EIP_NOINC_SHIFT 11
#define I40E_TXD_CTX_QW0_EIP_NOINC_MASK BIT_ULL(I40E_TXD_CTX_QW0_EIP_NOINC_SHIFT)
#define I40E_TXD_CTX_EIP_NOINC_IPID_CONST I40E_TXD_CTX_QW0_EIP_NOINC_MASK
#define I40E_TXD_CTX_QW0_NATLEN_SHIFT 12
#define I40E_TXD_CTX_QW0_NATLEN_MASK (0X7FULL << \
I40E_TXD_CTX_QW0_NATLEN_SHIFT)
#define I40E_TXD_CTX_QW0_DECTTL_SHIFT 19
#define I40E_TXD_CTX_QW0_DECTTL_MASK (0xFULL << \
I40E_TXD_CTX_QW0_DECTTL_SHIFT)
#define I40E_TXD_CTX_QW0_L4T_CS_SHIFT 23
#define I40E_TXD_CTX_QW0_L4T_CS_MASK BIT_ULL(I40E_TXD_CTX_QW0_L4T_CS_SHIFT)
struct
i40e_nop_desc
{
__le64
rsvd
;
__le64
dtype_cmd
;
};
#define I40E_TXD_NOP_QW1_DTYPE_SHIFT 0
#define I40E_TXD_NOP_QW1_DTYPE_MASK (0xFUL << I40E_TXD_NOP_QW1_DTYPE_SHIFT)
#define I40E_TXD_NOP_QW1_CMD_SHIFT 4
#define I40E_TXD_NOP_QW1_CMD_MASK (0x7FUL << I40E_TXD_NOP_QW1_CMD_SHIFT)
enum
i40e_tx_nop_desc_cmd_bits
{
/* Note: These are predefined bit offsets */
I40E_TX_NOP_DESC_EOP_SHIFT
=
0
,
I40E_TX_NOP_DESC_RS_SHIFT
=
1
,
I40E_TX_NOP_DESC_RSV_SHIFT
=
2
/* 5 bits */
};
struct
i40e_filter_program_desc
{
__le32
qindex_flex_ptype_vsi
;
__le32
rsvd
;
__le32
dtype_cmd_cntindex
;
__le32
fd_id
;
};
#define I40E_TXD_FLTR_QW0_QINDEX_SHIFT 0
#define I40E_TXD_FLTR_QW0_QINDEX_MASK (0x7FFUL << \
I40E_TXD_FLTR_QW0_QINDEX_SHIFT)
#define I40E_TXD_FLTR_QW0_FLEXOFF_SHIFT 11
#define I40E_TXD_FLTR_QW0_FLEXOFF_MASK (0x7UL << \
I40E_TXD_FLTR_QW0_FLEXOFF_SHIFT)
#define I40E_TXD_FLTR_QW0_PCTYPE_SHIFT 17
#define I40E_TXD_FLTR_QW0_PCTYPE_MASK (0x3FUL << \
I40E_TXD_FLTR_QW0_PCTYPE_SHIFT)
/* Packet Classifier Types for filters */
enum
i40e_filter_pctype
{
/* Note: Values 0-28 are reserved for future use.
* Value 29, 30, 32 are not supported on XL710 and X710.
*/
I40E_FILTER_PCTYPE_NONF_UNICAST_IPV4_UDP
=
29
,
I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV4_UDP
=
30
,
I40E_FILTER_PCTYPE_NONF_IPV4_UDP
=
31
,
I40E_FILTER_PCTYPE_NONF_IPV4_TCP_SYN_NO_ACK
=
32
,
I40E_FILTER_PCTYPE_NONF_IPV4_TCP
=
33
,
I40E_FILTER_PCTYPE_NONF_IPV4_SCTP
=
34
,
I40E_FILTER_PCTYPE_NONF_IPV4_OTHER
=
35
,
I40E_FILTER_PCTYPE_FRAG_IPV4
=
36
,
/* Note: Values 37-38 are reserved for future use.
* Value 39, 40, 42 are not supported on XL710 and X710.
*/
I40E_FILTER_PCTYPE_NONF_UNICAST_IPV6_UDP
=
39
,
I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV6_UDP
=
40
,
I40E_FILTER_PCTYPE_NONF_IPV6_UDP
=
41
,
I40E_FILTER_PCTYPE_NONF_IPV6_TCP_SYN_NO_ACK
=
42
,
I40E_FILTER_PCTYPE_NONF_IPV6_TCP
=
43
,
I40E_FILTER_PCTYPE_NONF_IPV6_SCTP
=
44
,
I40E_FILTER_PCTYPE_NONF_IPV6_OTHER
=
45
,
I40E_FILTER_PCTYPE_FRAG_IPV6
=
46
,
/* Note: Value 47 is reserved for future use */
I40E_FILTER_PCTYPE_FCOE_OX
=
48
,
I40E_FILTER_PCTYPE_FCOE_RX
=
49
,
I40E_FILTER_PCTYPE_FCOE_OTHER
=
50
,
/* Note: Values 51-62 are reserved for future use */
I40E_FILTER_PCTYPE_L2_PAYLOAD
=
63
,
};
enum
i40e_filter_program_desc_dest
{
I40E_FILTER_PROGRAM_DESC_DEST_DROP_PACKET
=
0x0
,
I40E_FILTER_PROGRAM_DESC_DEST_DIRECT_PACKET_QINDEX
=
0x1
,
I40E_FILTER_PROGRAM_DESC_DEST_DIRECT_PACKET_OTHER
=
0x2
,
};
enum
i40e_filter_program_desc_fd_status
{
I40E_FILTER_PROGRAM_DESC_FD_STATUS_NONE
=
0x0
,
I40E_FILTER_PROGRAM_DESC_FD_STATUS_FD_ID
=
0x1
,
I40E_FILTER_PROGRAM_DESC_FD_STATUS_FD_ID_4FLEX_BYTES
=
0x2
,
I40E_FILTER_PROGRAM_DESC_FD_STATUS_8FLEX_BYTES
=
0x3
,
};
#define I40E_TXD_FLTR_QW0_DEST_VSI_SHIFT 23
#define I40E_TXD_FLTR_QW0_DEST_VSI_MASK (0x1FFUL << \
I40E_TXD_FLTR_QW0_DEST_VSI_SHIFT)
#define I40E_TXD_FLTR_QW1_DTYPE_SHIFT 0
#define I40E_TXD_FLTR_QW1_DTYPE_MASK (0xFUL << I40E_TXD_FLTR_QW1_DTYPE_SHIFT)
#define I40E_TXD_FLTR_QW1_CMD_SHIFT 4
#define I40E_TXD_FLTR_QW1_CMD_MASK (0xFFFFULL << \
I40E_TXD_FLTR_QW1_CMD_SHIFT)
#define I40E_TXD_FLTR_QW1_PCMD_SHIFT (0x0ULL + I40E_TXD_FLTR_QW1_CMD_SHIFT)
#define I40E_TXD_FLTR_QW1_PCMD_MASK (0x7ULL << I40E_TXD_FLTR_QW1_PCMD_SHIFT)
enum
i40e_filter_program_desc_pcmd
{
I40E_FILTER_PROGRAM_DESC_PCMD_ADD_UPDATE
=
0x1
,
I40E_FILTER_PROGRAM_DESC_PCMD_REMOVE
=
0x2
,
};
#define I40E_TXD_FLTR_QW1_DEST_SHIFT (0x3ULL + I40E_TXD_FLTR_QW1_CMD_SHIFT)
#define I40E_TXD_FLTR_QW1_DEST_MASK (0x3ULL << I40E_TXD_FLTR_QW1_DEST_SHIFT)
#define I40E_TXD_FLTR_QW1_CNT_ENA_SHIFT (0x7ULL + I40E_TXD_FLTR_QW1_CMD_SHIFT)
#define I40E_TXD_FLTR_QW1_CNT_ENA_MASK BIT_ULL(I40E_TXD_FLTR_QW1_CNT_ENA_SHIFT)
#define I40E_TXD_FLTR_QW1_FD_STATUS_SHIFT (0x9ULL + \
I40E_TXD_FLTR_QW1_CMD_SHIFT)
#define I40E_TXD_FLTR_QW1_FD_STATUS_MASK (0x3ULL << \
I40E_TXD_FLTR_QW1_FD_STATUS_SHIFT)
#define I40E_TXD_FLTR_QW1_ATR_SHIFT (0xEULL + \
I40E_TXD_FLTR_QW1_CMD_SHIFT)
#define I40E_TXD_FLTR_QW1_ATR_MASK BIT_ULL(I40E_TXD_FLTR_QW1_ATR_SHIFT)
#define I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT 20
#define I40E_TXD_FLTR_QW1_CNTINDEX_MASK (0x1FFUL << \
I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT)
#endif
/* ndef _I40E_RXTXQ_H_ */
i40e_bm/i40e_base_wrapper.h
View file @
bdf29016
...
@@ -8,10 +8,12 @@ typedef uint16_t u16;
...
@@ -8,10 +8,12 @@ typedef uint16_t u16;
typedef
uint32_t
u32
;
typedef
uint32_t
u32
;
typedef
uint16_t
__le16
;
typedef
uint16_t
__le16
;
typedef
uint32_t
__le32
;
typedef
uint32_t
__le32
;
typedef
uint64_t
__le64
;
#include "base/i40e_devids.h"
#include "base/i40e_devids.h"
#include "base/i40e_register.h"
#include "base/i40e_register.h"
#include "base/i40e_adminq_cmd.h"
#include "base/i40e_adminq_cmd.h"
#include "base/i40e_rxtxq.h"
/* from i40e_types.h */
/* from i40e_types.h */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment