Signed-off-by: Nikhil Agarwal <[email protected]>
---
include/odp/api/spec/ipsec.h | 62 +++++++++++++++++++-------------------------
1 file changed, 26 insertions(+), 36 deletions(-)
diff --git a/include/odp/api/spec/ipsec.h b/include/odp/api/spec/ipsec.h
index b3dc0ca..d39e65d 100644
--- a/include/odp/api/spec/ipsec.h
+++ b/include/odp/api/spec/ipsec.h
@@ -58,8 +58,10 @@ typedef enum odp_ipsec_op_mode_t {
/** Inline IPSEC operation
*
* Packet input/output is connected directly to IPSEC inbound/outbound
- * processing. Application uses asynchronous or inline IPSEC
- * operations.
+ * processing. Application may use asynchronous IPSEC operations.
+ * Packet post IPSEC operations are delivered to PKTIO queues. Further
+ * classification/Hashing(inbound) will be applicaed to packet post
IPSEC as
+ * defined in PKTIO configuration.
*/
ODP_IPSEC_OP_MODE_INLINE,
@@ -225,6 +227,24 @@ typedef struct odp_ipsec_outbound_config_t {
} odp_ipsec_outbound_config_t;
+typedef union odp_ipsec_protocols_t {
+ /** Cipher algorithms */
+ struct {
+ /** ODP_IPSEC_ESP */
+ uint32_t esp : 1;
+
+ /** ODP_IPSEC_AH */
+ uint32_t ah : 1;
+
+ } bit;
+
+ /** All bits of the bit field structure
+ *
+ * This field can be used to set/clear all flags, or bitwise
+ * operations over the entire structure. */
+ uint32_t all_bits;
+} odp_ipsec_protocols_t;
+
/**
* IPSEC capability
*/
@@ -279,6 +299,9 @@ typedef struct odp_ipsec_capability_t {
*/
uint8_t hard_limit_sec;
+ /** Supported ipsec Protocols */
+ odp_ipsec_protocols_t protocols;
+
/** Supported cipher algorithms */
odp_crypto_cipher_algos_t ciphers;
@@ -568,21 +591,6 @@ typedef enum odp_ipsec_lookup_mode_t {
} odp_ipsec_lookup_mode_t;
/**
- * Result event pipeline configuration
- */
-typedef enum odp_ipsec_pipeline_t {
- /** Do not pipeline */
- ODP_IPSEC_PIPELINE_NONE = 0,
-
- /** Send IPSEC result events to the classifier.
- *
- * IPSEC capability 'pipeline_cls' determines if pipelined
- * classification is supported. */
- ODP_IPSEC_PIPELINE_CLS
-
-} odp_ipsec_pipeline_t;
-
-/**
* IPSEC Security Association (SA) parameters
*/
typedef struct odp_ipsec_sa_param_t {
@@ -646,31 +654,13 @@ typedef struct odp_ipsec_sa_param_t {
*/
uint32_t mtu;
- /** Select pipelined destination for IPSEC result events
- *
- * Asynchronous and inline modes generate result events. Select where
- * those events are sent. Inbound SAs may choose to use pipelined
- * classification. The default value is ODP_IPSEC_PIPELINE_NONE.
- */
- odp_ipsec_pipeline_t pipeline;
-
/** Destination queue for IPSEC events
*
- * Operations in asynchronous or inline mode enqueue resulting events
+ * Operations in asynchronous mode enqueue resulting events
* into this queue.
*/
odp_queue_t dest_queue;
- /** Classifier destination CoS for IPSEC result events
- *
- * Result events for successfully decapsulated packets are sent to
- * classification through this CoS. Other result events are sent to
- * 'dest_queue'. This field is considered only when 'pipeline' is
- * ODP_IPSEC_PIPELINE_CLS. The CoS must not be shared between any pktio
- * interface default CoS.
- */
- odp_cos_t dest_cos;
-
/** User defined SA context pointer
*
* User defined context pointer associated with the SA.
--
2.9.3