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

  
 
  

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

NAME
     rte_pmd_cnxk.h

SYNOPSIS
     #include <rte_compat.h>
     #include <rte_ethdev.h>
     #include <rte_ether.h>
     #include <rte_security.h>

   Data Structures
     struct rte_pmd_cnxk_cpt_q_stats
     union rte_pmd_cnxk_ipsec_outer_ip_hdr
     struct rte_pmd_cnxk_ipsec_inb_ctx_update_reg
     union rte_pmd_cnxk_ipsec_outb_iv
     struct rte_pmd_cnxk_ipsec_outb_ctx_update_reg
     struct rte_pmd_cnxk_ipsec_inb_sa
     struct rte_pmd_cnxk_ipsec_outb_sa
     union rte_pmd_cnxk_ipsec_hw_sa
     union rte_pmd_cnxk_cpt_res_s
     struct rte_pmd_cnxk_cpt_res_s::rte_pmd_cpt_cn10k_res_s
     struct rte_pmd_cnxk_cpt_res_s::rte_pmd_cpt_cn9k_res_s
     struct rte_pmd_cnxk_ipsec_inb_cfg

   Macros
     #define RTE_PMD_CNXK_AR_WIN_SIZE_MIN   64
     #define					      RTE_PMD_CNXK_AR_WINBITS_SZ
	 (RTE_ALIGN_CEIL(RTE_PMD_CNXK_AR_WIN_SIZE_MAX, 64) / 64)

   Enumerations
     enum    rte_pmd_cnxk_sec_action_alg     {	   RTE_PMD_CNXK_SEC_ACTION_ALG0,
	 RTE_PMD_CNXK_SEC_ACTION_ALG1,		   RTE_PMD_CNXK_SEC_ACTION_ALG2,
	 RTE_PMD_CNXK_SEC_ACTION_ALG3, RTE_PMD_CNXK_SEC_ACTION_ALG4 }
     enum  rte_pmd_cnxk_cpt_q_stats_type   {   RTE_PMD_CNXK_CPT_Q_STATS_INL_DEV,
	 RTE_PMD_CNXK_CPT_Q_STATS_KERNEL, RTE_PMD_CNXK_CPT_Q_STATS_ETHDEV }

   Functions
     __rte_experimental   int  rte_pmd_cnxk_hw_sa_read	(uint16_t  portid,  void
	 *sess, union rte_pmd_cnxk_ipsec_hw_sa *data, uint32_t len, bool inb)
     __rte_experimental  int  rte_pmd_cnxk_hw_sa_write	(uint16_t  portid,  void
	 *sess, union rte_pmd_cnxk_ipsec_hw_sa *data, uint32_t len, bool inb)
     __rte_experimental 	 union		rte_pmd_cnxk_cpt_res_s	       *
	 rte_pmd_cnxk_inl_ipsec_res (struct rte_mbuf *mbuf)
     __rte_experimental union  rte_pmd_cnxk_ipsec_hw_sa  *  rte_pmd_cnxk_hw_ses-
	 sion_base_get (uint16_t portid, bool inb)
     __rte_experimental   int	rte_pmd_cnxk_sa_flush  (uint16_t  portid,  union
	 rte_pmd_cnxk_ipsec_hw_sa *sess, bool inb)
     __rte_experimental 	struct	       rte_pmd_cnxk_inl_dev_q	       *
	 rte_pmd_cnxk_inl_dev_qptr_get (void)
     __rte_experimental     uint16_t	 rte_pmd_cnxk_inl_dev_submit	 (struct
	 rte_pmd_cnxk_inl_dev_q *qptr, void *inst, uint16_t nb_inst)
     __rte_experimental int rte_pmd_cnxk_cpt_q_stats_get (uint16_t portid,  enum
	 rte_pmd_cnxk_cpt_q_stats_type	 type,	struct	rte_pmd_cnxk_cpt_q_stats
	 *stats, uint16_t idx)
     __rte_experimental void rte_pmd_cnxk_hw_inline_inb_cfg_set  (uint16_t  por-
	 tid, struct rte_pmd_cnxk_ipsec_inb_cfg *cfg)
     __rte_experimental const char * rte_pmd_cnxk_model_str_get (void)

