automatic DPDK test reports
 help / color / mirror / Atom feed
* [dpdk-test-report] |WARNING| pw98443-98446 [PATCH] [4/4] net/iavf: add watchdog for VFLR
@ 2021-09-09 14:50 dpdklab
  0 siblings, 0 replies; only message in thread
From: dpdklab @ 2021-09-09 14:50 UTC (permalink / raw)
  To: test-report; +Cc: dpdk-test-reports

[-- Attachment #1: Type: text/plain, Size: 23498 bytes --]

Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/98443

_apply patch failure_

Submitter: Radu Nicolau <radu.nicolau@intel.com>
Date: Thursday, September 09 2021 14:24:28 
Applied on: CommitID:2508c18cff9ffb217ac40e44071dc2762d257f31
Apply patch set 98443-98446 failed:

Checking patch drivers/common/iavf/iavf_type.h...
Hunk #1 succeeded at 707 (offset -2 lines).
Hunk #2 succeeded at 739 (offset -2 lines).
Hunk #3 succeeded at 751 (offset -2 lines).
Hunk #4 succeeded at 795 (offset -2 lines).
Hunk #5 succeeded at 882 (offset -2 lines).
Hunk #6 succeeded at 1046 (offset -2 lines).
Checking patch drivers/common/iavf/virtchnl.h...
error: while searching for:
	VIRTCHNL_OP_DISABLE_CHANNELS = 31,
	VIRTCHNL_OP_ADD_CLOUD_FILTER = 32,
	VIRTCHNL_OP_DEL_CLOUD_FILTER = 33,
	/* opcodes 34, 35, 36, and 37 are reserved */
	VIRTCHNL_OP_DCF_CONFIG_BW = 37,
	VIRTCHNL_OP_DCF_VLAN_OFFLOAD = 38,
	VIRTCHNL_OP_DCF_CMD_DESC = 39,

error: patch failed: drivers/common/iavf/virtchnl.h:133
Hunk #3 succeeded at 221 (offset -8 lines).
Hunk #4 succeeded at 385 (offset -8 lines).
Hunk #5 succeeded at 2192 (offset -133 lines).
Checking patch drivers/common/iavf/virtchnl_inline_ipsec.h...
Applied patch drivers/common/iavf/iavf_type.h cleanly.
Applying patch drivers/common/iavf/virtchnl.h with 1 reject...
Hunk #1 applied cleanly.
Rejected hunk #2.
Hunk #3 applied cleanly.
Hunk #4 applied cleanly.
Hunk #5 applied cleanly.
Applied patch drivers/common/iavf/virtchnl_inline_ipsec.h cleanly.
diff a/drivers/common/iavf/virtchnl.h b/drivers/common/iavf/virtchnl.h	(rejected hunks)
@@ -133,7 +135,8 @@ enum virtchnl_ops {
 	VIRTCHNL_OP_DISABLE_CHANNELS = 31,
 	VIRTCHNL_OP_ADD_CLOUD_FILTER = 32,
 	VIRTCHNL_OP_DEL_CLOUD_FILTER = 33,
-	/* opcodes 34, 35, 36, and 37 are reserved */
+	VIRTCHNL_OP_INLINE_IPSEC_CRYPTO = 34,
+	/* opcodes 35 and 36 are reserved */
 	VIRTCHNL_OP_DCF_CONFIG_BW = 37,
 	VIRTCHNL_OP_DCF_VLAN_OFFLOAD = 38,
 	VIRTCHNL_OP_DCF_CMD_DESC = 39,
Checking patch drivers/net/iavf/iavf.h...
Hunk #1 succeeded at 144 (offset -45 lines).
Hunk #2 succeeded at 172 (offset -45 lines).
Hunk #3 succeeded at 191 (offset -49 lines).
Hunk #4 succeeded at 203 (offset -49 lines).
Hunk #5 succeeded at 229 (offset -49 lines).
Hunk #6 succeeded at 299 (offset -49 lines).
error: while searching for:
			uint16_t size);
void iavf_tm_conf_init(struct rte_eth_dev *dev);
void iavf_tm_conf_uninit(struct rte_eth_dev *dev);
extern const struct rte_tm_ops iavf_tm_ops;
#endif /* _IAVF_ETHDEV_H_ */

error: patch failed: drivers/net/iavf/iavf.h:399
Checking patch drivers/net/iavf/iavf_ethdev.c...
Hunk #3 succeeded at 895 (offset -32 lines).
Hunk #4 succeeded at 907 (offset -32 lines).
Hunk #5 succeeded at 952 (offset -32 lines).
Hunk #6 succeeded at 1725 (offset -30 lines).
Hunk #7 succeeded at 1734 (offset -30 lines).
Hunk #8 succeeded at 2314 (offset -44 lines).
Checking patch drivers/net/iavf/iavf_generic_flow.c...
Hunk #1 succeeded at 920 (offset -789 lines).
Hunk #2 succeeded at 1232 (offset -789 lines).
Checking patch drivers/net/iavf/iavf_generic_flow.h...
Hunk #1 succeeded at 347 (offset -102 lines).
Hunk #2 succeeded at 361 (offset -102 lines).
Checking patch drivers/net/iavf/iavf_ipsec_crypto.c...
.git/rebase-apply/patch:2182: new blank line at EOF.
+
Checking patch drivers/net/iavf/iavf_ipsec_crypto.h...
Checking patch drivers/net/iavf/iavf_ipsec_crypto_capabilities.h...
Checking patch drivers/net/iavf/iavf_rxtx.c...
Hunk #4 succeeded at 460 (offset -8 lines).
Hunk #5 succeeded at 534 (offset -8 lines).
Hunk #6 succeeded at 724 (offset -8 lines).
Hunk #7 succeeded at 769 (offset -9 lines).
Hunk #8 succeeded at 795 (offset -9 lines).
Hunk #9 succeeded at 1073 (offset -25 lines).
Hunk #10 succeeded at 1283 (offset -25 lines).
Hunk #11 succeeded at 1481 (offset -25 lines).
Hunk #12 succeeded at 1628 (offset -25 lines).
Hunk #13 succeeded at 1869 (offset -25 lines).
Hunk #14 succeeded at 2043 (offset -25 lines).
Hunk #15 succeeded at 2142 (offset -25 lines).
Hunk #16 succeeded at 2158 (offset -25 lines).
Hunk #17 succeeded at 2167 (offset -25 lines).
error: while searching for:
			}
		}

		/* Descriptor based VLAN insertion */
		if (ol_flags & PKT_TX_VLAN_PKT &&
		    txq->vlan_flag & IAVF_TX_FLAGS_VLAN_TAG_LOC_L2TAG1) {
			td_cmd |= IAVF_TX_DESC_CMD_IL2TAG1;
			td_tag = tx_pkt->vlan_tci;
		}

		/* According to datasheet, the bit2 is reserved and must be
		 * set to 1.
		 */
		td_cmd |= 0x04;

		/* Enable checksum offloading */
		if (ol_flags & IAVF_TX_CKSUM_OFFLOAD_MASK)
			iavf_txd_enable_checksum(ol_flags, &td_cmd,
						&td_offset, tx_offload);

		if (nb_ctx) {
			/* Setup TX context descriptor if required */
			uint64_t cd_type_cmd_tso_mss =
				IAVF_TX_DESC_DTYPE_CONTEXT;
			volatile struct iavf_tx_context_desc *ctx_txd =
				(volatile struct iavf_tx_context_desc *)
							&txr[tx_id];

			/* clear QW0 or the previous writeback value
			 * may impact next write
			 */
			*(volatile uint64_t *)ctx_txd = 0;

			txn = &sw_ring[txe->next_id];
			RTE_MBUF_PREFETCH_TO_FREE(txn->mbuf);
			if (txe->mbuf) {
				rte_pktmbuf_free_seg(txe->mbuf);
				txe->mbuf = NULL;
			}

			/* TSO enabled */
			if (ol_flags & PKT_TX_TCP_SEG)
				cd_type_cmd_tso_mss |=
					iavf_set_tso_ctx(tx_pkt, tx_offload);

			if (ol_flags & PKT_TX_VLAN_PKT &&
			   txq->vlan_flag & IAVF_TX_FLAGS_VLAN_TAG_LOC_L2TAG2) {
				cd_type_cmd_tso_mss |= IAVF_TX_CTX_DESC_IL2TAG2
					<< IAVF_TXD_CTX_QW1_CMD_SHIFT;
				cd_l2tag2 = tx_pkt->vlan_tci;
			}

			ctx_txd->type_cmd_tso_mss =
				rte_cpu_to_le_64(cd_type_cmd_tso_mss);
			ctx_txd->l2tag2 = rte_cpu_to_le_16(cd_l2tag2);

			IAVF_DUMP_TX_DESC(txq, &txr[tx_id], tx_id);
			txe->last_id = tx_last;
			tx_id = txe->next_id;
			txe = txn;
		}

		m_seg = tx_pkt;
		do {
			txd = &txr[tx_id];
			txn = &sw_ring[txe->next_id];

			if (txe->mbuf)
				rte_pktmbuf_free_seg(txe->mbuf);
			txe->mbuf = m_seg;

			/* Setup TX Descriptor */
			slen = m_seg->data_len;
			buf_dma_addr = rte_mbuf_data_iova(m_seg);
			txd->buffer_addr = rte_cpu_to_le_64(buf_dma_addr);
			txd->cmd_type_offset_bsz = iavf_build_ctob(td_cmd,
								  td_offset,
								  slen,
								  td_tag);

			IAVF_DUMP_TX_DESC(txq, txd, tx_id);
			txe->last_id = tx_last;
			tx_id = txe->next_id;
			txe = txn;
			m_seg = m_seg->next;
		} while (m_seg);

		/* The last packet data descriptor needs End Of Packet (EOP) */
		td_cmd |= IAVF_TX_DESC_CMD_EOP;
		txq->nb_used = (uint16_t)(txq->nb_used + nb_used);
		txq->nb_free = (uint16_t)(txq->nb_free - nb_used);

		if (txq->nb_used >= txq->rs_thresh) {
			PMD_TX_LOG(DEBUG, "Setting RS bit on TXD id="
				   "%4u (port=%d queue=%d)",
				   tx_last, txq->port_id, txq->queue_id);

			td_cmd |= IAVF_TX_DESC_CMD_RS;

			/* Update txq RS bit counters */
			txq->nb_used = 0;
		}

		txd->cmd_type_offset_bsz |=
			rte_cpu_to_le_64(((uint64_t)td_cmd) <<
					 IAVF_TXD_QW1_CMD_SHIFT);
		IAVF_DUMP_TX_DESC(txq, txd, tx_id);
	}

