logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Author

       Generated automatically by Doxygen for DPDK from the source code.

DPDK                                             Version 24.11.2                               rte_ipsec_sa.h(3)

Detailed Description

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

       Definition in file rte_ipsec_sa.h.

Enumeration Type Documentation

anonymousenum
       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_trte_ipsec_sa_type(conststructrte_ipsec_sa*sa)
       get type of given SA

       Returns
           SA type value.

   intrte_ipsec_sa_size(conststructrte_ipsec_sa_prm*prm)
       Calculate required SA size based on provided input parameters.

       Parametersprm Parameters that will be used to initialise SA object.

       Returns

           • Actual size required for SA with given parameters.

           • -EINVAL if the parameters are invalid.

   intrte_ipsec_sa_init(structrte_ipsec_sa*sa,conststructrte_ipsec_sa_prm*prm,uint32_tsize)
       initialise SA based on provided input parameters.

       Parameterssa 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.

   voidrte_ipsec_sa_fini(structrte_ipsec_sa*sa)
       cleanup SA

       Parameterssa Pointer to SA object to de-initialize.

Macro Definition Documentation

#defineRTE_IPSEC_SAFLAG_SQN_ATOM(1ULL<<0)
       Indicates that SA will(/will not) need an 'atomic' access to sequence number 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
         responsibility 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.

Name

       rte_ipsec_sa.h

Synopsis

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

   DataStructures
       struct rte_ipsec_sa_prmMacros
       #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)

See Also