eventdev/eth_rx: fix telemetry Rx stats reset
[dpdk.git] / examples / ipsec-secgw / ipsec.h
index ae5058d..ccfde8e 100644 (file)
@@ -23,8 +23,6 @@
 
 #define MAX_DIGEST_SIZE 32 /* Bytes -- 256 bits */
 
-#define IPSEC_OFFLOAD_ESN_SOFTLIMIT 0xffffff00
-
 #define IV_OFFSET              (sizeof(struct rte_crypto_op) + \
                                sizeof(struct rte_crypto_sym_op))
 
@@ -65,8 +63,7 @@ struct ip_addr {
        } ip;
 };
 
-#define MAX_KEY_SIZE           36
-
+#define MAX_KEY_SIZE           64
 /*
  * application wide SA parameters
  */
@@ -125,8 +122,14 @@ struct ipsec_sa {
 #define TRANSPORT  (1 << 2)
 #define IP4_TRANSPORT (1 << 3)
 #define IP6_TRANSPORT (1 << 4)
+#define SA_TELEMETRY_ENABLE (1 << 5)
+
        struct ip_addr src;
        struct ip_addr dst;
+       struct {
+               uint16_t sport;
+               uint16_t dport;
+       } udp;
        uint8_t cipher_key[MAX_KEY_SIZE];
        uint16_t cipher_key_len;
        uint8_t auth_key[MAX_KEY_SIZE];
@@ -139,10 +142,12 @@ struct ipsec_sa {
        enum rte_security_ipsec_sa_direction direction;
        uint8_t udp_encap;
        uint16_t portid;
+       uint64_t esn;
+       uint16_t mss;
        uint8_t fdir_qid;
        uint8_t fdir_flag;
 
-#define MAX_RTE_FLOW_PATTERN (4)
+#define MAX_RTE_FLOW_PATTERN (5)
 #define MAX_RTE_FLOW_ACTIONS (3)
        struct rte_flow_item pattern[MAX_RTE_FLOW_PATTERN];
        struct rte_flow_action action[MAX_RTE_FLOW_ACTIONS];
@@ -151,6 +156,7 @@ struct ipsec_sa {
                struct rte_flow_item_ipv4 ipv4_spec;
                struct rte_flow_item_ipv6 ipv6_spec;
        };
+       struct rte_flow_item_udp udp_spec;
        struct rte_flow_item_esp esp_spec;
        struct rte_flow *flow;
        struct rte_security_session_conf sess_conf;
@@ -242,7 +248,7 @@ struct socket_ctx {
        struct sp_ctx *sp_ip6_out;
        struct rt_ctx *rt_ip4;
        struct rt_ctx *rt_ip6;
-       struct rte_mempool *mbuf_pool;
+       struct rte_mempool *mbuf_pool[RTE_MAX_ETHPORTS];
        struct rte_mempool *mbuf_pool_indir;
        struct rte_mempool *session_pool;
        struct rte_mempool *session_priv_pool;