Data Accelerator Offload
Loading...
Searching...
No Matches
Data Structures | Typedefs | Enumerations | Functions
dao_netlink_xfrm.h File Reference
#include "dao_netlink_crypto.h"
#include <rte_crypto.h>
#include <netlink/xfrm/sa.h>
#include <netlink/xfrm/sp.h>
#include <netlink/xfrm/ae.h>
#include <netlink/xfrm/template.h>
#include <netlink/xfrm/selector.h>
#include <netlink/xfrm/lifetime.h>

Go to the source code of this file.

Data Structures

struct  dao_netlink_ip_addr
 
struct  dao_netlink_xfrm_sa_xform
 
struct  dao_netlink_xfrm_sa
 
struct  dao_netlink_xfrm_policy
 
struct  dao_netlink_xfrm_callback_ops
 

Typedefs

typedef struct dao_netlink_ip_addr dao_netlink_ip_addr_t
 
typedef struct dao_netlink_xfrm_sa_xform dao_netlink_xfrm_sa_xform_t
 
typedef struct dao_netlink_xfrm_sa dao_netlink_xfrm_sa_t
 
typedef struct dao_netlink_xfrm_policy dao_netlink_xfrm_policy_t
 
typedef struct dao_netlink_xfrm_callback_ops dao_netlink_xfrm_callback_ops_t
 

Enumerations

enum  dao_netlink_xfrm_policy_dir_t { DAO_NETLINK_XFRM_POLICY_DIR_IN , DAO_NETLINK_XFRM_POLICY_DIR_OUT , DAO_NETLINK_XFRM_POLICY_DIR_FWD }
 
enum  dao_netlink_xfrm_op_type_t { DAO_NETLINK_XFRM_OP_POLICY_ADD , DAO_NETLINK_XFRM_OP_POLICY_UPD }
 
enum  dao_netlink_xfrm_proto_t { DAO_NETLINK_XFRM_PROTO_ESP , DAO_NETLINK_XFRM_PROTO_AH }
 
enum  dao_netlink_xfrm_sa_mode_t { DAO_NETLINK_XFRM_MODE_TRANSPORT , DAO_NETLINK_XFRM_MODE_TUNNEL }
 
enum  dao_netlink_xfrm_tunnel_type_t { DAO_NETLINK_XFRM_TUNNEL_IPV4 , DAO_NETLINK_XFRM_TUNNEL_IPV6 }
 
enum  dao_netlink_xfrm_sa_flags_t { DAO_NETLINK_XFRM_SA_FLAG_USE_ESN = 1 << 0 , DAO_NETLINK_XFRM_SA_FLAG_USE_AR = 1 << 1 }
 

Functions

static const char * dao_netlink_ipsec_dir_to_str (dao_netlink_xfrm_policy_dir_t dir)
 
static const char * dao_netlink_xfrm_tunnel_type_to_str (dao_netlink_xfrm_tunnel_type_t ip_proto)
 
int dao_netlink_xfrm_sa_to_crypto_xform (struct dao_netlink_xfrm_sa *sa, dao_netlink_xfrm_policy_dir_t dir, struct rte_crypto_sym_xform *cipher, struct rte_crypto_sym_xform *auth)
 
int dao_netlink_xfrm_notifier_register (dao_netlink_xfrm_callback_ops_t *xfrm_ops, void *app_cookie)
 

Detailed Description

DAO XFRM Netlink Notification management

Definition in file dao_netlink_xfrm.h.

Typedef Documentation

◆ dao_netlink_ip_addr_t

Netlink IP address structure

◆ dao_netlink_xfrm_sa_xform_t

Crypto transform

◆ dao_netlink_xfrm_sa_t

XFRM SA object

◆ dao_netlink_xfrm_policy_t

XFRM Policy object

◆ dao_netlink_xfrm_callback_ops_t

High level XFRM callback ops registered by application

Enumeration Type Documentation