Detailed Description
     CNXK PMD specific functions.

     Definition in file rte_pmd_cnxk.h.

Macro Definition Documentation
   #define RTE_PMD_CNXK_AR_WIN_SIZE_MIN   64
     Anti reply window size supported

     Definition at line 91 of file rte_pmd_cnxk.h.

   #define					      RTE_PMD_CNXK_AR_WINBITS_SZ
     (RTE_ALIGN_CEIL(RTE_PMD_CNXK_AR_WIN_SIZE_MAX, 64) / 64)
     u64 array size to fit anti replay window bits

     Definition at line 96 of file rte_pmd_cnxk.h.

Enumeration Type Documentation
   enum rte_pmd_cnxk_sec_action_alg
     Algorithm type to be used with security action to calculate SA_index

     Enumerator

     RTE_PMD_CNXK_SEC_ACTION_ALG0
	    No swizzling of SPI bits into SA index. SA_index is from  SA_XOR  if
	    enabled.

     RTE_PMD_CNXK_SEC_ACTION_ALG1
	    SPI<31:28> has 4 upper bits which segment the sequence number space.
	    Initial  SA_index  is  from  SA_XOR  if  enabled.  SA_alg  = { 4'b0,
	    SA_mcam[27:0] + SPI[31:28]}

     RTE_PMD_CNXK_SEC_ACTION_ALG2
	    SPI<27:25> segment the sequence number space.  Initial  SA_index  is
	    from SA_XOR if enabled. SA_alg = { 7'b0, SA_mcam[24:0] + SPI[27:25]}

     RTE_PMD_CNXK_SEC_ACTION_ALG3
	    SPI<28:25>	segment  the  sequence number space. Initial SA_index is
	    from SA_XOR if enabled. SA_alg = { 7'b0, SA_mcam[24:0] + SPI[28:25]}

     RTE_PMD_CNXK_SEC_ACTION_ALG4
	    The inbound SPI maybe 'random', therefore we want the MCAM to be ca-
	    pable of remapping the SPI to an arbitrary SA_index. SPI  to  SA  is
	    done  using a lookup in NIX/NPC cam entry with key as SPI, MATCH_ID,
	    LFID.

     Definition at line 22 of file rte_pmd_cnxk.h.

   enum rte_pmd_cnxk_cpt_q_stats_type
     CPT queue type for obtaining queue hardware statistics.

     Enumerator

     RTE_PMD_CNXK_CPT_Q_STATS_INL_DEV
	    Type to get Inline Device queue(s) statistics

     RTE_PMD_CNXK_CPT_Q_STATS_KERNEL
	    Type to get Inline Inbound queue which is attached to kernel  device
	    statistics.

     RTE_PMD_CNXK_CPT_Q_STATS_ETHDEV
	    Type to get CPT queue which is attached to ethdev statistics

     Definition at line 51 of file rte_pmd_cnxk.h.

Function Documentation
   __rte_experimental int rte_pmd_cnxk_hw_sa_read (uint16_t portid, void * sess,
     union rte_pmd_cnxk_ipsec_hw_sa * data, uint32_t len, bool inb)
     Read HW SA context from session.

     Parameters
	 portid Port identifier of Ethernet device.
	 sess Handle of the security session as void *.
	 data Destination pointer to copy SA context for application.
	 len Length of SA context to copy into data parameter.
	 inb Determines the type of specified SA.

     Returns
	 0 on success, a negative errno value otherwise.

   __rte_experimental  int  rte_pmd_cnxk_hw_sa_write  (uint16_t  portid,  void *
     sess, union rte_pmd_cnxk_ipsec_hw_sa * data, uint32_t len, bool inb)
     Write HW SA context to session.

     Parameters
	 portid Port identifier of Ethernet device.
	 sess Handle of the security session as void *.
	 data Source data pointer from application to copy SA context into  ses-
	 sion.
	 len Length of SA context to copy from data parameter.
	 inb Determines the type of specified SA.

     Returns
	 0 on success, a negative errno value otherwise.

   __rte_experimental  union rte_pmd_cnxk_cpt_res_s * rte_pmd_cnxk_inl_ipsec_res
     (struct rte_mbuf * mbuf)
     Get pointer to CPT result info for inline inbound processed pkt.

     It is recommended to use this API	only  when  mbuf  indicates  packet  was
     processed	with  inline  IPsec  and  there  was a failure with the same i.e
     mbuf->ol_flags indicates (RTE_MBUF_F_RX_SEC_OFFLOAD | RTE_MBUF_F_RX_SEC_OF-
     FLOAD_FAILED).

     Parameters
	 mbuf Pointer to packet that was just received and  was  processed  with
	 Inline IPsec.

     Returns

	 * Pointer to mbuf location where union rte_pmd_cnxk_cpt_res_s is stored
	   on success.

	 * NULL on failure.

   __rte_experimental	union  rte_pmd_cnxk_ipsec_hw_sa  *  rte_pmd_cnxk_hw_ses-
     sion_base_get (uint16_t portid, bool inb)
     Get pointer to the Inline Inbound or Outbound SA table base.

     Parameters
	 portid Port identifier of Ethernet device.
	 inb Determines the type of SA base to be returned. When  inb  is  true,
	 the  method  returns the Inbound SA base. When inb is false, the method
	 returns the Outbound SA base.

     Returns
	 Pointer to Inbound or Outbound SA base.

   __rte_experimental  int   rte_pmd_cnxk_sa_flush   (uint16_t	 portid,   union
     rte_pmd_cnxk_ipsec_hw_sa * sess, bool inb)
     Executes a CPT flush on the specified session.

     Parameters
	 portid Port identifier of Ethernet device.
	 sess Handle of the session on which the CPT flush will be executed.
	 inb Determines the type of SA to be flushed, Inbound or Outbound.

     Returns
	 0 Upon success, a negative errno value otherwise.

   __rte_experimental	       struct	       rte_pmd_cnxk_inl_dev_q	       *
     rte_pmd_cnxk_inl_dev_qptr_get (void)
     Get queue pointer of Inline Device.

     Returns

	 * Pointer to queue structure that would be the input to submit API.

	 * NULL upon failure.

   __rte_experimental	  uint16_t	rte_pmd_cnxk_inl_dev_submit	 (struct
     rte_pmd_cnxk_inl_dev_q * qptr, void * inst, uint16_t nb_inst)
     Submit CPT instruction(s) (cpt_inst_s) to Inline Device.

     Parameters
	 qptr Pointer obtained with rte_pmd_cnxk_inl_dev_qptr_get.
	 inst Pointer to an array of cpt_inst_s prapared by application.
	 nb_inst Number of instructions to be processed.

     Returns
	 Number of instructions processed.

   __rte_experimental  int  rte_pmd_cnxk_cpt_q_stats_get  (uint16_t portid, enum
     rte_pmd_cnxk_cpt_q_stats_type  type,  struct   rte_pmd_cnxk_cpt_q_stats   *
     stats, uint16_t idx)
     Retrieves the hardware statistics of a given port and stats type.

     Parameters
	 portid Port identifier of Ethernet device.
	 type  The  type  of  hardware statistics to retrieve, as defined in the
	 enum rte_pmd_cnxk_cpt_q_stats_type.
	 stats Pointer where the retrieved statistics will be stored.
	 idx The index of the queue of a given type.

     Returns
	 0 Upon success, a negative errno value otherwise.

   __rte_experimental void rte_pmd_cnxk_hw_inline_inb_cfg_set (uint16_t  portid,
     struct rte_pmd_cnxk_ipsec_inb_cfg * cfg)
     Set  the  configuration  for hardware inline inbound IPsec processing. This
     API must be called before calling the rte_eth_dev_configure API.

     Parameters
	 portid Port identifier of Ethernet device.
	 cfg Pointer to the IPsec inbound configuration structure.

   __rte_experimental const char * rte_pmd_cnxk_model_str_get (void)
     Retrieves model name on which it is running as a string.

     Returns
	 Returns model string, ex.'cn10ka_a1'

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

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

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

home | help