NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
psp_gw_flows.cpp File Reference
#include <string>
#include <vector>
#include <rte_ether.h>
#include <rte_ethdev.h>
#include <rte_ip.h>
#include <netinet/icmp6.h>
#include <doca_bitfield.h>
#include <doca_flow.h>
#include <doca_flow_crypto.h>
#include <doca_flow_tune_server.h>
#include <doca_log.h>
#include "psp_gw_config.h"
#include "psp_gw_flows.h"
#include "psp_gw_utils.h"
Include dependency graph for psp_gw_flows.cpp:

Go to the source code of this file.

Data Structures

struct  eth_ipv6_psp_tunnel_hdr
 packet header structure to simplify populating the encap_data array for tunnel encap ipv6 data More...
 
struct  eth_ipv4_psp_tunnel_hdr
 packet header structure to simplify populating the encap_data array for tunnel encap ipv4 data More...
 
struct  udp_psp_transport_hdr
 packet header structure to simplify populating the encap_data array for transport encap data More...
 
struct  PSP_GatewayFlows::pipe_query
 

Macros

#define IF_SUCCESS(result, expr)
 
#define NEXT_HEADER_IPV4   0x4
 
#define NEXT_HEADER_IPV6   0x29
 

Functions

 DOCA_LOG_REGISTER (PSP_GATEWAY)
 
struct eth_ipv6_psp_tunnel_hdr __rte_aligned (2)
 

Variables

static const uint32_t DEFAULT_TIMEOUT_US = 10000
 
static const uint32_t PSP_ICV_SIZE = 16
 
static const uint32_t MAX_ACTIONS_MEM_SIZE = 8388608 * 64
 
rte_ether_hdr eth
 
rte_ipv6_hdr ip
 
rte_udp_hdr udp
 
rte_psp_base_hdr psp
 
rte_be64_t psp_virt_cookie
 
const uint8_t PSP_SAMPLE_ENABLE = 1 << 7
 
struct PSP_GatewayFlows::pipe_query __rte_aligned
 

Macro Definition Documentation

◆ IF_SUCCESS

#define IF_SUCCESS (   result,
  expr 
)
Value:
if (result == DOCA_SUCCESS) { \
result = expr; \
if (likely(result == DOCA_SUCCESS)) { \
DOCA_LOG_DBG("Success: %s", #expr); \
} else { \
DOCA_LOG_ERR("Error: %s: %s", #expr, doca_error_get_descr(result)); \
} \
} else { /* skip this expr */ \
}
int32_t result
#define likely(x)
Definition: utils.h:38
DOCA_STABLE const char * doca_error_get_descr(doca_error_t error)
Returns the description string of an error code.
@ DOCA_SUCCESS
Definition: doca_error.h:38

Definition at line 44 of file psp_gw_flows.cpp.

◆ NEXT_HEADER_IPV4

#define NEXT_HEADER_IPV4   0x4

Definition at line 55 of file psp_gw_flows.cpp.

◆ NEXT_HEADER_IPV6

#define NEXT_HEADER_IPV6   0x29

Definition at line 56 of file psp_gw_flows.cpp.

Function Documentation

◆ __rte_aligned()

struct eth_ipv6_psp_tunnel_hdr __rte_aligned ( )

◆ DOCA_LOG_REGISTER()

DOCA_LOG_REGISTER ( PSP_GATEWAY  )

Variable Documentation

◆ __rte_aligned

struct udp_psp_transport_hdr __rte_aligned

◆ DEFAULT_TIMEOUT_US

const uint32_t DEFAULT_TIMEOUT_US = 10000
static

Definition at line 60 of file psp_gw_flows.cpp.

◆ eth

rte_ether_hdr eth

Definition at line 1 of file psp_gw_flows.cpp.

◆ ip

rte_ipv4_hdr ip

Definition at line 4 of file psp_gw_flows.cpp.

◆ MAX_ACTIONS_MEM_SIZE

const uint32_t MAX_ACTIONS_MEM_SIZE = 8388608 * 64
static

Definition at line 62 of file psp_gw_flows.cpp.

◆ psp

rte_psp_base_hdr psp

Definition at line 9 of file psp_gw_flows.cpp.

◆ PSP_ICV_SIZE

const uint32_t PSP_ICV_SIZE = 16
static

Definition at line 61 of file psp_gw_flows.cpp.

◆ PSP_SAMPLE_ENABLE

const uint8_t PSP_SAMPLE_ENABLE = 1 << 7

Definition at line 113 of file psp_gw_flows.cpp.

◆ psp_virt_cookie

rte_be64_t psp_virt_cookie

Definition at line 10 of file psp_gw_flows.cpp.

◆ udp

rte_udp_hdr udp

Definition at line 6 of file psp_gw_flows.cpp.