examples/ipsec-secgw: support flow director
[dpdk.git] / examples / ipsec-secgw / ipsec.h
index f8f29f9..1e642d1 100644 (file)
@@ -72,7 +72,7 @@ struct ip_addr {
        } ip;
 };
 
-#define MAX_KEY_SIZE           32
+#define MAX_KEY_SIZE           36
 
 /*
  * application wide SA parameters
@@ -144,6 +144,8 @@ struct ipsec_sa {
        };
        enum rte_security_ipsec_sa_direction direction;
        uint16_t portid;
+       uint8_t fdir_qid;
+       uint8_t fdir_flag;
 
 #define MAX_RTE_FLOW_PATTERN (4)
 #define MAX_RTE_FLOW_ACTIONS (3)
@@ -255,7 +257,7 @@ struct cnt_blk {
        uint32_t salt;
        uint64_t iv;
        uint32_t cnt;
-} __attribute__((packed));
+} __rte_packed;
 
 /* Socket ctx */
 extern struct socket_ctx socket_ctx[NB_SOCKETS];
@@ -408,5 +410,10 @@ create_lookaside_session(struct ipsec_ctx *ipsec_ctx, struct ipsec_sa *sa,
 int
 create_inline_session(struct socket_ctx *skt_ctx, struct ipsec_sa *sa,
                struct rte_ipsec_session *ips);
+int
+check_flow_params(uint16_t fdir_portid, uint8_t fdir_qid);
+
+int
+create_ipsec_esp_flow(struct ipsec_sa *sa);
 
 #endif /* __IPSEC_H__ */