end_of_tx:
	rte_wmb();

	PMD_TX_LOG(DEBUG, "port_id=%u queue_id=%u tx_tail=%u nb_tx=%u",
		   txq->port_id, txq->queue_id, tx_id, nb_tx);

	IAVF_PCI_REG_WC_WRITE_RELAXED(txq->qtx_tail, tx_id);
	txq->tx_tail = tx_id;

	return nb_tx;
}

/* Check if the packet with vlan user priority is transmitted in the

error: patch failed: drivers/net/iavf/iavf_rxtx.c:2249
Hunk #19 succeeded at 3144 (offset -50 lines).
Checking patch drivers/net/iavf/iavf_rxtx.h...
error: while searching for:
	uint8_t tc;
};

/* Offload features */
union iavf_tx_offload {
	uint64_t data;

error: patch failed: drivers/net/iavf/iavf_rxtx.h:255
Hunk #8 succeeded at 298 (offset -47 lines).
Hunk #9 succeeded at 328 (offset -47 lines).
Hunk #10 succeeded at 465 (offset -47 lines).
Hunk #11 succeeded at 518 (offset -47 lines).
Hunk #12 succeeded at 546 (offset -47 lines).
Hunk #13 succeeded at 562 (offset -47 lines).
Hunk #14 succeeded at 685 (offset -47 lines).
Hunk #15 succeeded at 698 (offset -47 lines).
Hunk #16 succeeded at 810 (offset -47 lines).
Hunk #17 succeeded at 1050 (offset -47 lines).
Checking patch drivers/net/iavf/iavf_rxtx_vec_sse.c...
Checking patch drivers/net/iavf/iavf_vchnl.c...
error: while searching for:
		VIRTCHNL_VF_OFFLOAD_CRC |
		VIRTCHNL_VF_OFFLOAD_VLAN_V2 |
		VIRTCHNL_VF_LARGE_NUM_QPAIRS |
		VIRTCHNL_VF_OFFLOAD_QOS;

