[PATCH v2 1/2] net/iavf: remove Tx LLDP dynfield method
Ciara Loftus <[email protected]>
| Newsgroups | org.dpdk.dev |
|---|---|
| Message-ID | <[email protected]> |
Prior to this commit two methods existed for triggering LLDP packet transmission in the driver: the dynamic mbuf field method and the mbuf packet-type method. This commit removes the dynamic mbuf field method. The dynfield method required applications to tag every LLDP packet manually, whereas the packet-type method gives the driver the opportunity to tag LLDP packets automatically on the Rx path, leaving no work to be done by the application to explicitly flag a packet as LLDP before transmission. The per-queue LLDP state is reduced from the tri-state 'lldp_mode' to a single 'lldp_enabled' boolean. The testpmd command 'set tx lldp on' whose purpose was to enable the dynfield lldp method is removed. The ptype lldp method is enabled via the enable_ptype_lldp devarg (as has always been the case since support was introduced): -a 0000:xx:xx.x,enable_ptype_lldp=1 The deprecation notice for the dynfield is removed and the driver documentation is updated. Signed-off-by: Ciara Loftus <[email protected]> Acked-by: Bruce Richardson <[email protected]> --- * Added warning if dynfield is registered --- doc/guides/nics/intel_vf.rst | 29 +-------- doc/guides/rel_notes/deprecation.rst | 4 -- doc/guides/rel_notes/release_26_11.rst | 5 ++ drivers/net/intel/common/tx.h | 2 +- drivers/net/intel/iavf/iavf_ethdev.c | 30 ++------- drivers/net/intel/iavf/iavf_rxtx.c | 15 ++--- drivers/net/intel/iavf/iavf_rxtx.h | 17 +----- drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c | 22 +++---- drivers/net/intel/iavf/iavf_rxtx_vec_avx512.c | 22 +++---- drivers/net/intel/iavf/iavf_testpmd.c | 61 ------------------- 10 files changed, 47 insertions(+), 160 deletions(-) diff --git a/doc/guides/nics/intel_vf.rst b/doc/guides/nics/intel_vf.rst index 8f8ce32cac..e635c1fac2 100644 --- a/doc/guides/nics/intel_vf.rst +++ b/doc/guides/nics/intel_vf.rst @@ -682,38 +682,13 @@ Diagnostic Utilities Tx LLDP Testing ~~~~~~~~~~~~~~~ -There are two methods to trigger LLDP packet transmission from the VF. - -The first (and recommended) method is to set the ``packet_type`` of the mbuf -to ``RTE_PTYPE_L2_ETHER_LLDP``. +To trigger LLDP packet transmission from the VF, set the ``packet_type`` +of the mbuf to ``RTE_PTYPE_L2_ETHER_LLDP``. This, in conjunction with enabling the ``enable_ptype_lldp`` devarg will cause such packets to be transmitted:: -a 0000:xx:xx.x,enable_ptype_lldp=1 -An alternative method is to register an mbuf dynfield ``IAVF_TX_LLDP_DYNFIELD`` -before ``dev_start``. -This dynfield needs to be set to 1 when preparing an LLDP packet intended for transmission. - -.. note:: - - The dynamic mbuf field method is deprecated and will be removed in a future release. - Users should migrate to the ``enable_ptype_lldp`` devarg and mbuf LLDP ptype method - described above. - -For ``dpdk-testpmd`` application, the dynamic mbuf field is registered -when the following command is issued: - -Usage:: - - testpmd> set tx lldp on - -One must then stop and restart the port for it to take effect. -These requirements only apply for the dynamic mbuf field method; -no special steps are needed for the ``enable_ptype_lldp`` devarg method. -If both methods are enabled, the ptype based method will take precedence -over the dynamic mbuf field method. - Limitations or Knowing issues ----------------------------- diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 6ad7698c6b..a3cf544982 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -167,10 +167,6 @@ Deprecation Notices ``drivers/bus/vmbus/rte_bus_vmbus.h`` will become internal to DPDK. Those API functions are used internally by DPDK core and netvsc PMD. -* net/iavf: The dynamic mbuf field used to detect LLDP packets on the - transmit path in the iavf PMD will be removed in a future release. - After removal, only packet type-based detection will be supported. - * net/iavf: The ``auto_reconfig`` devarg is deprecated and will be removed in a future release. It allows disabling the automatic restoration of device settings diff --git a/doc/guides/rel_notes/release_26_11.rst b/doc/guides/rel_notes/release_26_11.rst index c8cc86295d..8dc82c016d 100644 --- a/doc/guides/rel_notes/release_26_11.rst +++ b/doc/guides/rel_notes/release_26_11.rst @@ -77,6 +77,11 @@ Removed Items ``rte_rib6_is_equal`` * table: ``RTE_LPM_IPV6_ADDR_SIZE`` +* net/iavf: Removed the dynamic mbuf field method for detecting LLDP packets + on the transmit path, along with the ``set tx lldp on`` testpmd command. + The only remaining method for detecting LLDP packets is by using the mbuf + packet type in conjunction with the ``enable_ptype_lldp`` devarg. + API Changes ----------- diff --git a/drivers/net/intel/common/tx.h b/drivers/net/intel/common/tx.h index 5fe71aed12..55757d34d7 100644 --- a/drivers/net/intel/common/tx.h +++ b/drivers/net/intel/common/tx.h @@ -197,7 +197,7 @@ struct ci_tx_queue { uint8_t vlan_flag; uint8_t tc; bool use_ctx; /* with ctx info, each pkt needs two descriptors */ - uint8_t lldp_mode; /* ptype or dynfield */ + bool lldp_enabled; }; struct { /* ixgbe specific values */ const struct ixgbe_txq_ops *ops; diff --git a/drivers/net/intel/iavf/iavf_ethdev.c b/drivers/net/intel/iavf/iavf_ethdev.c index d601ec3b6a..5d9d889a08 100644 --- a/drivers/net/intel/iavf/iavf_ethdev.c +++ b/drivers/net/intel/iavf/iavf_ethdev.c @@ -48,7 +48,6 @@ #define IAVF_ENABLE_PTYPE_LLDP_ARG "enable_ptype_lldp" uint64_t iavf_timestamp_dynflag; int iavf_timestamp_dynfield_offset = -1; -int rte_pmd_iavf_tx_lldp_dynfield_offset = -1; static const char * const iavf_valid_args[] = { IAVF_PROTO_XTR_ARG, @@ -1026,28 +1025,16 @@ iavf_dev_start(struct rte_eth_dev *dev) } } - /* Check Tx LLDP dynfield */ - rte_pmd_iavf_tx_lldp_dynfield_offset = - rte_mbuf_dynfield_lookup(IAVF_TX_LLDP_DYNFIELD, NULL); - if (rte_pmd_iavf_tx_lldp_dynfield_offset > 0) { + /* Warn if an application still registers the removed LLDP Tx dynfield. */ + if (rte_mbuf_dynfield_lookup("intel_pmd_dynfield_tx_lldp", NULL) >= 0) PMD_DRV_LOG(WARNING, - "Using a dynamic mbuf field to identify LLDP packets is deprecated. " - "Set the 'enable_ptype_lldp' driver option and mbuf LLDP ptypes instead."); - if (adapter->devargs.enable_ptype_lldp) - PMD_DRV_LOG(WARNING, - "Both ptype and dynfield LLDP enabled; ptype takes precedence."); - } + "Tx LLDP dynamic mbuf field is no longer supported. " + "Use enable_ptype_lldp devarg and packet type instead."); for (uint16_t i = 0; i < dev->data->nb_tx_queues; i++) { struct ci_tx_queue *txq = dev->data->tx_queues[i]; - if (txq) { - if (adapter->devargs.enable_ptype_lldp) - txq->lldp_mode = IAVF_LLDP_PTYPE; - else if (rte_pmd_iavf_tx_lldp_dynfield_offset > 0) - txq->lldp_mode = IAVF_LLDP_DYNFIELD; - else - txq->lldp_mode = IAVF_LLDP_DISABLED; - } + if (txq) + txq->lldp_enabled = adapter->devargs.enable_ptype_lldp; } if (iavf_init_queues(dev) != 0) { @@ -3018,11 +3005,6 @@ iavf_dev_init(struct rte_eth_dev *eth_dev) */ if (rte_eal_process_type() != RTE_PROC_PRIMARY) { iavf_set_rx_function(eth_dev); - /* LLDP may have been enabled by the primary process. Store the offset before - * setting the TX function because it may be used in the selection function. - */ - rte_pmd_iavf_tx_lldp_dynfield_offset = - rte_mbuf_dynfield_lookup(IAVF_TX_LLDP_DYNFIELD, NULL); iavf_set_tx_function(eth_dev); return 0; } diff --git a/drivers/net/intel/iavf/iavf_rxtx.c b/drivers/net/intel/iavf/iavf_rxtx.c index 4f2ffe6188..c15486fa28 100644 --- a/drivers/net/intel/iavf/iavf_rxtx.c +++ b/drivers/net/intel/iavf/iavf_rxtx.c @@ -2325,7 +2325,7 @@ iavf_recv_pkts_bulk_alloc(void *rx_queue, /* Check if the context descriptor is needed for TX offloading */ static inline uint16_t -iavf_calc_context_desc(const struct rte_mbuf *mb, uint8_t vlan_flag, uint8_t lldp_mode) +iavf_calc_context_desc(const struct rte_mbuf *mb, uint8_t vlan_flag, bool lldp_enabled) { uint64_t flags = mb->ol_flags; if (flags & (RTE_MBUF_F_TX_TCP_SEG | RTE_MBUF_F_TX_UDP_SEG | @@ -2336,7 +2336,7 @@ iavf_calc_context_desc(const struct rte_mbuf *mb, uint8_t vlan_flag, uint8_t lld vlan_flag & IAVF_TX_FLAGS_VLAN_TAG_LOC_L2TAG2) return 1; - if (IAVF_CHECK_TX_LLDP(mb, lldp_mode)) + if (IAVF_CHECK_TX_LLDP(mb, lldp_enabled)) return 1; return 0; @@ -2524,7 +2524,8 @@ iavf_get_context_desc(uint64_t ol_flags, const struct rte_mbuf *mbuf, const struct ci_tx_queue *txq, uint64_t *qw0, uint64_t *qw1) { - uint8_t iavf_vlan_flag, lldp_mode; + uint8_t iavf_vlan_flag; + bool lldp_enabled; uint16_t cd_l2tag2 = 0; uint64_t cd_type_cmd = IAVF_TX_DESC_DTYPE_CONTEXT; uint64_t cd_tunneling_params = 0; @@ -2532,10 +2533,10 @@ iavf_get_context_desc(uint64_t ol_flags, const struct rte_mbuf *mbuf, /* Use IAVF-specific flags from txq */ iavf_vlan_flag = txq->vlan_flag; - lldp_mode = txq->lldp_mode; + lldp_enabled = txq->lldp_enabled; /* Check if context descriptor is needed using existing IAVF logic */ - if (!iavf_calc_context_desc(mbuf, iavf_vlan_flag, lldp_mode)) + if (!iavf_calc_context_desc(mbuf, iavf_vlan_flag, lldp_enabled)) return 0; /* Get IPsec metadata if needed */ @@ -2567,7 +2568,7 @@ iavf_get_context_desc(uint64_t ol_flags, const struct rte_mbuf *mbuf, } /* LLDP switching field */ - if (IAVF_CHECK_TX_LLDP(mbuf, lldp_mode)) + if (IAVF_CHECK_TX_LLDP(mbuf, lldp_enabled)) cd_type_cmd |= IAVF_TX_CTX_DESC_SWTCH_UPLINK << IAVF_TXD_CTX_QW1_CMD_SHIFT; /* Tunneling field */ @@ -3927,7 +3928,7 @@ iavf_set_tx_function(struct rte_eth_dev *dev) if (iavf_tx_vec_dev_check(dev) != -1) req_features.simd_width = iavf_get_max_simd_bitwidth(); - if (adapter->devargs.enable_ptype_lldp || rte_pmd_iavf_tx_lldp_dynfield_offset > 0) + if (adapter->devargs.enable_ptype_lldp) req_features.ctx_desc = true; for (i = 0; i < dev->data->nb_tx_queues; i++) { diff --git a/drivers/net/intel/iavf/iavf_rxtx.h b/drivers/net/intel/iavf/iavf_rxtx.h index 22ea415f44..6ad7182ef7 100644 --- a/drivers/net/intel/iavf/iavf_rxtx.h +++ b/drivers/net/intel/iavf/iavf_rxtx.h @@ -155,23 +155,12 @@ #define IAVF_TX_OFFLOAD_NOTSUP_MASK \ (RTE_MBUF_F_TX_OFFLOAD_MASK ^ IAVF_TX_OFFLOAD_MASK) -#define IAVF_TX_LLDP_DYNFIELD "intel_pmd_dynfield_tx_lldp" - -/* LLDP Tx modes */ -#define IAVF_LLDP_DISABLED 0 -#define IAVF_LLDP_PTYPE 1 -#define IAVF_LLDP_DYNFIELD 2 - -#define IAVF_CHECK_TX_LLDP(m, lldp_mode) \ - ((lldp_mode) && \ - ((((lldp_mode) == IAVF_LLDP_PTYPE) && \ - ((m)->packet_type & RTE_PTYPE_L2_MASK) == RTE_PTYPE_L2_ETHER_LLDP) || \ - (((lldp_mode) == IAVF_LLDP_DYNFIELD) && \ - *RTE_MBUF_DYNFIELD((m), rte_pmd_iavf_tx_lldp_dynfield_offset, uint8_t *)))) +#define IAVF_CHECK_TX_LLDP(m, ptype_lldp_enabled) \ + ((ptype_lldp_enabled) && \ + ((m)->packet_type & RTE_PTYPE_L2_MASK) == RTE_PTYPE_L2_ETHER_LLDP) extern uint64_t iavf_timestamp_dynflag; extern int iavf_timestamp_dynfield_offset; -extern int rte_pmd_iavf_tx_lldp_dynfield_offset; typedef void (*iavf_rxd_to_pkt_fields_t)(struct ci_rx_queue *rxq, struct rte_mbuf *mb, diff --git a/drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c b/drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c index 9341d8412f..715805c65a 100644 --- a/drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c +++ b/drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c @@ -1903,7 +1903,7 @@ iavf_fill_ctx_desc_tunneling_field(volatile uint64_t *qw0, static __rte_always_inline void ctx_vtx1(volatile struct ci_tx_desc *txdp, struct rte_mbuf *pkt, - uint64_t flags, bool offload, uint8_t vlan_flag, uint8_t lldp_mode) + uint64_t flags, bool offload, uint8_t vlan_flag, bool ptype_lldp_enabled) { uint64_t high_ctx_qw = IAVF_TX_DESC_DTYPE_CONTEXT; uint64_t low_ctx_qw = 0; @@ -1924,7 +1924,7 @@ ctx_vtx1(volatile struct ci_tx_desc *txdp, struct rte_mbuf *pkt, } #endif } - if (IAVF_CHECK_TX_LLDP(pkt, lldp_mode)) + if (IAVF_CHECK_TX_LLDP(pkt, ptype_lldp_enabled)) high_ctx_qw |= IAVF_TX_CTX_DESC_SWTCH_UPLINK << IAVF_TXD_CTX_QW1_CMD_SHIFT; uint64_t high_data_qw = (IAVF_TX_DESC_DTYPE_DATA | ((uint64_t)flags << IAVF_TXD_QW1_CMD_SHIFT) | @@ -1941,14 +1941,14 @@ ctx_vtx1(volatile struct ci_tx_desc *txdp, struct rte_mbuf *pkt, static __rte_always_inline void ctx_vtx(volatile struct ci_tx_desc *txdp, struct rte_mbuf **pkt, uint16_t nb_pkts, uint64_t flags, - bool offload, uint8_t vlan_flag, uint8_t lldp_mode) + bool offload, uint8_t vlan_flag, bool ptype_lldp_enabled) { uint64_t hi_data_qw_tmpl = (IAVF_TX_DESC_DTYPE_DATA | ((uint64_t)flags << IAVF_TXD_QW1_CMD_SHIFT)); /* if unaligned on 32-bit boundary, do one to align */ if (((uintptr_t)txdp & 0x1F) != 0 && nb_pkts != 0) { - ctx_vtx1(txdp, *pkt, flags, offload, vlan_flag, lldp_mode); + ctx_vtx1(txdp, *pkt, flags, offload, vlan_flag, ptype_lldp_enabled); nb_pkts--; txdp++; pkt++; } @@ -1985,7 +1985,7 @@ ctx_vtx(volatile struct ci_tx_desc *txdp, } } #endif - if (IAVF_CHECK_TX_LLDP(pkt[1], lldp_mode)) + if (IAVF_CHECK_TX_LLDP(pkt[1], ptype_lldp_enabled)) hi_ctx_qw1 |= IAVF_TX_CTX_DESC_SWTCH_UPLINK << IAVF_TXD_CTX_QW1_CMD_SHIFT; #ifdef IAVF_TX_VLAN_QINQ_OFFLOAD @@ -2006,7 +2006,7 @@ ctx_vtx(volatile struct ci_tx_desc *txdp, } } #endif - if (IAVF_CHECK_TX_LLDP(pkt[0], lldp_mode)) + if (IAVF_CHECK_TX_LLDP(pkt[0], ptype_lldp_enabled)) hi_ctx_qw0 |= IAVF_TX_CTX_DESC_SWTCH_UPLINK << IAVF_TXD_CTX_QW1_CMD_SHIFT; if (offload) { @@ -2029,7 +2029,7 @@ ctx_vtx(volatile struct ci_tx_desc *txdp, } if (nb_pkts) - ctx_vtx1(txdp, *pkt, flags, offload, vlan_flag, lldp_mode); + ctx_vtx1(txdp, *pkt, flags, offload, vlan_flag, ptype_lldp_enabled); } static __rte_always_inline uint16_t @@ -2043,7 +2043,7 @@ iavf_xmit_fixed_burst_vec_avx2_ctx(void *tx_queue, struct rte_mbuf **tx_pkts, /* bit2 is reserved and must be set to 1 according to Spec */ uint64_t flags = IAVF_TX_DESC_CMD_EOP | IAVF_TX_DESC_CMD_ICRC; uint64_t rs = IAVF_TX_DESC_CMD_RS | flags; - uint8_t lldp_mode = txq->lldp_mode; + bool lldp_enabled = txq->lldp_enabled; if (txq->nb_tx_free < txq->tx_free_thresh) ci_tx_free_bufs_vec(txq, iavf_tx_desc_done, true); @@ -2066,10 +2066,10 @@ iavf_xmit_fixed_burst_vec_avx2_ctx(void *tx_queue, struct rte_mbuf **tx_pkts, nb_mbuf = n >> 1; ci_tx_backlog_entry_vec(txep, tx_pkts, nb_mbuf); - ctx_vtx(txdp, tx_pkts, nb_mbuf - 1, flags, offload, txq->vlan_flag, lldp_mode); + ctx_vtx(txdp, tx_pkts, nb_mbuf - 1, flags, offload, txq->vlan_flag, lldp_enabled); tx_pkts += (nb_mbuf - 1); txdp += (n - 2); - ctx_vtx1(txdp, *tx_pkts++, rs, offload, txq->vlan_flag, lldp_mode); + ctx_vtx1(txdp, *tx_pkts++, rs, offload, txq->vlan_flag, lldp_enabled); nb_commit = (uint16_t)(nb_commit - n); @@ -2083,7 +2083,7 @@ iavf_xmit_fixed_burst_vec_avx2_ctx(void *tx_queue, struct rte_mbuf **tx_pkts, nb_mbuf = nb_commit >> 1; ci_tx_backlog_entry_vec(txep, tx_pkts, nb_mbuf); - ctx_vtx(txdp, tx_pkts, nb_mbuf, flags, offload, txq->vlan_flag, lldp_mode); + ctx_vtx(txdp, tx_pkts, nb_mbuf, flags, offload, txq->vlan_flag, lldp_enabled); tx_id = (uint16_t)(tx_id + nb_commit); if (tx_id > txq->tx_next_rs) { diff --git a/drivers/net/intel/iavf/iavf_rxtx_vec_avx512.c b/drivers/net/intel/iavf/iavf_rxtx_vec_avx512.c index 83ba635062..dfbbea80f7 100644 --- a/drivers/net/intel/iavf/iavf_rxtx_vec_avx512.c +++ b/drivers/net/intel/iavf/iavf_rxtx_vec_avx512.c @@ -2047,7 +2047,7 @@ iavf_fill_ctx_desc_tunnelling_field(volatile uint64_t *qw0, static __rte_always_inline void ctx_vtx1(volatile struct ci_tx_desc *txdp, struct rte_mbuf *pkt, - uint64_t flags, bool offload, uint8_t vlan_flag, uint8_t lldp_mode) + uint64_t flags, bool offload, uint8_t vlan_flag, bool lldp_enabled) { uint64_t high_ctx_qw = IAVF_TX_DESC_DTYPE_CONTEXT; uint64_t low_ctx_qw = 0; @@ -2068,7 +2068,7 @@ ctx_vtx1(volatile struct ci_tx_desc *txdp, struct rte_mbuf *pkt, } #endif } - if (IAVF_CHECK_TX_LLDP(pkt, lldp_mode)) + if (IAVF_CHECK_TX_LLDP(pkt, lldp_enabled)) high_ctx_qw |= IAVF_TX_CTX_DESC_SWTCH_UPLINK << IAVF_TXD_CTX_QW1_CMD_SHIFT; uint64_t high_data_qw = (CI_TX_DESC_DTYPE_DATA | @@ -2086,13 +2086,13 @@ ctx_vtx1(volatile struct ci_tx_desc *txdp, struct rte_mbuf *pkt, static __rte_always_inline void ctx_vtx(volatile struct ci_tx_desc *txdp, struct rte_mbuf **pkt, uint16_t nb_pkts, uint64_t flags, - bool offload, uint8_t vlan_flag, uint8_t lldp_mode) + bool offload, uint8_t vlan_flag, bool lldp_enabled) { uint64_t hi_data_qw_tmpl = (CI_TX_DESC_DTYPE_DATA | (flags << CI_TXD_QW1_CMD_S)); /* if unaligned on 32-bit boundary, do one to align */ if (((uintptr_t)txdp & 0x1F) != 0 && nb_pkts != 0) { - ctx_vtx1(txdp, *pkt, flags, offload, vlan_flag, lldp_mode); + ctx_vtx1(txdp, *pkt, flags, offload, vlan_flag, lldp_enabled); nb_pkts--; txdp++; pkt++; } @@ -2125,7 +2125,7 @@ ctx_vtx(volatile struct ci_tx_desc *txdp, } } #endif - if (IAVF_CHECK_TX_LLDP(pkt[1], lldp_mode)) + if (IAVF_CHECK_TX_LLDP(pkt[1], lldp_enabled)) hi_ctx_qw1 |= IAVF_TX_CTX_DESC_SWTCH_UPLINK << CI_TXD_QW1_CMD_S; @@ -2145,7 +2145,7 @@ ctx_vtx(volatile struct ci_tx_desc *txdp, } } #endif - if (IAVF_CHECK_TX_LLDP(pkt[0], lldp_mode)) + if (IAVF_CHECK_TX_LLDP(pkt[0], lldp_enabled)) hi_ctx_qw0 |= IAVF_TX_CTX_DESC_SWTCH_UPLINK << CI_TXD_QW1_CMD_S; if (offload) { @@ -2165,7 +2165,7 @@ ctx_vtx(volatile struct ci_tx_desc *txdp, } if (nb_pkts) - ctx_vtx1(txdp, *pkt, flags, offload, vlan_flag, lldp_mode); + ctx_vtx1(txdp, *pkt, flags, offload, vlan_flag, lldp_enabled); } static __rte_always_inline uint16_t @@ -2246,7 +2246,7 @@ iavf_xmit_fixed_burst_vec_avx512_ctx(void *tx_queue, struct rte_mbuf **tx_pkts, /* bit2 is reserved and must be set to 1 according to Spec */ uint64_t flags = CI_TX_DESC_CMD_EOP | CI_TX_DESC_CMD_ICRC; uint64_t rs = CI_TX_DESC_CMD_RS | flags; - uint8_t lldp_mode = txq->lldp_mode; + bool lldp_enabled = txq->lldp_enabled; if (txq->nb_tx_free < txq->tx_free_thresh) ci_tx_free_bufs_vec(txq, iavf_tx_desc_done, true); @@ -2269,10 +2269,10 @@ iavf_xmit_fixed_burst_vec_avx512_ctx(void *tx_queue, struct rte_mbuf **tx_pkts, nb_mbuf = n >> 1; tx_backlog_entry_avx512(txep, tx_pkts, nb_mbuf); - ctx_vtx(txdp, tx_pkts, nb_mbuf - 1, flags, offload, txq->vlan_flag, lldp_mode); + ctx_vtx(txdp, tx_pkts, nb_mbuf - 1, flags, offload, txq->vlan_flag, lldp_enabled); tx_pkts += (nb_mbuf - 1); txdp += (n - 2); - ctx_vtx1(txdp, *tx_pkts++, rs, offload, txq->vlan_flag, lldp_mode); + ctx_vtx1(txdp, *tx_pkts++, rs, offload, txq->vlan_flag, lldp_enabled); nb_commit = (uint16_t)(nb_commit - n); @@ -2286,7 +2286,7 @@ iavf_xmit_fixed_burst_vec_avx512_ctx(void *tx_queue, struct rte_mbuf **tx_pkts, nb_mbuf = nb_commit >> 1; tx_backlog_entry_avx512(txep, tx_pkts, nb_mbuf); - ctx_vtx(txdp, tx_pkts, nb_mbuf, flags, offload, txq->vlan_flag, lldp_mode); + ctx_vtx(txdp, tx_pkts, nb_mbuf, flags, offload, txq->vlan_flag, lldp_enabled); tx_id = (uint16_t)(tx_id + nb_commit); if (tx_id > txq->tx_next_rs) { diff --git a/drivers/net/intel/iavf/iavf_testpmd.c b/drivers/net/intel/iavf/iavf_testpmd.c index 4731d0b61b..f3b932da04 100644 --- a/drivers/net/intel/iavf/iavf_testpmd.c +++ b/drivers/net/intel/iavf/iavf_testpmd.c @@ -2,7 +2,6 @@ * Copyright(c) 2010-2016 Intel Corporation. */ -#include <stdalign.h> #include <stdlib.h> #include <rte_pmd_iavf.h> @@ -14,61 +13,6 @@ #include "testpmd.h" #include "iavf_rxtx.h" -struct cmd_enable_tx_lldp_result { - cmdline_fixed_string_t set; - cmdline_fixed_string_t tx; - cmdline_fixed_string_t lldp; - cmdline_fixed_string_t what; -}; - -static cmdline_parse_token_string_t cmd_enable_tx_lldp_set = - TOKEN_STRING_INITIALIZER(struct cmd_enable_tx_lldp_result, - set, "set"); -static cmdline_parse_token_string_t cmd_enable_tx_lldp_tx = - TOKEN_STRING_INITIALIZER(struct cmd_enable_tx_lldp_result, - tx, "tx"); -static cmdline_parse_token_string_t cmd_enable_tx_lldp_lldp = - TOKEN_STRING_INITIALIZER(struct cmd_enable_tx_lldp_result, - lldp, "lldp"); -static cmdline_parse_token_string_t cmd_enable_tx_lldp_what = - TOKEN_STRING_INITIALIZER(struct cmd_enable_tx_lldp_result, - what, "on#off"); - -static void -cmd_enable_tx_lldp_parsed(void *parsed_result, - __rte_unused struct cmdline *cl, __rte_unused void *data) -{ - struct cmd_enable_tx_lldp_result *res = parsed_result; - const struct rte_mbuf_dynfield iavf_tx_lldp_dynfield = { - .name = IAVF_TX_LLDP_DYNFIELD, - .size = sizeof(uint8_t), - .align = alignof(uint8_t), - .flags = 0 - }; - int offset; - - if (strncmp(res->what, "on", 2) == 0) { - offset = rte_mbuf_dynfield_register(&iavf_tx_lldp_dynfield); - printf("rte_pmd_iavf_tx_lldp_dynfield_offset: %d", offset); - if (offset < 0) - fprintf(stderr, - "rte mbuf dynfield register failed, offset: %d", offset); - } -} - -static cmdline_parse_inst_t cmd_enable_tx_lldp = { - .f = cmd_enable_tx_lldp_parsed, - .data = NULL, - .help_str = "set iavf tx lldp on|off", - .tokens = { - (void *)&cmd_enable_tx_lldp_set, - (void *)&cmd_enable_tx_lldp_tx, - (void *)&cmd_enable_tx_lldp_lldp, - (void *)&cmd_enable_tx_lldp_what, - NULL, - }, -}; - struct cmd_reinit_result { cmdline_fixed_string_t port; cmdline_fixed_string_t reinit; @@ -117,11 +61,6 @@ static cmdline_parse_inst_t cmd_reinit = { static struct testpmd_driver_commands iavf_cmds = { .commands = { - { - &cmd_enable_tx_lldp, - "set tx lldp (on|off)\n" - " Set iavf Tx lldp packet(currently only supported on)\n\n", - }, { &cmd_reinit, "port reinit (port_id)\n" -- 2.43.0