25 #ifndef DOCA_FLOW_NET_H_
26 #define DOCA_FLOW_NET_H_
36 #define DOCA_FLOW_ETHER_ADDR_LEN (6)
37 #define DOCA_FLOW_PROTO_ICMP (1)
38 #define DOCA_FLOW_PROTO_ICMP6 (58)
39 #define DOCA_FLOW_PROTO_IPV4 (4)
40 #define DOCA_FLOW_PROTO_IPV6 (41)
41 #define DOCA_FLOW_PROTO_TCP (6)
42 #define DOCA_FLOW_PROTO_UDP (17)
43 #define DOCA_FLOW_PROTO_IB_BTH (16)
44 #define DOCA_FLOW_PROTO_GRE (47)
45 #define DOCA_FLOW_PROTO_ESP (50)
46 #define DOCA_FLOW_PROTO_IP4_IN_IP (4)
47 #define DOCA_FLOW_PROTO_IP6_IN_IP (41)
48 #define DOCA_FLOW_GTPU_DEFAULT_PORT (2152)
49 #define DOCA_FLOW_VXLAN_DEFAULT_PORT (4789)
50 #define DOCA_FLOW_VXLAN_GPE_DEFAULT_PORT (4790)
51 #define DOCA_FLOW_MPLS_DEFAULT_PORT (6635)
52 #define DOCA_FLOW_GENEVE_DEFAULT_PORT (6081)
53 #define DOCA_FLOW_PSP_DEFAULT_PORT (1000)
54 #define DOCA_FLOW_ROCEV2_DEFAULT_PORT (4791)
57 #define DOCA_FLOW_ETHER_TYPE_IPV4 (0x0800)
58 #define DOCA_FLOW_ETHER_TYPE_IPV6 (0x86DD)
59 #define DOCA_FLOW_ETHER_TYPE_TEB (0x6558)
60 #define DOCA_FLOW_ETHER_TYPE_ARP (0x0806)
61 #define DOCA_FLOW_ETHER_TYPE_VLAN (0x8100)
62 #define DOCA_FLOW_ETHER_TYPE_QINQ (0x88A8)
65 #define DOCA_FLOW_UDP_HEADER_LEN 8
68 #define DOCA_FLOW_ESP_HEADER_LEN (4 * sizeof(doca_be32_t))
71 #define DOCA_FLOW_ESP_HEADER_MARKER_LEN_4B 4
74 #define DOCA_FLOW_ESP_HEADER_MARKER_LEN_8B 8
77 #define DOCA_FLOW_CRYPTO_KEY_LEN_MAX 32
80 #define DOCA_FLOW_GENEVE_OPT_LEN_MAX 63
83 #define DOCA_FLOW_ENCAP_GENEVE_OPT_LEN_MAX 19
86 #define DOCA_FLOW_GENEVE_DATA_OPTION_LEN_MAX 31
89 #define DOCA_FLOW_GENEVE_NUM_OF_OPTIONS_MAX 8
92 #define DOCA_FLOW_MPLS_LABELS_MAX 5
95 #define DOCA_FLOW_PSP_HEADER_LEN (6 * sizeof(doca_be32_t))
98 #define DOCA_FLOW_VXLAN_GPE_TYPE_IPV4 1
99 #define DOCA_FLOW_VXLAN_GPE_TYPE_IPV6 2
100 #define DOCA_FLOW_VXLAN_GPE_TYPE_ETH 3
101 #define DOCA_FLOW_VXLAN_GPE_TYPE_NSH 4
102 #define DOCA_FLOW_VXLAN_GPE_TYPE_MPLS 5
103 #define DOCA_FLOW_VXLAN_GPE_TYPE_GBP 6
104 #define DOCA_FLOW_VXLAN_GPE_TYPE_VBNG 7
107 #define DOCA_FLOW_GTP_EXT_PSC (0x85)
109 #define DOCA_FLOW_IB_BTH_DST_QP_LEN 3
110 #define DOCA_FLOW_IB_BTH_PSN_LEN 3
121 #define DOCA_FLOW_CRYPTO_HEADER_LEN_MAX \
122 (DOCA_FLOW_ETHER_ADDR_LEN * 2 + sizeof(doca_be16_t) + sizeof(doca_be16_t) * 2 * 2 + sizeof(doca_be32_t) * 15 + \
123 sizeof(doca_be32_t) * 2 + DOCA_FLOW_PSP_HEADER_LEN)
doca_flow_l4_type_ext
doca flow layer 4 packet extend type
#define DOCA_FLOW_MPLS_LABELS_MAX
doca_flow_l3_type
doca flow layer 3 packet type
doca_flow_ip_fragment_flags
doca flow IP fragment flags
doca_flow_tun_ext_vxlan_type
doca flow tunnel extension vxlan type
#define DOCA_FLOW_GENEVE_OPT_LEN_MAX
#define DOCA_FLOW_IB_BTH_PSN_LEN
doca_flow_tun_type
doca flow tunnel type
#define DOCA_FLOW_IB_BTH_DST_QP_LEN
doca_flow_tun_ext_gre_type
doca flow tun extension gre type
#define DOCA_FLOW_ETHER_ADDR_LEN
@ DOCA_FLOW_L4_TYPE_EXT_ROCE_V2
@ DOCA_FLOW_L4_TYPE_EXT_ICMP6
@ DOCA_FLOW_L4_TYPE_EXT_TCP
@ DOCA_FLOW_L4_TYPE_EXT_NONE
@ DOCA_FLOW_L4_TYPE_EXT_ICMP
@ DOCA_FLOW_L4_TYPE_EXT_UDP
@ DOCA_FLOW_L4_TYPE_EXT_TRANSPORT
@ DOCA_FLOW_IP4_FLAG_MORE_FRAGMENTS
@ DOCA_FLOW_IP4_FLAG_DONT_FRAGMENT
@ DOCA_FLOW_TUN_EXT_VXLAN_STANDARD
@ DOCA_FLOW_TUN_EXT_VXLAN_GBP
@ DOCA_FLOW_TUN_EXT_VXLAN_GPE
@ DOCA_FLOW_TUN_MPLS_O_UDP
@ DOCA_FLOW_TUN_EXT_GRE_NVGRE
@ DOCA_FLOW_TUN_EXT_GRE_STANDARD
uint16_t doca_be16_t
Declare DOCA endianity types.
enum doca_flow_l3_type type
doca flow tunnel information
enum doca_flow_tun_type type
doca_be16_t vxlan_gbp_group_policy_id
union doca_flow_geneve_option geneve_options[DOCA_FLOW_GENEVE_OPT_LEN_MAX]
struct doca_flow_header_psp psp
enum doca_flow_tun_ext_gre_type gre_type
enum doca_flow_tun_ext_vxlan_type vxlan_type
struct doca_flow_header_mpls mpls[DOCA_FLOW_MPLS_LABELS_MAX]
uint8_t vxlan_gpe_next_protocol
uint8_t gtp_next_ext_hdr_type
struct doca_flow_header_geneve geneve
doca flow GENEVE option single DW.