examples/ipsec-secgw: support inline UDP encapsulation
[dpdk.git] / examples / ipsec-secgw / ipsec.h
index 1e642d1..ae5058d 100644 (file)
 #define IV_OFFSET              (sizeof(struct rte_crypto_op) + \
                                sizeof(struct rte_crypto_sym_op))
 
-#define uint32_t_to_char(ip, a, b, c, d) do {\
-               *a = (uint8_t)(ip >> 24 & 0xff);\
-               *b = (uint8_t)(ip >> 16 & 0xff);\
-               *c = (uint8_t)(ip >> 8 & 0xff);\
-               *d = (uint8_t)(ip & 0xff);\
-       } while (0)
-
 #define DEFAULT_MAX_CATEGORIES 1
 
 #define INVALID_SPI (0)
@@ -82,6 +75,7 @@ struct app_sa_prm {
        uint32_t window_size; /* replay window size */
        uint32_t enable_esn;  /* enable/disable ESN support */
        uint32_t cache_sz;      /* per lcore SA cache size */
+       uint32_t udp_encap;   /* enable/disable UDP Encapsulation */
        uint64_t flags;       /* rte_ipsec_sa_prm.flags */
 };
 
@@ -143,6 +137,7 @@ struct ipsec_sa {
                struct rte_security_ipsec_xform *sec_xform;
        };
        enum rte_security_ipsec_sa_direction direction;
+       uint8_t udp_encap;
        uint16_t portid;
        uint8_t fdir_qid;
        uint8_t fdir_flag;
@@ -416,4 +411,7 @@ check_flow_params(uint16_t fdir_portid, uint8_t fdir_qid);
 int
 create_ipsec_esp_flow(struct ipsec_sa *sa);
 
+uint32_t
+get_nb_crypto_sessions(void);
+
 #endif /* __IPSEC_H__ */