NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
doca_flow_net.h File Reference
#include <stdint.h>
#include <stdbool.h>
#include <doca_types.h>
Include dependency graph for doca_flow_net.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  doca_flow_header_eth_vlan
 doca flow vlan header More...
 
struct  doca_flow_header_eth
 doca flow eth header More...
 
struct  doca_flow_ip_addr
 doca flow ip address More...
 
struct  doca_flow_header_ib_bth
 doca flow BTH header in match data More...
 
struct  doca_flow_header_l4_port
 doca flow tcp or udp port header in match data More...
 
struct  doca_flow_header_udp
 doca flow udp header in match data More...
 
struct  doca_flow_header_roce_v2
 doca flow ROCEv2 header in match data More...
 
struct  doca_flow_header_tcp
 doca flow tcp header in match data More...
 
struct  doca_flow_header_icmp
 doca flow icmp header in match data More...
 
struct  doca_flow_header_ip4
 doca flow ipv4 header in match data More...
 
struct  doca_flow_header_ip6
 doca flow ipv6 header in match data More...
 
struct  doca_flow_ct_ip4
 
struct  doca_flow_ct_ip6
 
struct  doca_flow_header_mpls
 doca flow MPLS header. More...
 
struct  doca_flow_header_geneve
 doca flow GENEVE header. More...
 
union  doca_flow_geneve_option
 doca flow GENEVE option single DW. More...
 
struct  doca_flow_header_psp
 doca flow psp header in match data and modify/encap actions More...
 
struct  doca_flow_tun
 doca flow tunnel information More...
 

Macros

#define DOCA_FLOW_ETHER_ADDR_LEN   (6)
 
#define DOCA_FLOW_PROTO_ICMP   (1)
 
#define DOCA_FLOW_PROTO_ICMP6   (58)
 
#define DOCA_FLOW_PROTO_IPV4   (4)
 
#define DOCA_FLOW_PROTO_IPV6   (41)
 
#define DOCA_FLOW_PROTO_TCP   (6)
 
#define DOCA_FLOW_PROTO_UDP   (17)
 
#define DOCA_FLOW_PROTO_IB_BTH   (16)
 
#define DOCA_FLOW_PROTO_GRE   (47)
 
#define DOCA_FLOW_PROTO_ESP   (50)
 
#define DOCA_FLOW_PROTO_IP4_IN_IP   (4)
 
#define DOCA_FLOW_PROTO_IP6_IN_IP   (41)
 
#define DOCA_FLOW_GTPU_DEFAULT_PORT   (2152)
 
#define DOCA_FLOW_VXLAN_DEFAULT_PORT   (4789)
 
#define DOCA_FLOW_VXLAN_GPE_DEFAULT_PORT   (4790)
 
#define DOCA_FLOW_MPLS_DEFAULT_PORT   (6635)
 
#define DOCA_FLOW_GENEVE_DEFAULT_PORT   (6081)
 
#define DOCA_FLOW_PSP_DEFAULT_PORT   (1000)
 
#define DOCA_FLOW_ROCEV2_DEFAULT_PORT   (4791)
 
#define DOCA_FLOW_ETHER_TYPE_IPV4   (0x0800)
 
#define DOCA_FLOW_ETHER_TYPE_IPV6   (0x86DD)
 
#define DOCA_FLOW_ETHER_TYPE_TEB   (0x6558)
 
#define DOCA_FLOW_ETHER_TYPE_ARP   (0x0806)
 
#define DOCA_FLOW_ETHER_TYPE_VLAN   (0x8100)
 
#define DOCA_FLOW_ETHER_TYPE_QINQ   (0x88A8)
 
#define DOCA_FLOW_UDP_HEADER_LEN   8
 
#define DOCA_FLOW_ESP_HEADER_LEN   (4 * sizeof(doca_be32_t))
 
#define DOCA_FLOW_ESP_HEADER_MARKER_LEN_4B   4
 
#define DOCA_FLOW_ESP_HEADER_MARKER_LEN_8B   8
 