	args.in_args = (uint8_t *)&caps;
	args.in_args_size = sizeof(caps);

	err = iavf_execute_vf_cmd(adapter, &args);

	if (err) {
		PMD_DRV_LOG(ERR,

error: patch failed: drivers/net/iavf/iavf_vchnl.c:468
Hunk #10 succeeded at 548 (offset -2 lines).
Hunk #11 succeeded at 592 (offset -2 lines).
Hunk #12 succeeded at 632 (offset -2 lines).
Hunk #13 succeeded at 675 (offset -2 lines).
Hunk #14 succeeded at 696 (offset -2 lines).
Hunk #15 succeeded at 727 (offset -2 lines).
Hunk #16 succeeded at 755 (offset -2 lines).
Hunk #17 succeeded at 788 (offset -2 lines).
Hunk #18 succeeded at 830 (offset -2 lines).
Hunk #19 succeeded at 874 (offset -2 lines).
Hunk #20 succeeded at 920 (offset -2 lines).
Hunk #21 succeeded at 952 (offset -2 lines).
Hunk #22 succeeded at 984 (offset -2 lines).
Hunk #23 succeeded at 1076 (offset -2 lines).
Hunk #24 succeeded at 1117 (offset -2 lines).
Hunk #25 succeeded at 1158 (offset -2 lines).
Hunk #26 succeeded at 1220 (offset -2 lines).
Hunk #27 succeeded at 1247 (offset -2 lines).
Hunk #28 succeeded at 1282 (offset -2 lines).
Hunk #29 succeeded at 1322 (offset -2 lines).
Hunk #30 succeeded at 1349 (offset -2 lines).
Hunk #31 succeeded at 1376 (offset -2 lines).
Hunk #32 succeeded at 1436 (offset -2 lines).
Hunk #33 succeeded at 1483 (offset -2 lines).
Hunk #34 succeeded at 1524 (offset -2 lines).
Hunk #35 succeeded at 1547 (offset -2 lines).
Hunk #36 succeeded at 1573 (offset -2 lines).
error: while searching for:
	args.in_args_size = 0;
	args.out_buffer = vf->aq_resp;
	args.out_size = IAVF_AQ_BUF_SZ;
	err = iavf_execute_vf_cmd(adapter, &args);

	if (err) {
		PMD_DRV_LOG(ERR,

error: patch failed: drivers/net/iavf/iavf_vchnl.c:1564
error: while searching for:
	args.out_buffer = vf->aq_resp;
	args.out_size = IAVF_AQ_BUF_SZ;

	err = iavf_execute_vf_cmd(adapter, &args);
	if (err)
		PMD_DRV_LOG(ERR, "Failed to execute command of"
			    " VIRTCHNL_OP_CONFIG_TC_MAP");

error: patch failed: drivers/net/iavf/iavf_vchnl.c:1597
Hunk #39 succeeded at 1624 (offset -55 lines).
Hunk #40 succeeded at 1669 (offset -55 lines).
Hunk #41 succeeded at 1705 (offset -55 lines).
.git/rebase-apply/patch:4916: new blank line at EOF.
+
Hunk #42 succeeded at 1718 (offset -55 lines).
Checking patch drivers/net/iavf/meson.build...
error: while searching for:
        'iavf_fdir.c',
        'iavf_hash.c',
        'iavf_tm.c',
)

if arch_subdir == 'x86'

error: patch failed: drivers/net/iavf/meson.build:20
Checking patch drivers/net/iavf/rte_pmd_iavf.h...
Applying patch drivers/net/iavf/iavf.h with 1 reject...
Hunk #1 applied cleanly.
Hunk #2 applied cleanly.
Hunk #3 applied cleanly.
Hunk #4 applied cleanly.
Hunk #5 applied cleanly.
Hunk #6 applied cleanly.
Rejected hunk #7.
Applied patch drivers/net/iavf/iavf_ethdev.c cleanly.
Applied patch drivers/net/iavf/iavf_generic_flow.c cleanly.
Applied patch drivers/net/iavf/iavf_generic_flow.h cleanly.
Applied patch drivers/net/iavf/iavf_ipsec_crypto.c cleanly.
Applied patch drivers/net/iavf/iavf_ipsec_crypto.h cleanly.
Applied patch drivers/net/iavf/iavf_ipsec_crypto_capabilities.h cleanly.
Applying patch drivers/net/iavf/iavf_rxtx.c with 1 reject...
Hunk #1 applied cleanly.
Hunk #2 applied cleanly.
Hunk #3 applied cleanly.
Hunk #4 applied cleanly.
Hunk #5 applied cleanly.
Hunk #6 applied cleanly.
Hunk #7 applied cleanly.
Hunk #8 applied cleanly.
Hunk #9 applied cleanly.
Hunk #10 applied cleanly.
Hunk #11 applied cleanly.
Hunk #12 applied cleanly.
Hunk #13 applied cleanly.
Hunk #14 applied cleanly.
Hunk #15 applied cleanly.
Hunk #16 applied cleanly.
Hunk #17 applied cleanly.
Rejected hunk #18.
Hunk #19 applied cleanly.
Applying patch drivers/net/iavf/iavf_rxtx.h with 1 reject...
Hunk #1 applied cleanly.
Hunk #2 applied cleanly.
Hunk #3 applied cleanly.
Hunk #4 applied cleanly.
Hunk #5 applied cleanly.
Hunk #6 applied cleanly.
Rejected hunk #7.
Hunk #8 applied cleanly.
Hunk #9 applied cleanly.
Hunk #10 applied cleanly.
Hunk #11 applied cleanly.
Hunk #12 applied cleanly.
Hunk #13 applied cleanly.
Hunk #14 applied cleanly.
Hunk #15 applied cleanly.
Hunk #16 applied cleanly.
Hunk #17 applied cleanly.
Applied patch drivers/net/iavf/iavf_rxtx_vec_sse.c cleanly.
Applying patch drivers/net/iavf/iavf_vchnl.c with 3 rejects...
Hunk #1 applied cleanly.
Hunk #2 applied cleanly.
Hunk #3 applied cleanly.
Hunk #4 applied cleanly.
Hunk #5 applied cleanly.
Hunk #6 applied cleanly.
Hunk #7 applied cleanly.
Hunk #8 applied cleanly.
Rejected hunk #9.
Hunk #10 applied cleanly.
Hunk #11 applied cleanly.
Hunk #12 applied cleanly.
Hunk #13 applied cleanly.
Hunk #14 applied cleanly.
Hunk #15 applied cleanly.
Hunk #16 applied cleanly.
Hunk #17 applied cleanly.
Hunk #18 applied cleanly.
Hunk #19 applied cleanly.
Hunk #20 applied cleanly.
Hunk #21 applied cleanly.
Hunk #22 applied cleanly.
Hunk #23 applied cleanly.
Hunk #24 applied cleanly.
Hunk #25 applied cleanly.
Hunk #26 applied cleanly.
Hunk #27 applied cleanly.
Hunk #28 applied cleanly.
Hunk #29 applied cleanly.
Hunk #30 applied cleanly.
Hunk #31 applied cleanly.
Hunk #32 applied cleanly.
Hunk #33 applied cleanly.
Hunk #34 applied cleanly.
Hunk #35 applied cleanly.
Hunk #36 applied cleanly.
Rejected hunk #37.
Rejected hunk #38.
Hunk #39 applied cleanly.
Hunk #40 applied cleanly.
Hunk #41 applied cleanly.
Hunk #42 applied cleanly.
Applying patch drivers/net/iavf/meson.build with 1 reject...
Hunk #1 applied cleanly.
Rejected hunk #2.
Applied patch drivers/net/iavf/rte_pmd_iavf.h cleanly.
diff a/drivers/net/iavf/iavf.h b/drivers/net/iavf/iavf.h	(rejected hunks)
@@ -399,5 +422,8 @@ int iavf_set_q_tc_map(struct rte_eth_dev *dev,
 			uint16_t size);
 void iavf_tm_conf_init(struct rte_eth_dev *dev);
 void iavf_tm_conf_uninit(struct rte_eth_dev *dev);
+int iavf_ipsec_crypto_request(struct iavf_adapter *adapter,
+		uint8_t *msg, size_t msg_len,
+		uint8_t *resp_msg, size_t resp_msg_len);
 extern const struct rte_tm_ops iavf_tm_ops;
 #endif /* _IAVF_ETHDEV_H_ */
diff a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c	(rejected hunks)
@@ -2249,122 +2586,114 @@ iavf_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 			}
 		}
 
-		/* Descriptor based VLAN insertion */
-		if (ol_flags & PKT_TX_VLAN_PKT &&
-		    txq->vlan_flag & IAVF_TX_FLAGS_VLAN_TAG_LOC_L2TAG1) {
-			td_cmd |= IAVF_TX_DESC_CMD_IL2TAG1;
-			td_tag = tx_pkt->vlan_tci;
-		}
-
-		/* According to datasheet, the bit2 is reserved and must be
-		 * set to 1.
-		 */
-		td_cmd |= 0x04;
+		iavf_build_data_desc_cmd_offset_fields(&ddesc_template, mb);
 
-		/* Enable checksum offloading */
-		if (ol_flags & IAVF_TX_CKSUM_OFFLOAD_MASK)
-			iavf_txd_enable_checksum(ol_flags, &td_cmd,
-						&td_offset, tx_offload);
-
-		if (nb_ctx) {
 			/* Setup TX context descriptor if required */
-			uint64_t cd_type_cmd_tso_mss =
-				IAVF_TX_DESC_DTYPE_CONTEXT;
-			volatile struct iavf_tx_context_desc *ctx_txd =
+		if (nb_desc_ctx) {
+			volatile struct iavf_tx_context_desc *ctx_desc =
 				(volatile struct iavf_tx_context_desc *)
-							&txr[tx_id];
+					&desc_ring[desc_idx];
 
 			/* clear QW0 or the previous writeback value
 			 * may impact next write
 			 */
-			*(volatile uint64_t *)ctx_txd = 0;
+			*(volatile uint64_t *)ctx_desc = 0;
+
+			txe_next = &txe_ring[txe_current->next_id];
+			RTE_MBUF_PREFETCH_TO_FREE(txe_next->mbuf);
 
-			txn = &sw_ring[txe->next_id];
-			RTE_MBUF_PREFETCH_TO_FREE(txn->mbuf);
-			if (txe->mbuf) {
-				rte_pktmbuf_free_seg(txe->mbuf);
-				txe->mbuf = NULL;
+			if (txe_current->mbuf) {
+				rte_pktmbuf_free_seg(txe_current->mbuf);
+				txe_current->mbuf = NULL;
 			}
 
-			/* TSO enabled */
-			if (ol_flags & PKT_TX_TCP_SEG)
-				cd_type_cmd_tso_mss |=
-					iavf_set_tso_ctx(tx_pkt, tx_offload);
+			iavf_fill_context_desc(ctx_desc, mb, ipsec_md, &tlen);
+			IAVF_DUMP_TX_DESC(txq, ctx_desc, desc_idx);
 
-			if (ol_flags & PKT_TX_VLAN_PKT &&
-			   txq->vlan_flag & IAVF_TX_FLAGS_VLAN_TAG_LOC_L2TAG2) {
-				cd_type_cmd_tso_mss |= IAVF_TX_CTX_DESC_IL2TAG2
-					<< IAVF_TXD_CTX_QW1_CMD_SHIFT;
-				cd_l2tag2 = tx_pkt->vlan_tci;
+			txe_current->last_id = desc_idx_last;
+			desc_idx = txe_current->next_id;
+			txe_current = txe_next;
 			}
 
-			ctx_txd->type_cmd_tso_mss =
-				rte_cpu_to_le_64(cd_type_cmd_tso_mss);
-			ctx_txd->l2tag2 = rte_cpu_to_le_16(cd_l2tag2);
+		if (nb_desc_ipsec) {
+			volatile struct iavf_tx_ipsec_desc *ipsec_desc =
+				(volatile struct iavf_tx_ipsec_desc *)
+					&desc_ring[desc_idx];
+
+			txe_next = &txe_ring[txe_current->next_id];
+			RTE_MBUF_PREFETCH_TO_FREE(txe_next->mbuf);
 
-			IAVF_DUMP_TX_DESC(txq, &txr[tx_id], tx_id);
-			txe->last_id = tx_last;
-			tx_id = txe->next_id;
-			txe = txn;
+			if (txe_current->mbuf) {
+				rte_pktmbuf_free_seg(txe_current->mbuf);
+				txe_current->mbuf = NULL;
 		}
 
-		m_seg = tx_pkt;
+			iavf_fill_ipsec_desc(ipsec_desc, ipsec_md, &ipseclen);
+
+			IAVF_DUMP_TX_DESC(txq, ipsec_desc, desc_idx);
+
+			txe_current->last_id = desc_idx_last;
+			desc_idx = txe_current->next_id;
+			txe_current = txe_next;
+		}
+
+		mb_seg = mb;
+
 		do {
-			txd = &txr[tx_id];
-			txn = &sw_ring[txe->next_id];
-
-			if (txe->mbuf)
-				rte_pktmbuf_free_seg(txe->mbuf);
-			txe->mbuf = m_seg;
-
-			/* Setup TX Descriptor */
-			slen = m_seg->data_len;
-			buf_dma_addr = rte_mbuf_data_iova(m_seg);
-			txd->buffer_addr = rte_cpu_to_le_64(buf_dma_addr);
-			txd->cmd_type_offset_bsz = iavf_build_ctob(td_cmd,
-								  td_offset,
-								  slen,
-								  td_tag);
-
-			IAVF_DUMP_TX_DESC(txq, txd, tx_id);
-			txe->last_id = tx_last;
-			tx_id = txe->next_id;
-			txe = txn;
-			m_seg = m_seg->next;
-		} while (m_seg);
+			ddesc = (volatile struct iavf_tx_desc *)
+					&desc_ring[desc_idx];
+
+			txe_next = &txe_ring[txe_current->next_id];
+			RTE_MBUF_PREFETCH_TO_FREE(txe_next->mbuf);
+
+			if (txe_current->mbuf)
+				rte_pktmbuf_free_seg(txe_current->mbuf);
+
+			txe_current->mbuf = mb_seg;
+			iavf_fill_data_desc(ddesc, mb_seg,
+					ddesc_template, tlen, ipseclen);
+
+			IAVF_DUMP_TX_DESC(txq, ddesc, desc_idx);
+
+			txe_current->last_id = desc_idx_last;
+			desc_idx = txe_current->next_id;
+			txe_current = txe_next;
+			mb_seg = mb_seg->next;
+		} while (mb_seg);
 
 		/* The last packet data descriptor needs End Of Packet (EOP) */
-		td_cmd |= IAVF_TX_DESC_CMD_EOP;
-		txq->nb_used = (uint16_t)(txq->nb_used + nb_used);
-		txq->nb_free = (uint16_t)(txq->nb_free - nb_used);
+		ddesc_cmd = IAVF_TX_DESC_CMD_EOP;
+
+		txq->nb_used = (uint16_t)(txq->nb_used + nb_desc_required);
+		txq->nb_free = (uint16_t)(txq->nb_free - nb_desc_required);
 
 		if (txq->nb_used >= txq->rs_thresh) {
 			PMD_TX_LOG(DEBUG, "Setting RS bit on TXD id="
 				   "%4u (port=%d queue=%d)",
-				   tx_last, txq->port_id, txq->queue_id);
+				   desc_idx_last, txq->port_id, txq->queue_id);
 
-			td_cmd |= IAVF_TX_DESC_CMD_RS;
+			ddesc_cmd |= IAVF_TX_DESC_CMD_RS;
 
 			/* Update txq RS bit counters */
 			txq->nb_used = 0;
 		}
 
-		txd->cmd_type_offset_bsz |=
-			rte_cpu_to_le_64(((uint64_t)td_cmd) <<
-					 IAVF_TXD_QW1_CMD_SHIFT);
-		IAVF_DUMP_TX_DESC(txq, txd, tx_id);
+		ddesc->qw1 |= rte_cpu_to_le_64(ddesc_cmd <<
+				IAVF_TXD_DATA_QW1_CMD_SHIFT);
+
+		IAVF_DUMP_TX_DESC(txq, ddesc, desc_idx - 1);
 	}
 
 end_of_tx:
 	rte_wmb();
 
 	PMD_TX_LOG(DEBUG, "port_id=%u queue_id=%u tx_tail=%u nb_tx=%u",
-		   txq->port_id, txq->queue_id, tx_id, nb_tx);
+		   txq->port_id, txq->queue_id, desc_idx, idx);
 
-	IAVF_PCI_REG_WC_WRITE_RELAXED(txq->qtx_tail, tx_id);
-	txq->tx_tail = tx_id;
+	IAVF_PCI_REG_WRITE_RELAXED(txq->qtx_tail, desc_idx);
+	txq->tx_tail = desc_idx;
 
-	return nb_tx;
+	return idx;
 }
 
 /* Check if the packet with vlan user priority is transmitted in the
diff a/drivers/net/iavf/iavf_rxtx.h b/drivers/net/iavf/iavf_rxtx.h	(rejected hunks)
@@ -255,6 +277,52 @@ struct iavf_tx_queue {
 	uint8_t tc;
 };
 
+#ifdef RTE_LIBRTE_IAVF_DEBUG_TX_DESC_RING
+
+static void iavf_dump_tx_entry(uint16_t txe_id, const struct iavf_tx_entry *txe)
+{
+	printf("txe %3d : next %3d, last %3d, mbuf 0x%p\n",
+		txe_id, txe->next_id, txe->last_id, txe->mbuf);
+}
+
+static void iavf_dump_tx_entry_ring(const struct iavf_tx_queue *txq)
+{
+	uint16_t i;
+
+	printf("port %d, queue %d :\n\n", txq->port_id, txq->queue_id);
+
+	printf("nb descriptors %d\n", txq->nb_tx_desc);
+	printf("tail %d\n", txq->tx_tail);
+	printf("nb used %d, nb free %d\n", txq->nb_used, txq->nb_free);
+	printf("last cleaned %d\n", txq->last_desc_cleaned);
+	printf("free threshold %d\n", txq->free_thresh);
+	printf("rs threshold %d\n\n", txq->rs_thresh);
+
+
+	for (i = 0; i < txq->nb_tx_desc; i++)
+		iavf_dump_tx_entry(i, &txq->sw_ring[i]);
+}
+
+static void iavf_dump_tx_desc_ring(const struct iavf_tx_queue *txq)
+{
+	uint16_t i;
+
+	printf("port %3d, queue %d :\n\n", txq->port_id, txq->queue_id);
+	printf("nb descriptors %d\n", txq->nb_tx_desc);
+
+	for (i = 0; i < txq->nb_tx_desc; i++) {
+		volatile struct iavf_tx_data_desc *txd = &txq->tx_ring[i];
+
+		printf("txid %3d - "
+		"QW0: 0x%04"PRIx16" %04"PRIx16" %04"PRIx16" %04"PRIx16", "
+		"QW1: 0x%04"PRIx16" %04"PRIx16" %04"PRIx16" %04"PRIx16"\n",
+	       i, 0, 0, 0, 0, 0, 0, 0,
+	       (const volatile uint16_t)(txd->qw1 & 0xF));
+	}
+}
+
+#endif
+
 /* Offload features */
 union iavf_tx_offload {
 	uint64_t data;
diff a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.c	(rejected hunks)
@@ -468,12 +499,13 @@ iavf_get_vf_resource(struct iavf_adapter *adapter)
 		VIRTCHNL_VF_OFFLOAD_CRC |
 		VIRTCHNL_VF_OFFLOAD_VLAN_V2 |
 		VIRTCHNL_VF_LARGE_NUM_QPAIRS |
-		VIRTCHNL_VF_OFFLOAD_QOS;
+		VIRTCHNL_VF_OFFLOAD_QOS |
++		VIRTCHNL_VF_OFFLOAD_INLINE_IPSEC_CRYPTO;
 
 	args.in_args = (uint8_t *)&caps;
 	args.in_args_size = sizeof(caps);
 
-	err = iavf_execute_vf_cmd(adapter, &args);
+	err = iavf_execute_vf_cmd(adapter, &args, 0);
 
 	if (err) {
 		PMD_DRV_LOG(ERR,
@@ -1564,7 +1596,7 @@ iavf_get_qos_cap(struct iavf_adapter *adapter)
 	args.in_args_size = 0;
 	args.out_buffer = vf->aq_resp;
 	args.out_size = IAVF_AQ_BUF_SZ;
-	err = iavf_execute_vf_cmd(adapter, &args);
+	err = iavf_execute_vf_cmd(adapter, &args, 0);
 
 	if (err) {
 		PMD_DRV_LOG(ERR,
@@ -1597,7 +1629,7 @@ int iavf_set_q_tc_map(struct rte_eth_dev *dev,
 	args.out_buffer = vf->aq_resp;
 	args.out_size = IAVF_AQ_BUF_SZ;
 
-	err = iavf_execute_vf_cmd(adapter, &args);
+	err = iavf_execute_vf_cmd(adapter, &args, 0);
 	if (err)
 		PMD_DRV_LOG(ERR, "Failed to execute command of"
 			    " VIRTCHNL_OP_CONFIG_TC_MAP");
diff a/drivers/net/iavf/meson.build b/drivers/net/iavf/meson.build	(rejected hunks)
@@ -20,6 +20,7 @@ sources = files(
         'iavf_fdir.c',
         'iavf_hash.c',
         'iavf_tm.c',
+        'iavf_ipsec_crypto.c',
 )
 
 if arch_subdir == 'x86'
Checking patch drivers/net/iavf/iavf.h...
error: drivers/net/iavf/iavf.h: does not match index
Checking patch drivers/net/iavf/iavf_ethdev.c...
error: drivers/net/iavf/iavf_ethdev.c: does not match index
Checking patch drivers/net/iavf/iavf_rxtx.h...
error: drivers/net/iavf/iavf_rxtx.h: does not match index
Checking patch drivers/net/iavf/iavf.h...
error: drivers/net/iavf/iavf.h: does not match index
Checking patch drivers/net/iavf/iavf_ethdev.c...
error: drivers/net/iavf/iavf_ethdev.c: does not match index

https://lab.dpdk.org/results/dashboard/patchsets/18648/

UNH-IOL DPDK Community Lab

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-09-09 14:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-09 14:50 [dpdk-test-report] |WARNING| pw98443-98446 [PATCH] [4/4] net/iavf: add watchdog for VFLR dpdklab

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).