◆ dao_netlink_xfrm_policy_dir_t

Policy directions from LINUX

Enumerator
DAO_NETLINK_XFRM_POLICY_DIR_IN 

Inbound direction

DAO_NETLINK_XFRM_POLICY_DIR_OUT 

Outbound direction

DAO_NETLINK_XFRM_POLICY_DIR_FWD 

Forward

Definition at line 42 of file dao_netlink_xfrm.h.

◆ dao_netlink_xfrm_op_type_t

xfrm op type

Enumerator
DAO_NETLINK_XFRM_OP_POLICY_ADD 

Add IPsec policy

DAO_NETLINK_XFRM_OP_POLICY_UPD 

Update IPsec policy

Definition at line 52 of file dao_netlink_xfrm.h.

◆ dao_netlink_xfrm_proto_t

IPsec protocol: ESP, AH

Enumerator
DAO_NETLINK_XFRM_PROTO_ESP 

ESP Tunnel

DAO_NETLINK_XFRM_PROTO_AH 

AH Tunnel

Definition at line 60 of file dao_netlink_xfrm.h.

◆ dao_netlink_xfrm_sa_mode_t

IPsec SA mode

Enumerator
DAO_NETLINK_XFRM_MODE_TRANSPORT 

Transport mode

DAO_NETLINK_XFRM_MODE_TUNNEL 

Tunnel mode

Definition at line 68 of file dao_netlink_xfrm.h.

◆ dao_netlink_xfrm_tunnel_type_t

IPsec tunnel type

Enumerator
DAO_NETLINK_XFRM_TUNNEL_IPV4 

IPv4

DAO_NETLINK_XFRM_TUNNEL_IPV6 

IPv6

Definition at line 76 of file dao_netlink_xfrm.h.

◆ dao_netlink_xfrm_sa_flags_t

IPsec SA flags

Enumerator
DAO_NETLINK_XFRM_SA_FLAG_USE_ESN 

Extended sequence number is enabled

DAO_NETLINK_XFRM_SA_FLAG_USE_AR 

Anti-Replay is enabled

Definition at line 84 of file dao_netlink_xfrm.h.

Function Documentation

◆ dao_netlink_ipsec_dir_to_str()

static const char * dao_netlink_ipsec_dir_to_str ( dao_netlink_xfrm_policy_dir_t  dir)
inlinestatic

Translate Policy direction to string

Parameters
dirPolicy direction
Returns
const string

Definition at line 223 of file dao_netlink_xfrm.h.

◆ dao_netlink_xfrm_tunnel_type_to_str()

static const char * dao_netlink_xfrm_tunnel_type_to_str ( dao_netlink_xfrm_tunnel_type_t  ip_proto)
inlinestatic

Tunnel type to String

Parameters
ip_protoXFRM tunnel type
Returns
character string

Definition at line 253 of file dao_netlink_xfrm.h.

◆ dao_netlink_xfrm_sa_to_crypto_xform()

int dao_netlink_xfrm_sa_to_crypto_xform ( struct dao_netlink_xfrm_sa sa,
dao_netlink_xfrm_policy_dir_t  dir,
struct rte_crypto_sym_xform *  cipher,
struct rte_crypto_sym_xform *  auth 
)

Converts netlink xfrm transform to DPDK crypto xforms

Parameters
saDAO netlink XFRM SA object received in dao_netlink_xfrm_callback_ops_t
dirPolicy direction
[out]cipherDPDK crypto xform for cipher key
[out]authDPDK crypto xform for auth key
Returns
0: Success <0: Failure

◆ dao_netlink_xfrm_notifier_register()

int dao_netlink_xfrm_notifier_register ( dao_netlink_xfrm_callback_ops_t xfrm_ops,
void *  app_cookie 
)

High level registration function for NETLINK_XFRM

Parameters
xfrm_opsHigh level XFRM callback ops
app_cookieApplication specific cookie for identifying netlink notification
Returns
0: Success <0: Failure