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

FreeBSD Manual Pages

  
 
  

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_session_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
	   portid, 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
	      capable 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
	   session.
	   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_OFFLOAD_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_session_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 Jun	11 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_SEC_ACTION_ALG3&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help