net/ice/base: avoid undefined behavior
[dpdk.git] / drivers / crypto / dpaa_sec / dpaa_sec.h
index a661d5a..2cd50cc 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: BSD-3-Clause
  *
- *   Copyright 2016 NXP
+ *   Copyright 2016-2020 NXP
  *
  */
 
@@ -98,7 +98,7 @@ struct sec_cdb {
 
        uint32_t sh_desc[DPAA_SEC_MAX_DESC_SIZE];
 };
-
+#ifdef RTE_LIBRTE_SECURITY
 /*!
  * The structure is to be filled by user as a part of
  * dpaa_sec_proto_ctxt for PDCP Protocol
@@ -115,14 +115,19 @@ struct sec_pdcp_ctxt {
        uint32_t hfn;   /*!< Hyper Frame Number */
        uint32_t hfn_threshold; /*!< HFN Threashold for key renegotiation */
 };
-
+#endif
 typedef struct dpaa_sec_session_entry {
+       struct sec_cdb cdb;     /**< cmd block associated with qp */
+       struct dpaa_sec_qp *qp[MAX_DPAA_CORES];
+       struct qman_fq *inq[MAX_DPAA_CORES];
        uint8_t dir;         /*!< Operation Direction */
        uint8_t ctxt;   /*!< Session Context Type */
        enum rte_crypto_cipher_algorithm cipher_alg; /*!< Cipher Algorithm*/
        enum rte_crypto_auth_algorithm auth_alg; /*!< Authentication Algorithm*/
        enum rte_crypto_aead_algorithm aead_alg; /*!< AEAD Algorithm*/
+#ifdef RTE_LIBRTE_SECURITY
        enum rte_security_session_protocol proto_alg; /*!< Security Algorithm*/
+#endif
        union {
                struct {
                        uint8_t *data;  /**< pointer to key data */
@@ -163,11 +168,10 @@ typedef struct dpaa_sec_session_entry {
                        uint8_t auth_cipher_text;
                                /**< Authenticate/cipher ordering */
                };
+#ifdef RTE_LIBRTE_SECURITY
                struct sec_pdcp_ctxt pdcp;
+#endif
        };
-       struct dpaa_sec_qp *qp[MAX_DPAA_CORES];
-       struct qman_fq *inq[MAX_DPAA_CORES];
-       struct sec_cdb cdb;     /**< cmd block associated with qp */
 } dpaa_sec_session;
 
 struct dpaa_sec_qp {
@@ -214,6 +218,27 @@ struct dpaa_sec_op_ctx {
 };
 
 static const struct rte_cryptodev_capabilities dpaa_sec_capabilities[] = {
+       {       /* NULL (AUTH) */
+               .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
+               {.sym = {
+                       .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
+                       {.auth = {
+                               .algo = RTE_CRYPTO_AUTH_NULL,
+                               .block_size = 1,
+                               .key_size = {
+                                       .min = 0,
+                                       .max = 0,
+                                       .increment = 0
+                               },
+                               .digest_size = {
+                                       .min = 0,
+                                       .max = 0,
+                                       .increment = 0
+                               },
+                               .iv_size = { 0 }
+                       }, },
+               }, },
+       },
        {       /* MD5 HMAC */
                .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
                {.sym = {
@@ -370,6 +395,26 @@ static const struct rte_cryptodev_capabilities dpaa_sec_capabilities[] = {
                        }, }
                }, }
        },
+       {       /* NULL (CIPHER) */
+               .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
+               {.sym = {
+                       .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
+                       {.cipher = {
+                               .algo = RTE_CRYPTO_CIPHER_NULL,
+                               .block_size = 1,
+                               .key_size = {
+                                       .min = 0,
+                                       .max = 0,
+                                       .increment = 0
+                               },
+                               .iv_size = {
+                                       .min = 0,
+                                       .max = 0,
+                                       .increment = 0
+                               }
+                       }, },
+               }, }
+       },
        {       /* AES CBC */
                .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
                {.sym = {
@@ -523,6 +568,7 @@ static const struct rte_cryptodev_capabilities dpaa_sec_capabilities[] = {
        RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
 };
 
+#ifdef RTE_LIBRTE_SECURITY
 static const struct rte_cryptodev_capabilities dpaa_pdcp_capabilities[] = {
        {       /* SNOW 3G (UIA2) */
                .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
@@ -687,7 +733,8 @@ static const struct rte_security_capability dpaa_sec_security_cap[] = {
                        .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
                        .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
                        .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
-                       .options = { 0 }
+                       .options = { 0 },
+                       .replay_win_sz_max = 128
                },
                .crypto_capabilities = dpaa_sec_capabilities
        },
@@ -698,7 +745,8 @@ static const struct rte_security_capability dpaa_sec_security_cap[] = {
                        .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
                        .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
                        .direction = RTE_SECURITY_IPSEC_SA_DIR_INGRESS,
-                       .options = { 0 }
+                       .options = { 0 },
+                       .replay_win_sz_max = 128
                },
                .crypto_capabilities = dpaa_sec_capabilities
        },
@@ -707,6 +755,7 @@ static const struct rte_security_capability dpaa_sec_security_cap[] = {
                .protocol = RTE_SECURITY_PROTOCOL_PDCP,
                .pdcp = {
                        .domain = RTE_SECURITY_PDCP_MODE_DATA,
+                       .capa_flags = 0
                },
                .crypto_capabilities = dpaa_pdcp_capabilities
        },
@@ -715,6 +764,7 @@ static const struct rte_security_capability dpaa_sec_security_cap[] = {
                .protocol = RTE_SECURITY_PROTOCOL_PDCP,
                .pdcp = {
                        .domain = RTE_SECURITY_PDCP_MODE_CONTROL,
+                       .capa_flags = 0
                },
                .crypto_capabilities = dpaa_pdcp_capabilities
        },
@@ -722,6 +772,7 @@ static const struct rte_security_capability dpaa_sec_security_cap[] = {
                .action = RTE_SECURITY_ACTION_TYPE_NONE
        }
 };
+#endif
 
 /**
  * Checksum