* [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 *)∩︀
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 *)∩︀
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).