cryptodev: pass IV as offset
[dpdk.git] / lib / librte_cryptodev / rte_crypto_sym.h
index 3a40844..db594c8 100644 (file)
@@ -1,7 +1,7 @@
 /*-
  *   BSD LICENSE
  *
- *   Copyright(c) 2016 Intel Corporation. All rights reserved.
+ *   Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
  *
  *   Redistribution and use in source and binary forms, with or without
  *   modification, are permitted provided that the following conditions
@@ -376,17 +376,6 @@ struct rte_crypto_sym_xform {
        };
 };
 
-/**
- * Crypto operation session type. This is used to specify whether a crypto
- * operation has session structure attached for immutable parameters or if all
- * operation information is included in the operation data structure.
- */
-enum rte_crypto_sym_op_sess_type {
-       RTE_CRYPTO_SYM_OP_WITH_SESSION, /**< Session based crypto operation */
-       RTE_CRYPTO_SYM_OP_SESSIONLESS   /**< Session-less crypto operation */
-};
-
-
 struct rte_cryptodev_sym_session;
 
 /**
@@ -423,8 +412,6 @@ struct rte_crypto_sym_op {
        struct rte_mbuf *m_src; /**< source mbuf */
        struct rte_mbuf *m_dst; /**< destination mbuf */
 
-       enum rte_crypto_sym_op_sess_type sess_type;
-
        RTE_STD_C11
        union {
                struct rte_cryptodev_sym_session *session;
@@ -477,8 +464,10 @@ struct rte_crypto_sym_op {
                } data; /**< Data offsets and length for ciphering */
 
                struct {
-                       uint8_t *data;
-                       /**< Initialisation Vector or Counter.
+                       uint16_t offset;
+                       /**< Starting point for Initialisation Vector or Counter,
+                        * specified as number of bytes from start of crypto
+                        * operation.
                         *
                         * - For block ciphers in CBC or F8 mode, or for KASUMI
                         * in F8 mode, or for SNOW 3G in UEA2 mode, this is the
@@ -504,7 +493,6 @@ struct rte_crypto_sym_op {
                         * For optimum performance, the data pointed to SHOULD
                         * be 8-byte aligned.
                         */
-                       phys_addr_t phys_addr;
                        uint16_t length;
                        /**< Length of valid IV data.
                         *
@@ -653,7 +641,7 @@ struct rte_crypto_sym_op {
                } aad;
                /**< Additional authentication parameters */
        } auth;
-} __rte_cache_aligned;
+};
 
 
 /**
@@ -665,8 +653,6 @@ static inline void
 __rte_crypto_sym_op_reset(struct rte_crypto_sym_op *op)
 {
        memset(op, 0, sizeof(*op));
-
-       op->sess_type = RTE_CRYPTO_SYM_OP_SESSIONLESS;
 }
 
 
@@ -708,7 +694,6 @@ __rte_crypto_sym_op_attach_sym_session(struct rte_crypto_sym_op *sym_op,
                struct rte_cryptodev_sym_session *sess)
 {
        sym_op->session = sess;
-       sym_op->sess_type = RTE_CRYPTO_SYM_OP_WITH_SESSION;
 
        return 0;
 }