eventdev/eth_rx: fix telemetry Rx stats reset
[dpdk.git] / examples / ipsec-secgw / ipsec.h
index 2c36408..ccfde8e 100644 (file)
@@ -63,8 +63,7 @@ struct ip_addr {
        } ip;
 };
 
-#define MAX_KEY_SIZE           36
-
+#define MAX_KEY_SIZE           64
 /*
  * application wide SA parameters
  */
@@ -123,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];
@@ -137,11 +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];
@@ -150,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;
@@ -241,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;