Test-Label: iol-testing Test-Status: WARNING http://dpdk.org/patch/98193 _apply patch failure_ Submitter: Archana Muniganti Date: Tuesday, September 07 2021 14:21:03 Applied on: CommitID:b344eb5d941a7522ff27b6b7b5419f68c3fea9a0 Apply patch set 98193-98198 failed: Checking patch drivers/common/cnxk/roc_cpt.h... Checking patch drivers/common/cnxk/roc_ie_on.h... error: while searching for: #ifndef __ROC_IE_ON_H__ #define __ROC_IE_ON_H__ /* CN9K IPSEC LA opcodes */ #define ROC_IE_ONL_MAJOR_OP_WRITE_IPSEC_OUTBOUND 0x20 #define ROC_IE_ONL_MAJOR_OP_WRITE_IPSEC_INBOUND 0x21 #define ROC_IE_ONL_MAJOR_OP_PROCESS_OUTBOUND_IPSEC 0x23 #define ROC_IE_ONL_MAJOR_OP_PROCESS_INBOUND_IPSEC 0x24 /* CN9K IPSEC FP opcodes */ #define ROC_IE_ONF_MAJOR_OP_PROCESS_OUTBOUND_IPSEC 0x25UL #define ROC_IE_ONF_MAJOR_OP_PROCESS_INBOUND_IPSEC 0x26UL /* Ucode completion codes */ #define ROC_IE_ONF_UCC_SUCCESS 0 enum { ROC_IE_ON_SA_ENC_NULL = 0, error: patch failed: drivers/common/cnxk/roc_ie_on.h:5 Hunk #2 succeeded at 76 (offset 20 lines). Applied patch drivers/common/cnxk/roc_cpt.h cleanly. Applying patch drivers/common/cnxk/roc_ie_on.h with 1 reject... Rejected hunk #1. Hunk #2 applied cleanly. diff a/drivers/common/cnxk/roc_ie_on.h b/drivers/common/cnxk/roc_ie_on.h (rejected hunks) @@ -5,18 +5,24 @@ #ifndef __ROC_IE_ON_H__ #define __ROC_IE_ON_H__ -/* CN9K IPSEC LA opcodes */ -#define ROC_IE_ONL_MAJOR_OP_WRITE_IPSEC_OUTBOUND 0x20 -#define ROC_IE_ONL_MAJOR_OP_WRITE_IPSEC_INBOUND 0x21 -#define ROC_IE_ONL_MAJOR_OP_PROCESS_OUTBOUND_IPSEC 0x23 -#define ROC_IE_ONL_MAJOR_OP_PROCESS_INBOUND_IPSEC 0x24 +/* CN9K IPsec LA */ -/* CN9K IPSEC FP opcodes */ -#define ROC_IE_ONF_MAJOR_OP_PROCESS_OUTBOUND_IPSEC 0x25UL -#define ROC_IE_ONF_MAJOR_OP_PROCESS_INBOUND_IPSEC 0x26UL +/* CN9K IPsec LA opcodes */ +#define ROC_IE_ON_MAJOR_OP_WRITE_IPSEC_OUTBOUND 0x20 +#define ROC_IE_ON_MAJOR_OP_WRITE_IPSEC_INBOUND 0x21 +#define ROC_IE_ON_MAJOR_OP_PROCESS_OUTBOUND_IPSEC 0x23 +#define ROC_IE_ON_MAJOR_OP_PROCESS_INBOUND_IPSEC 0x24 /* Ucode completion codes */ -#define ROC_IE_ONF_UCC_SUCCESS 0 +enum roc_ie_on_ucc_ipsec { + ROC_IE_ON_UCC_SUCCESS = 0, + ROC_IE_ON_AUTH_UNSUPPORTED = 0xB0, + ROC_IE_ON_ENCRYPT_UNSUPPORTED = 0xB1, +}; + +/* Helper macros */ +#define ROC_IE_ON_PER_PKT_IV BIT(11) +#define ROC_IE_ON_INB_RPTR_HDR 0x8 enum { ROC_IE_ON_SA_ENC_NULL = 0, Checking patch drivers/crypto/cnxk/cn9k_cryptodev_ops.c... error: while searching for: #include #include #include #include #include "cn9k_cryptodev.h" #include "cn9k_cryptodev_ops.h" #include "cnxk_ae.h" #include "cnxk_cryptodev.h" #include "cnxk_cryptodev_ops.h" error: patch failed: drivers/crypto/cnxk/cn9k_cryptodev_ops.c:5 Hunk #2 succeeded at 32 (offset -5 lines). error: while searching for: sym_op->session, cn9k_cryptodev_driver_id); ret = cn9k_cpt_sym_inst_fill(qp, op, sess, infl_req, inst); } else { sess = cn9k_cpt_sym_temp_sess_create(qp, op); if (unlikely(sess == NULL)) { plt_dp_err("Could not create temp session"); error: patch failed: drivers/crypto/cnxk/cn9k_cryptodev_ops.c:80 error: while searching for: op->sym->session); rte_mempool_put(qp->sess_mp, op->sym->session); } } inst->w7.u64 = sess->cpt_inst_w7; } else if (op->type == RTE_CRYPTO_OP_TYPE_ASYMMETRIC) { struct rte_crypto_asym_op *asym_op; struct cnxk_ae_sess *sess; error: patch failed: drivers/crypto/cnxk/cn9k_cryptodev_ops.c:94 error: while searching for: return 1; } static inline void cn9k_cpt_dequeue_post_process(struct cnxk_cpt_qp *qp, struct rte_crypto_op *cop, struct cpt_inflight_req *infl_req) error: patch failed: drivers/crypto/cnxk/cn9k_cryptodev_ops.c:348 Hunk #6 succeeded at 228 (offset -211 lines). Checking patch drivers/crypto/cnxk/cn9k_ipsec_la_ops.h... Applying patch drivers/crypto/cnxk/cn9k_cryptodev_ops.c with 4 rejects... Rejected hunk #1. Hunk #2 applied cleanly. Rejected hunk #3. Rejected hunk #4. Rejected hunk #5. Hunk #6 applied cleanly. Applied patch drivers/crypto/cnxk/cn9k_ipsec_la_ops.h cleanly. diff a/drivers/crypto/cnxk/cn9k_cryptodev_ops.c b/drivers/crypto/cnxk/cn9k_cryptodev_ops.c (rejected hunks) @@ -5,10 +5,13 @@ #include #include #include +#include #include #include "cn9k_cryptodev.h" #include "cn9k_cryptodev_ops.h" +#include "cn9k_ipsec.h" +#include "cn9k_ipsec_la_ops.h" #include "cnxk_ae.h" #include "cnxk_cryptodev.h" #include "cnxk_cryptodev_ops.h" @@ -80,7 +113,10 @@ cn9k_cpt_inst_prep(struct cnxk_cpt_qp *qp, struct rte_crypto_op *op, sym_op->session, cn9k_cryptodev_driver_id); ret = cn9k_cpt_sym_inst_fill(qp, op, sess, infl_req, inst); - } else { + inst->w7.u64 = sess->cpt_inst_w7; + } else if (op->sess_type == RTE_CRYPTO_OP_SECURITY_SESSION) + ret = cn9k_cpt_sec_inst_fill(op, infl_req, inst); + else { sess = cn9k_cpt_sym_temp_sess_create(qp, op); if (unlikely(sess == NULL)) { plt_dp_err("Could not create temp session"); @@ -94,8 +130,8 @@ cn9k_cpt_inst_prep(struct cnxk_cpt_qp *qp, struct rte_crypto_op *op, op->sym->session); rte_mempool_put(qp->sess_mp, op->sym->session); } + inst->w7.u64 = sess->cpt_inst_w7; } - inst->w7.u64 = sess->cpt_inst_w7; } else if (op->type == RTE_CRYPTO_OP_TYPE_ASYMMETRIC) { struct rte_crypto_asym_op *asym_op; struct cnxk_ae_sess *sess; @@ -348,6 +384,39 @@ cn9k_cpt_crypto_adapter_enqueue(uintptr_t tag_op, struct rte_crypto_op *op) return 1; } +static inline void +cn9k_cpt_sec_post_process(struct rte_crypto_op *cop, + struct cpt_inflight_req *infl_req) +{ + struct rte_crypto_sym_op *sym_op = cop->sym; + struct rte_mbuf *m = sym_op->m_src; + struct rte_ipv6_hdr *ip6; + struct rte_ipv4_hdr *ip; + uint16_t m_len = 0; + char *data; + + if (infl_req->op_flags & CPT_OP_FLAGS_IPSEC_DIR_INBOUND) { + data = rte_pktmbuf_mtod(m, char *); + + ip = (struct rte_ipv4_hdr *)(data + ROC_IE_ON_INB_RPTR_HDR); + + if (((ip->version_ihl & 0xf0) >> RTE_IPV4_IHL_MULTIPLIER) == + IPVERSION) { + m_len = rte_be_to_cpu_16(ip->total_length); + } else { + PLT_ASSERT(((ip->version_ihl & 0xf0) >> + RTE_IPV4_IHL_MULTIPLIER) == 6); + ip6 = (struct rte_ipv6_hdr *)ip; + m_len = rte_be_to_cpu_16(ip6->payload_len) + + sizeof(struct rte_ipv6_hdr); + } + + m->data_len = m_len; + m->pkt_len = m_len; + m->data_off += ROC_IE_ON_INB_RPTR_HDR; + } +} + static inline void cn9k_cpt_dequeue_post_process(struct cnxk_cpt_qp *qp, struct rte_crypto_op *cop, struct cpt_inflight_req *infl_req) Checking patch doc/guides/cryptodevs/cnxk.rst... Checking patch doc/guides/cryptodevs/features/cn9k.ini... Checking patch doc/guides/rel_notes/release_21_11.rst... error: while searching for: * Added AES-CBC SHA1-HMAC support in lookaside protocol (IPsec) for CN10K. * Added Transport mode support in lookaside protocol (IPsec) for CN10K. * Added UDP encapsulation support in lookaside protocol (IPsec) for CN10K. * **Added support for event crypto adapter on Marvell CN10K and CN9K.** error: patch failed: doc/guides/rel_notes/release_21_11.rst:67 Checking patch drivers/crypto/cnxk/cnxk_cryptodev.c... Applied patch doc/guides/cryptodevs/cnxk.rst cleanly. Applied patch doc/guides/cryptodevs/features/cn9k.ini cleanly. Applying patch doc/guides/rel_notes/release_21_11.rst with 1 reject... Rejected hunk #1. Applied patch drivers/crypto/cnxk/cnxk_cryptodev.c cleanly. diff a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst (rejected hunks) @@ -67,6 +67,7 @@ New Features * Added AES-CBC SHA1-HMAC support in lookaside protocol (IPsec) for CN10K. * Added Transport mode support in lookaside protocol (IPsec) for CN10K. * Added UDP encapsulation support in lookaside protocol (IPsec) for CN10K. + * Added support for lookaside protocol (IPsec) offload for CN9K. * **Added support for event crypto adapter on Marvell CN10K and CN9K.** https://lab.dpdk.org/results/dashboard/patchsets/18603/ UNH-IOL DPDK Community Lab