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_pmd_cnxk.h(3)

Detailed Description

       CNXK PMD specific functions.

       Definition in file rte_pmd_cnxk.h.

Enumeration Type Documentation

enumrte_pmd_cnxk_sec_action_alg
       Algorithm type to be used with security action to calculate SA_index

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

   enumrte_pmd_cnxk_cpt_q_stats_type
       CPT queue type for obtaining queue hardware statistics.

       EnumeratorRTE_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_experimentalintrte_pmd_cnxk_hw_sa_read(uint16_tportid,void*sess,unionrte_pmd_cnxk_ipsec_hw_sa*data,uint32_tlen,boolinb)
       Read HW SA context from session.

       Parametersportid 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_experimentalintrte_pmd_cnxk_hw_sa_write(uint16_tportid,void*sess,unionrte_pmd_cnxk_ipsec_hw_sa*data,uint32_tlen,boolinb)
       Write HW SA context to session.

       Parametersportid 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_experimentalunionrte_pmd_cnxk_cpt_res_s*rte_pmd_cnxk_inl_ipsec_res(structrte_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).

       Parametersmbuf 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_sisstoredonsuccess.

           • NULL on failure.

   __rte_experimentalunionrte_pmd_cnxk_ipsec_hw_sa*rte_pmd_cnxk_hw_session_base_get(uint16_tportid,boolinb)
       Get pointer to the Inline Inbound or Outbound SA table base.

       Parametersportid 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_experimentalintrte_pmd_cnxk_sa_flush(uint16_tportid,unionrte_pmd_cnxk_ipsec_hw_sa*sess,boolinb)
       Executes a CPT flush on the specified session.

       Parametersportid 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_experimentalstructrte_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_experimentaluint16_trte_pmd_cnxk_inl_dev_submit(structrte_pmd_cnxk_inl_dev_q*qptr,void*inst,uint16_tnb_inst)
       Submit CPT instruction(s) (cpt_inst_s) to Inline Device.

       Parametersqptr 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_experimentalintrte_pmd_cnxk_cpt_q_stats_get(uint16_tportid,enumrte_pmd_cnxk_cpt_q_stats_typetype,structrte_pmd_cnxk_cpt_q_stats*stats,uint16_tidx)
       Retrieves the hardware statistics of a given port and stats type.

       Parametersportid 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_experimentalvoidrte_pmd_cnxk_hw_inline_inb_cfg_set(uint16_tportid,structrte_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.

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

   __rte_experimentalconstchar*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'

Macro Definition Documentation

#defineRTE_PMD_CNXK_AR_WIN_SIZE_MIN64
       Anti reply window size supported

       Definition at line 91 of file rte_pmd_cnxk.h.

   #defineRTE_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.

Name

       rte_pmd_cnxk.h

Synopsis

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

   DataStructures
       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_cfgMacros
       #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)

See Also