#define DOCA_FLOW_CRYPTO_KEY_LEN_MAX   32
 
#define DOCA_FLOW_GENEVE_OPT_LEN_MAX   63
 
#define DOCA_FLOW_ENCAP_GENEVE_OPT_LEN_MAX   19
 
#define DOCA_FLOW_GENEVE_DATA_OPTION_LEN_MAX   31
 
#define DOCA_FLOW_GENEVE_NUM_OF_OPTIONS_MAX   8
 
#define DOCA_FLOW_MPLS_LABELS_MAX   5
 
#define DOCA_FLOW_PSP_HEADER_LEN   (6 * sizeof(doca_be32_t))
 
#define DOCA_FLOW_VXLAN_GPE_TYPE_IPV4   1
 
#define DOCA_FLOW_VXLAN_GPE_TYPE_IPV6   2
 
#define DOCA_FLOW_VXLAN_GPE_TYPE_ETH   3
 
#define DOCA_FLOW_VXLAN_GPE_TYPE_NSH   4
 
#define DOCA_FLOW_VXLAN_GPE_TYPE_MPLS   5
 
#define DOCA_FLOW_VXLAN_GPE_TYPE_GBP   6
 
#define DOCA_FLOW_VXLAN_GPE_TYPE_VBNG   7
 
#define DOCA_FLOW_GTP_EXT_PSC   (0x85)
 
#define DOCA_FLOW_IB_BTH_DST_QP_LEN   3
 
#define DOCA_FLOW_IB_BTH_PSN_LEN   3
 
#define DOCA_FLOW_CRYPTO_HEADER_LEN_MAX
 

Enumerations

enum  doca_flow_l3_type { DOCA_FLOW_L3_TYPE_NONE = 0 , DOCA_FLOW_L3_TYPE_IP4 , DOCA_FLOW_L3_TYPE_IP6 }
 doca flow layer 3 packet type More...
 
enum  doca_flow_l4_type_ext {
  DOCA_FLOW_L4_TYPE_EXT_NONE = 0 , DOCA_FLOW_L4_TYPE_EXT_TCP , DOCA_FLOW_L4_TYPE_EXT_UDP , DOCA_FLOW_L4_TYPE_EXT_ICMP ,
  DOCA_FLOW_L4_TYPE_EXT_ICMP6 , DOCA_FLOW_L4_TYPE_EXT_TRANSPORT , DOCA_FLOW_L4_TYPE_EXT_ROCE_V2
}
 doca flow layer 4 packet extend type More...
 
enum  doca_flow_ip_fragment_flags { DOCA_FLOW_IP4_FLAG_MORE_FRAGMENTS = (1 << 13) , DOCA_FLOW_IP4_FLAG_DONT_FRAGMENT = (1 << 14) }
 doca flow IP fragment flags More...
 
enum  doca_flow_tun_type {
  DOCA_FLOW_TUN_NONE = 0 , DOCA_FLOW_TUN_VXLAN , DOCA_FLOW_TUN_GTPU , DOCA_FLOW_TUN_GRE ,
  DOCA_FLOW_TUN_ESP , DOCA_FLOW_TUN_MPLS_O_UDP , DOCA_FLOW_TUN_GENEVE , DOCA_FLOW_TUN_PSP ,
  DOCA_FLOW_TUN_IP_IN_IP , DOCA_FLOW_TUN_MAX
}
 doca flow tunnel type More...
 
enum  doca_flow_tun_ext_vxlan_type { DOCA_FLOW_TUN_EXT_VXLAN_STANDARD = 0 , DOCA_FLOW_TUN_EXT_VXLAN_GPE , DOCA_FLOW_TUN_EXT_VXLAN_GBP }
 doca flow tunnel extension vxlan type More...
 
enum  doca_flow_tun_ext_gre_type { DOCA_FLOW_TUN_EXT_GRE_STANDARD = 0 , DOCA_FLOW_TUN_EXT_GRE_NVGRE }
 doca flow tun extension gre type More...