DPDK-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: David Marchand <david.marchand@redhat.com>
To: dev@dpdk.org
Cc: thomas@monjalon.net, Stephen Hemminger <stephen@networkplumber.org>
Subject: [PATCH v2 03/12] devtools: handle multiple drivers in doc check
Date: Wed, 21 Oct 2026 12:30:17 +0200	[thread overview]
Message-ID: <20261021103027.2050351-4-david.marchand@redhat.com> (raw)
In-Reply-To: <20261021103027.2050351-1-david.marchand@redhat.com>

The doc check currently does not look into the Intel drivers, nor does
it handle multiple drivers in a single code.

Add helpers to extract driver names from paths and map them to code
directories.

When a driver name matches its code directory, report differences in
both directions (code vs doc, doc vs code).

When multiple docs share one code directory, only report doc items
not in code to avoid false positives.

Also rename doc files to match their code directory names.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 MAINTAINERS                                   |  2 +-
 devtools/check-doc-vs-code.sh                 | 67 +++++++++++++++++--
 .../features/{afpacket.ini => af_packet.ini}  |  2 +-
 .../features/{cxgbevf.ini => cxgbe_vf.ini}    |  2 +-
 4 files changed, 63 insertions(+), 10 deletions(-)
 rename doc/guides/nics/features/{afpacket.ini => af_packet.ini} (70%)
 rename doc/guides/nics/features/{cxgbevf.ini => cxgbe_vf.ini} (90%)

diff --git a/MAINTAINERS b/MAINTAINERS
index 1720cff62e..e05bea2f0c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -679,7 +679,7 @@ F: examples/bond/
 Linux AF_PACKET
 M: Stephen Hemminger <stephen@networkplumber.org>
 F: drivers/net/af_packet/
-F: doc/guides/nics/features/afpacket.ini
+F: doc/guides/nics/features/af_packet.ini
 F: app/test/test_pmd_af_packet.c
 
 Linux AF_XDP
diff --git a/devtools/check-doc-vs-code.sh b/devtools/check-doc-vs-code.sh
index 80d77907f0..4dacb78b2e 100755
--- a/devtools/check-doc-vs-code.sh
+++ b/devtools/check-doc-vs-code.sh
@@ -36,30 +36,83 @@ has_file_change() # <pattern>
 	changed_files | grep -q "$1"
 }
 
