[PATCH v12 00/15] et/enetc: add new features for ENETC4 on i.MX95
Gagandeep Singh <[email protected]>
| Newsgroups | org.dpdk.dev |
|---|---|
| Message-ID | <[email protected]> |
V12-Changes:
- Fixed documentation for:
- missing double quotes for enetc4_txq_prior
- In accurate comment related to secondary process burst functions.
- Added a note related to LRO and its BD size chosen.
- Fixed secondary process burst functions selection.
- Removed "Unicast MAC filter" from vf, but comment regarding "RSS
hash" is false positive as or RSS hash, the only mandatory
requirement is `[provides] rte_eth_dev_info: flow_type_rss_offloads
, which the VF sets in enetc4_vf_dev_infos_get
(`dev_info->flow_type_rss_offloads = ENETC_RSS_OFFLOAD_ALL`).
- Fixed lro and scattered_rx configuration by enabling only after
rsc_enable branch.
V11-Changes:
- Added enetc4_vf.ini for VF only features.
- Fixed the secondary-process guards leave the burst function
pointers NULL
- Fixed rxq_info_get and txq_info_get report the doubled ring size
- Move the VFs only features to enetc4_vf.ini
- Setting the dev->data->lro
- Added a comment to use devargs to change delay and timeout to process
PSI message to avoid any interrupts stall.
- Fixed link_update() now rewrites RBMR on every Rx ring.
- Regestering - enetc4_txq_wr in VF
- Updated enetc4_rd64 with re-read to confirm the correctness.
- Removed the dead code and un-used macros.
- Added Vlan check for maximum allowed value.
- fixed pre-existing ring write function for TX path.
V10-Changes:
- Fixed enetc4_txq_prior and enetc4_txq_wrr have no effect at queue
setup issue.
- Updated ENETC_CLASS_ID_SI_VLAN_ISO reply check.
- Updated enetc4.ini for VLAN offload.
- Added else part for burst functions selection for RSC and TSO.
- Updated enetc4_rd64()
- Fixed RBICR0 issue.
- Removed GENMASK.
V9-Changes:
- Mid-body variable declaration moved to top of the function.
- ret=0 dead code is removed.
- Added check on return value of rte_intr_callback_unregister()
- The pre-existing reply_msg leak fixed.
- Added primary-process guard in enetc4_vf_dev_init
- Removed Flow control from enetc4.ini
- Fixed VF stats_reset baseline underflows on counter wrap
- Fixed VF vlan_pvid_set fails on every successful command
V8-changes:
- Fixed Warning RBMR RMW races between threads by adding lock
- Fixed `static const` arrays in `enetc.h`
- Proper pthread_mutexattr_t initialization added as suggested by AI
- VSIMSGSR stale re-read race is eliminated
V7-changes:
- added missing 14th patch.
V6-changes:
- fixed free() on memory allocated with rte_zmalloc().
- fixed eventfd and vector-list leak on interrupt teardown
- fixed Rx ring doubling still bypasses
- fixed VSI-PSI transaction issued from the interrupt handler
- fixed the free-and-reallocate of msg is unnecessary churn
- fixed unsynchronized access to tx_pause_active and RBMR
- fixed signed shift overflow in the register-dump version field
- fixed the fw_size == 0 early return reports the length of "0.0"
- unwanted blank lines removed.
- parse_txq_prior() returns updated.
V5-changes:
- Patch 1 Build fixes which includes:
'prev_seg' undeclared fixed.
redefinition of 'dev_rx_offloads_sup' fixed.
Error: duplicate rx_enable declaration fixed.
PF loses Scattered Rx and Multi-segment Tx
- mbuf leak in enetc_xmit_pkts_lso() fixed.
- fixed conversion on ENETC4_TXBD_FLAGS_F issue.
- fixed link speed decode has no upper bound.
- fixed mailbox ops added to the no-VSI ops table.
- new devargs documented.
V4-changes:
- fix doc build issue: WARNING: undefined label: pmd_build_and_test
v3-changes:
- fix doc build issue.
- fix compilation issue on fedore:43-gcc-minsize
V2-changes:
- compilation fixes.
V1-changes:
This series adds new PMD features to the ENETC4 driver targeting the
NXP i.MX95 NETC IP.
The series covers:
- KEEP_CRC Rx offload: preserve the Ethernet FCS in the receive buffer.
- TSO: TCP Segmentation Offload for the VF Tx path.
- RSC/LRO: hardware Receive Segment Coalesce for PF and VF Rx paths.
- Link speed code: extend the PF-to-VF mailbox field from 4-bit to
8-bit to support speeds beyond 10G.
- Firmware version: report the NETC IP version via fw_version_get.
- Register dump: dump SI, port (PF) and BD ring registers.
- Ring parameters: implement rxq_info_get / txq_info_get for the VF.
- Link-up interrupt: refresh the cached link speed on each VF link-up
interrupt so that link_update returns the current speed immediately.
- Stats reset: software snapshot/delta approach for VF counter reset.
- Per-queue Rx interrupt: MSI-X per-queue Rx interrupts for the VF,
enabling interrupt-driven receive with l3fwd-power.
- SI VLAN: hardware port VLAN insertion/removal for PF and VF.
- VF link status bitmask: switch VF link status to bitmask encoding
to align with the PF and newer kernel driver conventions.
- TX PAUSE: VF sets Rx congestion mode when the PF signals TX PAUSE
negotiated on the wire; adds Flow control = Y to enetc4.ini.
- WRR Tx scheduler: per-ring WRR weights via enetc4_txq_wrr devarg.
Gagandeep Singh (15):
net/enetc: add keep-CRC Rx offload for ENETC4
net/enetc: add TSO support for ENETC4 VF
net/enetc: add RSC (hardware LRO) support for ENETC4
net/enetc: extend PF-VF link speed field to 8 bits
net/enetc: add VF supported features file
net/enetc: support firmware version get for VF
net/enetc: support registers dump
net/enetc: support ethtool ring parameters
net/enetc: refresh link speed on VF link-up interrupt
net/enetc: support stats reset for VF
net/enetc4: add per-queue Rx interrupt support for VF
net/enetc4: add SI-based port VLAN insertion and removal
net/enetc4: update VF link status to bitmask encoding
net/enetc4: enable Tx PAUSE via VF Rx congestion mode
net/enetc4: add WRR Tx scheduler devarg for VF rings
MAINTAINERS | 1 +
doc/guides/nics/enetc4.rst | 114 ++-
doc/guides/nics/features/enetc4.ini | 4 +
doc/guides/nics/features/enetc4_vf.ini | 28 +
doc/guides/rel_notes/release_26_11.rst | 21 +
drivers/net/enetc/base/enetc4_hw.h | 148 +++-
drivers/net/enetc/base/enetc_hw.h | 6 +
drivers/net/enetc/enetc.h | 133 +++-
drivers/net/enetc/enetc4_ethdev.c | 527 ++++++++++++--
drivers/net/enetc/enetc4_vf.c | 928 ++++++++++++++++++++++---
drivers/net/enetc/enetc_rxtx.c | 530 +++++++++++++-
11 files changed, 2254 insertions(+), 186 deletions(-)
create mode 100644 doc/guides/nics/features/enetc4_vf.ini
--
2.25.1