Limit port specific SA table size to 1 entry when not used.
This is usefule when inline device is enabled as then
Port specific SA table will not be used for Inline IPsec
inbound processing.

Signed-off-by: Nithin Dabilpuram <ndabilpu...@marvell.com>
---
 drivers/net/cnxk/cnxk_ethdev.c         | 4 ++++
 drivers/net/cnxk/cnxk_ethdev.h         | 5 ++++-
 drivers/net/cnxk/cnxk_ethdev_devargs.c | 3 +--
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/net/cnxk/cnxk_ethdev.c b/drivers/net/cnxk/cnxk_ethdev.c
index 4ed81c3d98..89f8cc107d 100644
--- a/drivers/net/cnxk/cnxk_ethdev.c
+++ b/drivers/net/cnxk/cnxk_ethdev.c
@@ -103,6 +103,10 @@ nix_security_setup(struct cnxk_eth_dev *dev)
        int i, rc = 0;
 
        if (dev->rx_offloads & RTE_ETH_RX_OFFLOAD_SECURITY) {
+               /* Setup minimum SA table when inline device is used */
+               nix->ipsec_in_min_spi = dev->inb.no_inl_dev ? dev->inb.min_spi 
: 0;
+               nix->ipsec_in_max_spi = dev->inb.no_inl_dev ? dev->inb.max_spi 
: 1;
+
                /* Setup Inline Inbound */
                rc = roc_nix_inl_inb_init(nix);
                if (rc) {
diff --git a/drivers/net/cnxk/cnxk_ethdev.h b/drivers/net/cnxk/cnxk_ethdev.h
index a4178cfeff..bed0e0eada 100644
--- a/drivers/net/cnxk/cnxk_ethdev.h
+++ b/drivers/net/cnxk/cnxk_ethdev.h
@@ -273,8 +273,11 @@ TAILQ_HEAD(cnxk_eth_sec_sess_list, cnxk_eth_sec_sess);
 
 /* Inbound security data */
 struct cnxk_eth_dev_sec_inb {
+       /* IPSec inbound min SPI */
+       uint32_t min_spi;
+
        /* IPSec inbound max SPI */
-       uint16_t max_spi;
+       uint32_t max_spi;
 
        /* Using inbound with inline device */
        bool inl_dev;
diff --git a/drivers/net/cnxk/cnxk_ethdev_devargs.c 
b/drivers/net/cnxk/cnxk_ethdev_devargs.c
index 4ded850622..d28509dbda 100644
--- a/drivers/net/cnxk/cnxk_ethdev_devargs.c
+++ b/drivers/net/cnxk/cnxk_ethdev_devargs.c
@@ -320,12 +320,11 @@ cnxk_ethdev_parse_devargs(struct rte_devargs *devargs, 
struct cnxk_eth_dev *dev)
 null_devargs:
        dev->scalar_ena = !!scalar_enable;
        dev->inb.no_inl_dev = !!no_inl_dev;
+       dev->inb.min_spi = ipsec_in_min_spi;
        dev->inb.max_spi = ipsec_in_max_spi;
        dev->outb.max_sa = ipsec_out_max_sa;
        dev->outb.nb_desc = outb_nb_desc;
        dev->outb.nb_crypto_qs = outb_nb_crypto_qs;
-       dev->nix.ipsec_in_min_spi = ipsec_in_min_spi;
-       dev->nix.ipsec_in_max_spi = ipsec_in_max_spi;
        dev->nix.ipsec_out_max_sa = ipsec_out_max_sa;
        dev->nix.rss_tag_as_xor = !!rss_tag_as_xor;
        dev->nix.max_sqb_count = sqb_count;
-- 
2.25.1

Reply via email to