Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
rte_ipsec_sa.h(3)		      DPDK		       rte_ipsec_sa.h(3)

NAME
     rte_ipsec_sa.h

SYNOPSIS
     #include <rte_common.h>
     #include <rte_cryptodev.h>
     #include <rte_security.h>

   Data Structures
     struct rte_ipsec_sa_prm

   Macros
     #define RTE_IPSEC_SAFLAG_SQN_ATOM	 (1ULL << 0)

   Enumerations
     enum

   Functions
     uint64_t rte_ipsec_sa_type (const struct rte_ipsec_sa *sa)
     int rte_ipsec_sa_size (const struct rte_ipsec_sa_prm *prm)
     int    rte_ipsec_sa_init	 (struct    rte_ipsec_sa   *sa,   const   struct
	 rte_ipsec_sa_prm *prm, uint32_t size)
     void rte_ipsec_sa_fini (struct rte_ipsec_sa *sa)

Detailed Description
     Defines API to manage IPsec Security Association (SA) objects.

     Definition in file rte_ipsec_sa.h.

Macro Definition Documentation
   #define RTE_IPSEC_SAFLAG_SQN_ATOM   (1ULL << 0)
     Indicates that SA will(/will not) need an 'atomic' access to sequence  num-
     ber and replay window. 'atomic' here means: functions:

     * rte_ipsec_pkt_crypto_prepare

     * rte_ipsec_pkt_process  can  be  safely used in MT environment, as long as
       the user can guarantee that  they  obey	multiple  readers/single  writer
       model for SQN+replay_window operations. To be more specific: for outbound
       SA  there are no restrictions. for inbound SA the caller has to guarantee
       that   at   any	 given	 moment   only	 one   thread	 is    executing
       rte_ipsec_pkt_process() for given SA. Note that it is caller responsibil-
       ity  to maintain correct order of packets to be processed. In other words
       - it is a caller responsibility to serialize process() invocations.

     Definition at line 70 of file rte_ipsec_sa.h.

Enumeration Type Documentation
   anonymous enum
     SA type is an 64-bit value that contain the following information:

     * IP version (IPv4/IPv6)

     * IPsec proto (ESP/AH)

     * inbound/outbound

     * mode (TRANSPORT/TUNNEL)

     * for TUNNEL outer IP version (IPv4/IPv6)

     * are SA SQN operations 'atomic'

     * ESN enabled/disabled

     * NAT-T UDP encapsulated (TUNNEL mode only) ...

     Definition at line 85 of file rte_ipsec_sa.h.

Function Documentation
   uint64_t rte_ipsec_sa_type (const struct rte_ipsec_sa * sa)
     get type of given SA

     Returns
	 SA type value.

   int rte_ipsec_sa_size (const struct rte_ipsec_sa_prm * prm)
     Calculate required SA size based on provided input parameters.

     Parameters
	 prm Parameters that will be used to initialise SA object.

     Returns

	 * Actual size required for SA with given parameters.

	 * -EINVAL if the parameters are invalid.

   int	 rte_ipsec_sa_init   (struct   rte_ipsec_sa   *   sa,	 const	  struct
     rte_ipsec_sa_prm * prm, uint32_t size)
     initialise SA based on provided input parameters.

     Parameters
	 sa SA object to initialise.
	 prm Parameters used to initialise given SA object.
	 size size of the provided buffer for SA.

     Returns

	 * Actual size of SA object if operation completed successfully.

	 * -EINVAL if the parameters are invalid.

	 * -ENOSPC if the size of the provided buffer is not big enough.

   void rte_ipsec_sa_fini (struct rte_ipsec_sa * sa)
     cleanup SA

     Parameters
	 sa Pointer to SA object to de-initialize.

Author
     Generated automatically by Doxygen for DPDK from the source code.

Version 25.11.0 		 Thu Aug 27 2026	       rte_ipsec_sa.h(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=rte_ipsec_sa.h&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help