+net_driver_from_path() # <path>
+{
+	sed -rn '
+		s,.*drivers/net/intel/([^/]*)/.*,\1,p; t
+		s,.*drivers/net/([^./]*)/.*,\1,p; t
+		s,.*doc/guides/nics/features/([^./]*).*,\1,p'
+}
+
 changed_net_drivers()
 {
-	net_paths='drivers/net/|doc/guides/nics/features/'
 	[ -n "$drivers" ] ||
 		drivers=$(changed_files |
-			sed -rn "s,^($net_paths)([^./]*).*,\2,p" |
+			net_driver_from_path |
 			sort -u)
 	echo "$drivers"
 }
 
 all_net_drivers()
 {
-	find $rootdir/drivers/net -mindepth 1 -maxdepth 1 -type d |
-	sed 's,.*/,,' |
-	sort
+	{
+		find $rootdir/drivers/net -name meson.build
+		ls $rootdir/doc/guides/nics/features/*.ini
+	} |
+	net_driver_from_path |
+	sort -u
+}
+
+driver_code_dir() # <driver>
+{
+	drv=$(echo "$1" | sed -r 's/_(dcf|vec|vf)$//')
+	case $drv in
+	enetc|enetc4)
+		echo "$rootdir/drivers/net/enetc" ;;
+	igb|igc|e1000)
+		echo "$rootdir/drivers/net/intel/e1000" ;;
+	ixgbe|i40e|ice|fm10k|ipn3ke|idpf|cpfl|iavf)
+		echo "$rootdir/drivers/net/intel/$drv" ;;
+	*)
+		echo "$rootdir/drivers/net/$drv" ;;
+	esac
+}
+
+# compare doc vs code items:
+# - if driver matches code dir: report differences in both directions
+# - otherwise: only report doc items not in code (shared code directory)
+flow_item_diff() # <driver> <code_dir> <doc_items> <code_items>
+{
+	{
+		[ -n "$3" ] && echo "$3"
+		[ -n "$4" ] && {
+			echo "$4"
+			[ "$1" != $(basename "$2") ] && echo "$4"
+		}
+	} | sort | uniq -u
 }
 
 check_rte_flow() # <driver>
 {
-	code=$rootdir/drivers/net/$1
+	code=$(driver_code_dir $1)
 	doc=$rootdir/doc/guides/nics/features/$1.ini
 	[ -d $code ] || return 0
 	[ -f $doc ] || return 0
-	report=$($selfdir/parse-flow-support.sh $code $doc)
+	code_support=$($selfdir/parse-flow-support.sh $code)
+	report=$(
+		for category in item action; do
+			section="rte_flow ${category}s]"
+			code_items=$(echo "$code_support" | sed -n "/$section/,/]/p" |
+				sed '/]/d' | sed 's, *=.*,,' | sed '/^$/d' | sort -u)
+			doc_items=$(sed -n "/$section/,/]/p" "$doc" |
+				sed '/]/d' | sed 's, *=.*,,' | sed '/^$/d' | sort -u)
+			if [ -n "$doc_items" ] || [ -n "$code_items" ]; then
+				flow_item_diff $1 $code "$doc_items" "$code_items"
+			fi |
+			grep . |
+			sed "s,^,$category ,"
+		done
+	)
 	if [ -n "$report" ]; then
 		error "rte_flow doc out of sync for $1"
 		echo "$report" | sed 's,^,\t,'
diff --git a/doc/guides/nics/features/afpacket.ini b/doc/guides/nics/features/af_packet.ini
similarity index 70%
rename from doc/guides/nics/features/afpacket.ini
rename to doc/guides/nics/features/af_packet.ini
index bc669dfb8a..b1cbc54aca 100644
--- a/doc/guides/nics/features/afpacket.ini
+++ b/doc/guides/nics/features/af_packet.ini
@@ -1,5 +1,5 @@
 ;
-; Supported features of the 'afpacket' network poll mode driver.
+; Supported features of the 'af_packet' network poll mode driver.
 ;
 ; Refer to default.ini for the full list of available PMD features.
 ;
diff --git a/doc/guides/nics/features/cxgbevf.ini b/doc/guides/nics/features/cxgbe_vf.ini
similarity index 90%
rename from doc/guides/nics/features/cxgbevf.ini
rename to doc/guides/nics/features/cxgbe_vf.ini
index a921cda6b1..b77b202272 100644
--- a/doc/guides/nics/features/cxgbevf.ini
+++ b/doc/guides/nics/features/cxgbe_vf.ini
@@ -1,5 +1,5 @@
 ;
-; Supported features of the 'cxgbevf' network poll mode driver.
+; Supported features of the 'cxgbe_vf' network poll mode driver.
 ;
 ; Refer to default.ini for the full list of available PMD features.
 ;
-- 
2.54.0


  parent reply	other threads:[~2026-10-21 10:30 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-16 13:05 [PATCH 0/8] Validate multiqueue configuration in ethdev David Marchand
2026-10-16 13:05 ` [PATCH 1/8] net/bnxt: remove leftover VMDq code in MAC helpers David Marchand
2026-10-16 13:05 ` [PATCH 2/8] drivers/net: fix reported VMDq capability David Marchand
2026-10-16 13:05 ` [PATCH 3/8] drivers/net: remove check on VMDq modes David Marchand
2026-10-16 13:05 ` [PATCH 4/8] devtools: check VMDq capability David Marchand
2026-10-16 13:05 ` [PATCH 5/8] ethdev: check DCB availability David Marchand
2026-10-16 13:05 ` [PATCH 6/8] drivers/net: fix reported RSS capability David Marchand
2026-10-16 13:05 ` [PATCH 7/8] ethdev: check RSS availability David Marchand
2026-10-16 13:05 ` [PATCH 8/8] ethdev: check unknown Rx/Tx multi-queue modes David Marchand
2026-10-16 16:44 ` [PATCH 0/8] Validate multiqueue configuration in ethdev Stephen Hemminger
2026-10-19  6:41   ` Renyong Wan
2026-10-21 10:30 ` [PATCH v2 00/12] " David Marchand
2026-10-21 10:30   ` [PATCH v2 01/12] devtools: fix matching in doc check David Marchand
2026-10-21 10:42     ` Thomas Monjalon
2026-10-21 10:30   ` [PATCH v2 02/12] doc: fix L2TPv2 and PPP matching support for ICE David Marchand
2026-10-21 10:30   ` David Marchand [this message]
2026-10-22  9:39     ` [PATCH v2 03/12] devtools: handle multiple drivers in doc check Thomas Monjalon
2026-10-21 10:30   ` [PATCH v2 04/12] net/bnxt: remove leftover VMDq code in MAC helpers David Marchand
2026-10-21 10:30   ` [PATCH v2 05/12] drivers/net: fix reported VMDq capability David Marchand
2026-10-21 10:53     ` Bruce Richardson
2026-10-21 10:30   ` [PATCH v2 06/12] drivers/net: remove check on VMDq modes David Marchand
2026-10-21 10:55     ` Bruce Richardson
2026-10-21 10:30   ` [PATCH v2 07/12] devtools: check VMDq capability David Marchand
2026-10-22  9:44     ` Thomas Monjalon
2026-10-21 10:30   ` [PATCH v2 08/12] doc: fix DCB capability for some Intel drivers David Marchand
2026-10-21 11:04     ` Bruce Richardson
2026-10-21 10:30   ` [PATCH v2 09/12] ethdev: check DCB availability David Marchand
2026-10-21 11:07     ` Bruce Richardson
2026-10-21 10:30   ` [PATCH v2 10/12] drivers/net: fix reported RSS capability David Marchand
2026-10-22  6:17     ` Renyong Wan
2026-10-21 10:30   ` [PATCH v2 11/12] ethdev: check RSS availability David Marchand
2026-10-21 10:30   ` [PATCH v2 12/12] ethdev: check unknown Rx/Tx multi-queue modes David Marchand
2026-10-21 17:42   ` [PATCH v2 00/12] Validate multiqueue configuration in ethdev Stephen Hemminger
2026-10-22 17:44 ` [PATCH v3 00/13] " David Marchand
2026-10-22 17:44   ` [PATCH v3 01/13] devtools: fix matching in doc check David Marchand
2026-10-22 17:44   ` [PATCH v3 02/13] doc: fix L2TPv2 and PPP matching support for ICE David Marchand
2026-10-22 17:44   ` [PATCH v3 03/13] devtools: support Intel drivers in doc check David Marchand
2026-10-23 10:11     ` Thomas Monjalon
2026-10-22 17:44   ` [PATCH v3 04/13] devtools: handle multiple " David Marchand
2026-10-23 10:13     ` Thomas Monjalon
2026-10-23 15:08       ` David Marchand
2026-10-22 17:44   ` [PATCH v3 05/13] net/bnxt: remove leftover VMDq code in MAC helpers David Marchand
2026-10-22 17:44   ` [PATCH v3 06/13] drivers/net: fix reported VMDq capability David Marchand
2026-10-22 17:44   ` [PATCH v3 07/13] drivers/net: remove check on VMDq modes David Marchand
2026-10-27  2:38     ` fengchengwen
2026-10-22 17:44   ` [PATCH v3 08/13] devtools: check VMDq capability David Marchand
2026-10-22 17:44   ` [PATCH v3 09/13] doc: fix DCB capability for some Intel drivers David Marchand
2026-10-22 17:44   ` [PATCH v3 10/13] ethdev: check DCB availability David Marchand
2026-10-27  2:39     ` fengchengwen
2026-10-22 17:44   ` [PATCH v3 11/13] drivers/net: fix reported RSS capability David Marchand
2026-10-22 17:44   ` [PATCH v3 12/13] ethdev: check RSS availability David Marchand
2026-10-27  2:41     ` fengchengwen
2026-10-22 17:44   ` [PATCH v3 13/13] ethdev: check unknown Rx/Tx multi-queue modes David Marchand
2026-10-26 18:11   ` [PATCH v3 00/13] Validate multiqueue configuration in ethdev Stephen Hemminger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261021103027.2050351-4-david.marchand@redhat.com \
    --to=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=stephen@networkplumber.org \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox