* [RFC] doc: updating doxy-api-index.md and doxy-api.conf.in @ 2026-06-30 9:03 Marat Khalili 2026-06-30 16:10 ` Thomas Monjalon 2026-07-02 20:00 ` [PATCH 0/7] doc: build for all public headers Marat Khalili 0 siblings, 2 replies; 30+ messages in thread From: Marat Khalili @ 2026-06-30 9:03 UTC (permalink / raw) To: dev@dpdk.org I noticed that a few header files contain docstring-like comments but are not present in doc/api/doxy-api-index.md and/or (fewer) in doc/api/doxy-api.conf.in There seem to be no checks anywhere in the process that would make sure these index files are updated. Do we even care, or is it unsupported legacy? If we do care, would a check or an automatic generation fix be more promising? With Best Regards, Marat ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC] doc: updating doxy-api-index.md and doxy-api.conf.in 2026-06-30 9:03 [RFC] doc: updating doxy-api-index.md and doxy-api.conf.in Marat Khalili @ 2026-06-30 16:10 ` Thomas Monjalon 2026-06-30 16:45 ` Bruce Richardson 2026-07-02 20:00 ` [PATCH 0/7] doc: build for all public headers Marat Khalili 1 sibling, 1 reply; 30+ messages in thread From: Thomas Monjalon @ 2026-06-30 16:10 UTC (permalink / raw) To: Marat Khalili; +Cc: dev@dpdk.org Hello, 30/06/2026 11:03, Marat Khalili: > I noticed that a few header files contain docstring-like comments but are not > present in doc/api/doxy-api-index.md and/or (fewer) in doc/api/doxy-api.conf.in > There seem to be no checks anywhere in the process that would make sure these > index files are updated. Do we even care, or is it unsupported legacy? If we do > care, would a check or an automatic generation fix be more promising? Some internal files have doxygen comments, not sure why, probably to run Doxygen manually on these files. In the scope of our public documentation, the goal was to document all and only public API. If you see some public API not referenced, it is a bug. And yes a script to check this may be useful. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC] doc: updating doxy-api-index.md and doxy-api.conf.in 2026-06-30 16:10 ` Thomas Monjalon @ 2026-06-30 16:45 ` Bruce Richardson 0 siblings, 0 replies; 30+ messages in thread From: Bruce Richardson @ 2026-06-30 16:45 UTC (permalink / raw) To: Thomas Monjalon; +Cc: Marat Khalili, dev@dpdk.org On Tue, Jun 30, 2026 at 06:10:59PM +0200, Thomas Monjalon wrote: > Hello, > > 30/06/2026 11:03, Marat Khalili: > > I noticed that a few header files contain docstring-like comments but are not > > present in doc/api/doxy-api-index.md and/or (fewer) in doc/api/doxy-api.conf.in > > There seem to be no checks anywhere in the process that would make sure these > > index files are updated. Do we even care, or is it unsupported legacy? If we do > > care, would a check or an automatic generation fix be more promising? > > Some internal files have doxygen comments, not sure why, > probably to run Doxygen manually on these files. > > In the scope of our public documentation, > the goal was to document all and only public API. > > If you see some public API not referenced, it is a bug. > And yes a script to check this may be useful. > Something like this could work as a quick check that all public headers are getting indexed. Doesn't help with verifying that all contents within the files have comments, but maybe its an easy start point: diff --git a/drivers/meson.build b/drivers/meson.build index 4d95604ecd..5a9ba68d54 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -278,6 +278,23 @@ foreach subpath:subdirs dpdk_headers += headers dpdk_drivers_headers += driver_sdk_headers + # On Linux, best-effort check that public headers are named correctly + # and that the driver directory is referenced in the Doxygen config so + # that its API gets indexed. + if is_linux and meson.version().version_compare('>= 0.59.0') and headers.length() > 0 + foreach h:headers + hname = fs.name(h) + if not hname.startswith('rte_') + warning('drivers/@0@: public header "@1@" does not start with "rte_"'.format(drv_path, hname)) + endif + endforeach + if run_command('grep', '-qF', '@TOPDIR@/drivers/' + drv_path, + dpdk_source_root / 'doc' / 'api' / 'doxy-api.conf.in', + check: false).returncode() != 0 + warning('drivers/@0@: has public headers but not listed in doxy-api.conf.in'.format(drv_path)) + endif + endif + if headers.length() > 0 dpdk_includes += include_directories(drv_path) endif diff --git a/lib/meson.build b/lib/meson.build index af5c160cb8..d897b2c73a 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -209,6 +209,23 @@ foreach l:libraries dpdk_indirect_headers += indirect_headers dpdk_drivers_headers += driver_sdk_headers + # On Linux, best-effort check that public headers are named correctly + # and that the library directory is referenced in the Doxygen config so + # that its API gets indexed. + if is_linux and meson.version().version_compare('>= 0.59.0') and headers.length() > 0 + foreach h:headers + hname = fs.name(h) + if not (hname.startswith('rte_') or hname.startswith('cmdline')) + warning('lib/@0@: public header "@1@" does not start with "rte_" or "cmdline"'.format(l, hname)) + endif + endforeach + if run_command('grep', '-qF', '@TOPDIR@/lib/' + l, + dpdk_source_root / 'doc' / 'api' / 'doxy-api.conf.in', + check: false).returncode() != 0 + warning('lib/@0@: has public headers but not listed in doxy-api.conf.in'.format(l)) + endif + endif + libname = 'rte_' + name includes += include_directories(l) dpdk_includes += include_directories(l) ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH 0/7] doc: build for all public headers 2026-06-30 9:03 [RFC] doc: updating doxy-api-index.md and doxy-api.conf.in Marat Khalili 2026-06-30 16:10 ` Thomas Monjalon @ 2026-07-02 20:00 ` Marat Khalili 2026-07-02 20:00 ` [PATCH 1/7] doc: detect ignored " Marat Khalili ` (7 more replies) 1 sibling, 8 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-02 20:00 UTC (permalink / raw) Cc: dev, thomas, bruce.richardson It was noticed that not all public headers were included in the doxygen build, and once built not all files were listed in the index file serving as a point of entry for the HTML version. Bruce Richardson provided an idea and a draft implementation of the configuration-time check, which I optimized to avoid repeat grep calls and expanded to include indexing check. After all drivers and public headers were included, multiple small problems have surfaced fixes for which (with one exception covered by bug 1962) are also included in this patch set. Marat Khalili (7): doc: detect ignored public headers doc: document rte_os.h doc: fix typos in rte_bus_pci.h doc: fix typos in rte_bus_vmbus.h doc: add missing globs to doxy-api.conf.in doc: add missing drivers to doxy-api.conf.in doc: add missing headers to doxy-api-index.md doc/api/doxy-api-index.md | 116 ++++++++++++++++++++++++++---- doc/api/doxy-api.conf.in | 17 ++++- drivers/bus/pci/rte_bus_pci.h | 4 +- drivers/bus/vmbus/rte_bus_vmbus.h | 33 +++++---- drivers/meson.build | 17 +++++ lib/eal/include/generic/rte_os.h | 13 ++++ lib/meson.build | 23 ++++++ meson.build | 19 +++++ 8 files changed, 211 insertions(+), 31 deletions(-) create mode 100644 lib/eal/include/generic/rte_os.h -- 2.43.0 ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH 1/7] doc: detect ignored public headers 2026-07-02 20:00 ` [PATCH 0/7] doc: build for all public headers Marat Khalili @ 2026-07-02 20:00 ` Marat Khalili 2026-07-02 20:00 ` [PATCH 2/7] doc: document rte_os.h Marat Khalili ` (6 subsequent siblings) 7 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-02 20:00 UTC (permalink / raw) To: Bruce Richardson; +Cc: dev, thomas Some public headers were omitted from doc/api/doxy-api-index.md and/or doc/api/doxy-api.conf.in. Add checks to meson configuration detecting and warning about these. Suggested-by: Bruce Richardson <bruce.richardson@intel.com> Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- drivers/meson.build | 17 +++++++++++++++++ lib/meson.build | 23 +++++++++++++++++++++++ meson.build | 19 +++++++++++++++++++ 3 files changed, 59 insertions(+) diff --git a/drivers/meson.build b/drivers/meson.build index 102a8262e588..09c063660291 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -287,6 +287,23 @@ foreach subpath:subdirs dpdk_headers += headers dpdk_drivers_headers += driver_sdk_headers + if check_docs and headers.length() > 0 + foreach h:headers + hname = fs.name(h) + if not hname.startswith('rte_') + warning('public header @0@ name does not start with "rte_"'.format(h)) + endif + if hname not in doc_indexed_headers + warning('public header @0@ is not listed in @1@'.format(h, doc_index_path)) + endif + endforeach + doc_dir = 'drivers/' + drv_path + if doc_dir not in doc_built_dirs + warning('public header directory @0@ is not listed in @1@'.format(doc_dir, + doc_build_path)) + endif + endif + if headers.length() > 0 dpdk_includes += include_directories(drv_path) endif diff --git a/lib/meson.build b/lib/meson.build index af5c160cb800..ff5c474d2cc3 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -209,6 +209,29 @@ foreach l:libraries dpdk_indirect_headers += indirect_headers dpdk_drivers_headers += driver_sdk_headers + if check_docs and headers.length() > 0 + foreach h:headers + hname = fs.name(h) + if not (hname.startswith('rte_') or hname.startswith('cmdline')) + warning('public header @0@ name does not start with "rte_" or "cmdline"'.format(h)) + endif + if hname not in doc_indexed_headers + warning('public header @0@ is not listed in @1@'.format(h, doc_index_path)) + endif + endforeach + if l == 'eal' + doc_dirs = ['lib/eal/include', 'lib/eal/include/generic'] + else + doc_dirs = ['lib/' + l] + endif + foreach d:doc_dirs + if d not in doc_built_dirs + warning('public header directory @0@ is not listed in @1@'.format(doc_dir, + doc_build_path)) + endif + endforeach + endif + libname = 'rte_' + name includes += include_directories(l) dpdk_includes += include_directories(l) diff --git a/meson.build b/meson.build index b01010ffa076..87666f1f81f4 100644 --- a/meson.build +++ b/meson.build @@ -88,6 +88,25 @@ if is_linux global_inc += include_directories('kernel/linux') endif +# on linux, try to check that documentation sources are correctly built and indexed +check_docs = is_linux and meson.version().version_compare('>= 0.60.0') + +if check_docs + doc_build_path = 'doc/api/doxy-api.conf.in' + doc_build_file = dpdk_source_root / doc_build_path + doc_built_dirs = run_command('sed', '--regexp-extended', '--quiet', + # Extract and print the file path immediately following @TOPDIR@/ . + 's#^(INPUT *=)? *@TOPDIR@/([^ ]*)( .*|\\\\|)$#\\2#p', + doc_build_file, check: true).stdout().splitlines() + + doc_index_path = 'doc/api/doxy-api-index.md' + doc_index_file = dpdk_source_root / doc_index_path + doc_indexed_headers = run_command('sed', '--regexp-extended', '--quiet', + # Extract and print the (@ref ...) contents. + 's#^.*\\(@ref ([^)]*)\\).*$#\\1#p', + doc_index_file, check: true).stdout().splitlines() +endif + # build libs and drivers subdir('lib') subdir('drivers') -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH 2/7] doc: document rte_os.h 2026-07-02 20:00 ` [PATCH 0/7] doc: build for all public headers Marat Khalili 2026-07-02 20:00 ` [PATCH 1/7] doc: detect ignored " Marat Khalili @ 2026-07-02 20:00 ` Marat Khalili 2026-07-02 20:00 ` [PATCH 3/7] doc: fix typos in rte_bus_pci.h Marat Khalili ` (5 subsequent siblings) 7 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-02 20:00 UTC (permalink / raw) Cc: dev, thomas, bruce.richardson File rte_os.h did not previously have a generic version to generate documentation from, but its OS-specific version was installed. Since it is now verified that documentation is generated for all public headers, add a generic stub containing description of this file. Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- lib/eal/include/generic/rte_os.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 lib/eal/include/generic/rte_os.h diff --git a/lib/eal/include/generic/rte_os.h b/lib/eal/include/generic/rte_os.h new file mode 100644 index 000000000000..aa96321aefc4 --- /dev/null +++ b/lib/eal/include/generic/rte_os.h @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2010-2019 Intel Corporation + */ + +#ifndef _RTE_OS_H_ +#define _RTE_OS_H_ + +/** + * This header should contain any definition + * which is not supported natively or named differently in the local OS. + */ + +#endif /* _RTE_OS_H_ */ -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH 3/7] doc: fix typos in rte_bus_pci.h 2026-07-02 20:00 ` [PATCH 0/7] doc: build for all public headers Marat Khalili 2026-07-02 20:00 ` [PATCH 1/7] doc: detect ignored " Marat Khalili 2026-07-02 20:00 ` [PATCH 2/7] doc: document rte_os.h Marat Khalili @ 2026-07-02 20:00 ` Marat Khalili 2026-07-02 20:00 ` [PATCH 4/7] doc: fix typos in rte_bus_vmbus.h Marat Khalili ` (4 subsequent siblings) 7 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-02 20:00 UTC (permalink / raw) To: Chenbo Xia, Nipun Gupta; +Cc: dev, thomas, bruce.richardson This file contained a couple of doxygen typos that prevented successful documentation build. It was not discovered previously because the driver despite the presence of public headers was not included in the documentation build. Fix doxygen typos (replace `@bar` with `@p bar`). Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- drivers/bus/pci/rte_bus_pci.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/bus/pci/rte_bus_pci.h b/drivers/bus/pci/rte_bus_pci.h index 19a7b15b99fd..22a7beb1fc4c 100644 --- a/drivers/bus/pci/rte_bus_pci.h +++ b/drivers/bus/pci/rte_bus_pci.h @@ -222,7 +222,7 @@ int rte_pci_write_config(const struct rte_pci_device *device, * @param len * The length of the data buffer. * @param offset - * The offset into MMIO space described by @bar. + * The offset into MMIO space described by @p bar. * @return * Number of bytes read on success, negative on error. */ @@ -246,7 +246,7 @@ int rte_pci_mmio_read(const struct rte_pci_device *device, int bar, * @param len * The length of the data buffer. * @param offset - * The offset into MMIO space described by @bar. + * The offset into MMIO space described by @p bar. * @return * Number of bytes written on success, negative on error. */ -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH 4/7] doc: fix typos in rte_bus_vmbus.h 2026-07-02 20:00 ` [PATCH 0/7] doc: build for all public headers Marat Khalili ` (2 preceding siblings ...) 2026-07-02 20:00 ` [PATCH 3/7] doc: fix typos in rte_bus_pci.h Marat Khalili @ 2026-07-02 20:00 ` Marat Khalili 2026-07-02 20:00 ` [PATCH 5/7] doc: add missing globs to doxy-api.conf.in Marat Khalili ` (3 subsequent siblings) 7 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-02 20:00 UTC (permalink / raw) To: Long Li, Wei Hu; +Cc: dev, thomas, bruce.richardson This file contained multiple doxygen issues that prevented successful documentation build (missing, extra, misspelt parameter names etc). It was not discovered previously because the driver despite the presence of public headers was not included in the documentation build. Fix invalid doxygen parameters annotations. Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- drivers/bus/vmbus/rte_bus_vmbus.h | 33 +++++++++++++++++++------------ 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/drivers/bus/vmbus/rte_bus_vmbus.h b/drivers/bus/vmbus/rte_bus_vmbus.h index 2e9898ed7fb6..7f3ebd823201 100644 --- a/drivers/bus/vmbus/rte_bus_vmbus.h +++ b/drivers/bus/vmbus/rte_bus_vmbus.h @@ -111,7 +111,7 @@ int rte_vmbus_max_channels(const struct rte_vmbus_device *device); * * @param primary * A pointer to primary VMBUS channel - * @param chan + * @param new_chan * A pointer to a secondary VMBUS channel pointer that will be filled. * @return * - 0 Success; channel opened. @@ -158,6 +158,8 @@ bool rte_vmbus_chan_rx_empty(const struct vmbus_channel *channel); /** * Send the specified buffer on the given channel * + * @param dev + * A pointer to a rte_vmbus_device structure describing the device * @param channel * Pointer to vmbus_channel structure. * @param type @@ -184,7 +186,9 @@ int rte_vmbus_chan_send(struct rte_vmbus_device *dev, /** * Explicitly signal host that data is available * - * @param + * @param dev + * A pointer to a rte_vmbus_device structure describing the device + * @param channel * Pointer to vmbus_channel structure. * * Used when batching multiple sends and only signaling host @@ -203,11 +207,10 @@ struct iova_list { /** * Send a scattered buffer on the given channel * + * @param dev + * A pointer to a rte_vmbus_device structure describing the device * @param channel * Pointer to vmbus_channel structure. - * @param type - * Type of packet that is being send e.g. negotiate, time - * packet etc. * @param gpa * Array of buffers to send * @param gpacnt @@ -218,8 +221,6 @@ struct iova_list { * Maximum size of what the buffer will hold * @param xact * Identifier of the request - * @param flags - * Message type inband, rxbuf, gpa * @param need_sig * Is host signal tx is required (optional) * @@ -234,13 +235,15 @@ int rte_vmbus_chan_send_sglist(struct rte_vmbus_device *dev, * Receive response to request on the given channel * skips the channel header. * - * @param channel + * @param dev + * A pointer to a rte_vmbus_device structure describing the device + * @param chan * Pointer to vmbus_channel structure. * @param data * Pointer to the buffer you want to receive the data into. * @param len * Pointer to size of receive buffer (in/out) - * @param + * @param request_id * Pointer to received transaction_id * @return * On success, returns 0 @@ -255,7 +258,7 @@ int rte_vmbus_chan_recv(struct rte_vmbus_device *dev, * Receive response to request on the given channel * includes the channel header. * - * @param channel + * @param chan * Pointer to vmbus_channel structure. * @param data * Pointer to the buffer you want to receive the data into. @@ -272,7 +275,9 @@ int rte_vmbus_chan_recv_raw(struct vmbus_channel *chan, * Notify host of bytes read (after recv_raw) * Signals host if required. * - * @param channel + * @param dev + * A pointer to a rte_vmbus_device structure describing the device + * @param chan * Pointer to vmbus_channel structure. * @param bytes_read * Number of bytes read since last signal @@ -284,7 +289,7 @@ void rte_vmbus_chan_signal_read(struct rte_vmbus_device *dev, /** * Determine sub channel index of the given channel * - * @param channel + * @param chan * Pointer to vmbus_channel structure. * @return * Sub channel index (0 for primary) @@ -309,7 +314,9 @@ void rte_vmbus_set_latency(const struct rte_vmbus_device *dev, /** * For debug dump contents of ring buffer. * - * @param channel + * @param f + * Output file to dump to. + * @param chan * Pointer to vmbus_channel structure. */ void rte_vmbus_chan_dump(FILE *f, const struct vmbus_channel *chan); -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH 5/7] doc: add missing globs to doxy-api.conf.in 2026-07-02 20:00 ` [PATCH 0/7] doc: build for all public headers Marat Khalili ` (3 preceding siblings ...) 2026-07-02 20:00 ` [PATCH 4/7] doc: fix typos in rte_bus_vmbus.h Marat Khalili @ 2026-07-02 20:00 ` Marat Khalili 2026-07-02 20:00 ` [PATCH 6/7] doc: add missing drivers " Marat Khalili ` (2 subsequent siblings) 7 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-02 20:00 UTC (permalink / raw) Cc: dev, thomas, bruce.richardson Public headers starting from `cmdline` (except for `cmdline.h` itself) and `bpf_def.h` were not previously included in the documentation build. Add missing file patterns (globs) to include all public headers. Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- doc/api/doxy-api.conf.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/api/doxy-api.conf.in b/doc/api/doxy-api.conf.in index bedd94468150..2cb152d6db98 100644 --- a/doc/api/doxy-api.conf.in +++ b/doc/api/doxy-api.conf.in @@ -88,7 +88,8 @@ INPUT = @TOPDIR@/doc/api/doxy-api-index.md \ @TOPDIR@/lib/vhost INPUT += @API_EXAMPLES@ FILE_PATTERNS = rte_*.h \ - cmdline.h + cmdline*.h \ + bpf_def.h PREDEFINED = __DOXYGEN__ \ RTE_ATOMIC \ RTE_HAS_CPUSET \ -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH 6/7] doc: add missing drivers to doxy-api.conf.in 2026-07-02 20:00 ` [PATCH 0/7] doc: build for all public headers Marat Khalili ` (4 preceding siblings ...) 2026-07-02 20:00 ` [PATCH 5/7] doc: add missing globs to doxy-api.conf.in Marat Khalili @ 2026-07-02 20:00 ` Marat Khalili 2026-07-02 20:00 ` [PATCH 7/7] doc: add missing headers to doxy-api-index.md Marat Khalili 2026-07-06 10:52 ` [PATCH v2 0/7] doc: build for all public headers Marat Khalili 7 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-02 20:00 UTC (permalink / raw) Cc: dev, thomas, bruce.richardson Make sure all drivers declaring public headers are added to `doxy-api.conf.in` to trigger documentation generation. Sort them. The only driver still omitted is cnxk_bphy since it needs writing multiple new doxygen descriptions which could not be done on the spot (tracked by bug 1962 in bugzilla). Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- doc/api/doxy-api.conf.in | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/doc/api/doxy-api.conf.in b/doc/api/doxy-api.conf.in index 2cb152d6db98..1620027215a9 100644 --- a/doc/api/doxy-api.conf.in +++ b/doc/api/doxy-api.conf.in @@ -5,15 +5,20 @@ PROJECT_NAME = DPDK PROJECT_NUMBER = @VERSION@ USE_MDFILE_AS_MAINPAGE = @TOPDIR@/doc/api/doxy-api-index.md INPUT = @TOPDIR@/doc/api/doxy-api-index.md \ + @TOPDIR@/drivers/baseband/acc \ + @TOPDIR@/drivers/baseband/fpga_5gnr_fec \ + @TOPDIR@/drivers/bus/pci \ @TOPDIR@/drivers/bus/vdev \ + @TOPDIR@/drivers/bus/vmbus \ @TOPDIR@/drivers/common/dpaax \ @TOPDIR@/drivers/crypto/cnxk \ @TOPDIR@/drivers/crypto/scheduler \ - @TOPDIR@/drivers/event/dlb2 \ @TOPDIR@/drivers/event/cnxk \ + @TOPDIR@/drivers/event/dlb2 \ @TOPDIR@/drivers/mempool/cnxk \ @TOPDIR@/drivers/mempool/dpaa2 \ @TOPDIR@/drivers/net/ark \ + @TOPDIR@/drivers/net/avp \ @TOPDIR@/drivers/net/bnxt \ @TOPDIR@/drivers/net/bonding \ @TOPDIR@/drivers/net/cnxk \ @@ -23,9 +28,16 @@ INPUT = @TOPDIR@/doc/api/doxy-api-index.md \ @TOPDIR@/drivers/net/intel/iavf \ @TOPDIR@/drivers/net/intel/ixgbe \ @TOPDIR@/drivers/net/mlx5 \ + @TOPDIR@/drivers/net/ntnic \ + @TOPDIR@/drivers/net/ring \ @TOPDIR@/drivers/net/softnic \ + @TOPDIR@/drivers/net/txgbe \ + @TOPDIR@/drivers/net/vhost \ + @TOPDIR@/drivers/power/kvm_vm \ + @TOPDIR@/drivers/raw/cnxk_gpio \ @TOPDIR@/drivers/raw/dpaa2_cmdif \ @TOPDIR@/drivers/raw/ifpga \ + @TOPDIR@/drivers/raw/ntb \ @TOPDIR@/lib/eal/include \ @TOPDIR@/lib/eal/include/generic \ @TOPDIR@/lib/acl \ -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH 7/7] doc: add missing headers to doxy-api-index.md 2026-07-02 20:00 ` [PATCH 0/7] doc: build for all public headers Marat Khalili ` (5 preceding siblings ...) 2026-07-02 20:00 ` [PATCH 6/7] doc: add missing drivers " Marat Khalili @ 2026-07-02 20:00 ` Marat Khalili 2026-07-06 10:52 ` [PATCH v2 0/7] doc: build for all public headers Marat Khalili 7 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-02 20:00 UTC (permalink / raw) Cc: dev, thomas, bruce.richardson Make sure all public headers are listed in `doxy-api-index.md` to be reachable in HTML version. Presumably each of them should contain at least a general file description, though this is not checked now. The only header still omitted is rte_pmd_bphy.h since it needs writing multiple new doxygen descriptions which could not be done on the spot, so it is excluded from the build (tracked by bug 1962 in bugzilla). Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- doc/api/doxy-api-index.md | 116 +++++++++++++++++++++++++++++++++----- 1 file changed, 102 insertions(+), 14 deletions(-) diff --git a/doc/api/doxy-api-index.md b/doc/api/doxy-api-index.md index 929604211946..db7aeccd4e30 100644 --- a/doc/api/doxy-api-index.md +++ b/doc/api/doxy-api-index.md @@ -9,14 +9,24 @@ API The public API headers are grouped by topics: - **device**: + [bus](@ref rte_bus.h), [dev](@ref rte_dev.h), [ethdev](@ref rte_ethdev.h), + [cman](@ref rte_cman.h), + [ethdev trace fp](@ref rte_ethdev_trace_fp.h), + [dev info](@ref rte_dev_info.h), [ethctrl](@ref rte_eth_ctrl.h), [rte_flow](@ref rte_flow.h), [rte_tm](@ref rte_tm.h), [rte_mtr](@ref rte_mtr.h), [bbdev](@ref rte_bbdev.h), + [bbdev op](@ref rte_bbdev_op.h), + [bbdev trace fp](@ref rte_bbdev_trace_fp.h), [cryptodev](@ref rte_cryptodev.h), + [crypto](@ref rte_crypto.h), + [crypto sym](@ref rte_crypto_sym.h), + [crypto asym](@ref rte_crypto_asym.h), + [cryptodev trace fp](@ref rte_cryptodev_trace_fp.h), [security](@ref rte_security.h), [compressdev](@ref rte_compressdev.h), [compress](@ref rte_comp.h), @@ -25,6 +35,8 @@ The public API headers are grouped by topics: [dmadev](@ref rte_dmadev.h), [gpudev](@ref rte_gpudev.h), [eventdev](@ref rte_eventdev.h), + [event ring](@ref rte_event_ring.h), + [eventdev trace fp](@ref rte_eventdev_trace_fp.h), [event_eth_rx_adapter](@ref rte_event_eth_rx_adapter.h), [event_eth_tx_adapter](@ref rte_event_eth_tx_adapter.h), [event_timer_adapter](@ref rte_event_timer_adapter.h), @@ -33,17 +45,27 @@ The public API headers are grouped by topics: [event_vector_adapter](@ref rte_event_vector_adapter.h), [rawdev](@ref rte_rawdev.h), [metrics](@ref rte_metrics.h), + [metrics telemetry](@ref rte_metrics_telemetry.h), [bitrate](@ref rte_bitrate.h), [latency](@ref rte_latencystats.h), [devargs](@ref rte_devargs.h), [PCI](@ref rte_pci.h), + [PCI dev feature defs](@ref rte_pci_dev_feature_defs.h), + [PCI dev features](@ref rte_pci_dev_features.h), + [bus PCI](@ref rte_bus_pci.h), [vdev](@ref rte_bus_vdev.h), + [vmbus](@ref rte_bus_vmbus.h), + [vmbus reg](@ref rte_vmbus_reg.h), [vfio](@ref rte_vfio.h) - **device specific**: [softnic](@ref rte_eth_softnic.h), [bond](@ref rte_eth_bond.h), + [bond 8023ad](@ref rte_eth_bond_8023ad.h), [vhost](@ref rte_vhost.h), + [vhost async](@ref rte_vhost_async.h), + [vhost crypto](@ref rte_vhost_crypto.h), + [eth vhost](@ref rte_eth_vhost.h), [vdpa](@ref rte_vdpa.h), [ixgbe](@ref rte_pmd_ixgbe.h), [i40e](@ref rte_pmd_i40e.h), @@ -53,6 +75,7 @@ The public API headers are grouped by topics: [cnxk_crypto](@ref rte_pmd_cnxk_crypto.h), [cnxk_eventdev](@ref rte_pmd_cnxk_eventdev.h), [cnxk_mempool](@ref rte_pmd_cnxk_mempool.h), + [cnxk gpio](@ref rte_pmd_cnxk_gpio.h), [dpaa](@ref rte_pmd_dpaa.h), [dpaa2](@ref rte_pmd_dpaa2.h), [mlx5](@ref rte_pmd_mlx5.h), @@ -60,25 +83,40 @@ The public API headers are grouped by topics: [dpaa2_cmdif](@ref rte_pmd_dpaa2_cmdif.h), [dpaax_qdma](@ref rte_pmd_dpaax_qdma.h), [crypto_scheduler](@ref rte_cryptodev_scheduler.h), + [crypto scheduler operations](@ref rte_cryptodev_scheduler_operations.h), [dlb2](@ref rte_pmd_dlb2.h), - [ifpga](@ref rte_pmd_ifpga.h) + [ifpga](@ref rte_pmd_ifpga.h), + [avp common](@ref rte_avp_common.h), + [avp fifo](@ref rte_avp_fifo.h), + [ntnic](@ref rte_pmd_ntnic.h), + [ring](@ref rte_eth_ring.h), + [txgbe](@ref rte_pmd_txgbe.h), + [ntb](@ref rte_pmd_ntb.h), + [acc cfg](@ref rte_acc_cfg.h), + [acc common cfg](@ref rte_acc_common_cfg.h), + [fpga 5gnr fec](@ref rte_pmd_fpga_5gnr_fec.h) - **memory**: [per-lcore](@ref rte_per_lcore.h), [lcore variables](@ref rte_lcore_var.h), + [EAL memconfig](@ref rte_eal_memconfig.h), [memseg](@ref rte_memory.h), [memzone](@ref rte_memzone.h), [mempool](@ref rte_mempool.h), + [mempool trace fp](@ref rte_mempool_trace_fp.h), [malloc](@ref rte_malloc.h), [memcpy](@ref rte_memcpy.h) - **timers**: [cycles](@ref rte_cycles.h), + [time](@ref rte_time.h), [timer](@ref rte_timer.h), [alarm](@ref rte_alarm.h) - **locks**: [atomic](@ref rte_atomic.h), + [stdatomic](@ref rte_stdatomic.h), + [lock annotations](@ref rte_lock_annotations.h), [mcslock](@ref rte_mcslock.h), [pflock](@ref rte_pflock.h), [rwlock](@ref rte_rwlock.h), @@ -103,13 +141,18 @@ The public API headers are grouped by topics: [launch](@ref rte_launch.h), [lcore](@ref rte_lcore.h), [service cores](@ref rte_service.h), + [service component](@ref rte_service_component.h), [keepalive](@ref rte_keepalive.h), [power/freq](@ref rte_power_cpufreq.h), [power/uncore](@ref rte_power_uncore.h), - [PMD power](@ref rte_power_pmd_mgmt.h) + [PMD power](@ref rte_power_pmd_mgmt.h), + [power guest channel](@ref rte_power_guest_channel.h), + [power qos](@ref rte_power_qos.h) - **layers**: [ethernet](@ref rte_ether.h), + [net](@ref rte_net.h), + [net CRC](@ref rte_net_crc.h), [MACsec](@ref rte_macsec.h), [ARP](@ref rte_arp.h), [HIGIG](@ref rte_higig.h), @@ -119,6 +162,7 @@ The public API headers are grouped by topics: [IPsec group](@ref rte_ipsec_group.h), [IPsec SA](@ref rte_ipsec_sa.h), [IPsec SAD](@ref rte_ipsec_sad.h), + [IP](@ref rte_ip.h), [IPv4](@ref rte_ip4.h), [IPv6](@ref rte_ip6.h), [frag/reass](@ref rte_ip_frag.h), @@ -139,12 +183,15 @@ The public API headers are grouped by topics: [PDCP](@ref rte_pdcp.h), [L2TPv2](@ref rte_l2tpv2.h), [PPP](@ref rte_ppp.h), - [IB](@ref rte_ib.h) + [IB](@ref rte_ib.h), + [PTP](@ref rte_ptp.h) - **QoS**: [metering](@ref rte_meter.h), [scheduler](@ref rte_sched.h), - [RED congestion](@ref rte_red.h) + [sched common](@ref rte_sched_common.h), + [RED congestion](@ref rte_red.h), + [PIE](@ref rte_pie.h) - **routing**: [LPM IPv4 route](@ref rte_lpm.h), @@ -168,18 +215,26 @@ The public API headers are grouped by topics: [distributor](@ref rte_distributor.h), [EFD](@ref rte_efd.h), [ACL](@ref rte_acl.h), + [ACL osdep](@ref rte_acl_osdep.h), [member](@ref rte_member.h), - [BPF](@ref rte_bpf.h) + [BPF](@ref rte_bpf.h), + [BPF def](@ref bpf_def.h), + [BPF ethdev](@ref rte_bpf_ethdev.h) - **containers**: [mbuf](@ref rte_mbuf.h), + [mbuf core](@ref rte_mbuf_core.h), + [mbuf ptype](@ref rte_mbuf_ptype.h), + [mbuf dyn](@ref rte_mbuf_dyn.h), + [mbuf history](@ref rte_mbuf_history.h), [mbuf pool ops](@ref rte_mbuf_pool_ops.h), [ring](@ref rte_ring.h), [soring](@ref rte_soring.h), [stack](@ref rte_stack.h), [tailq](@ref rte_tailq.h), [bitset](@ref rte_bitset.h), - [bitmap](@ref rte_bitmap.h) + [bitmap](@ref rte_bitmap.h), + [fbarray](@ref rte_fbarray.h) - **packet framework**: * [port](@ref rte_port.h): @@ -188,21 +243,28 @@ The public API headers are grouped by topics: [frag](@ref rte_port_frag.h), [reass](@ref rte_port_ras.h), [sched](@ref rte_port_sched.h), - [src/sink](@ref rte_port_source_sink.h) + [src/sink](@ref rte_port_source_sink.h), + [fd](@ref rte_port_fd.h), + [sym crypto](@ref rte_port_sym_crypto.h), + [eventdev](@ref rte_port_eventdev.h) * [table](@ref rte_table.h): [lpm IPv4](@ref rte_table_lpm.h), [lpm IPv6](@ref rte_table_lpm_ipv6.h), [ACL](@ref rte_table_acl.h), [hash](@ref rte_table_hash.h), [array](@ref rte_table_array.h), - [stub](@ref rte_table_stub.h) + [stub](@ref rte_table_stub.h), + [LRU](@ref rte_lru.h), + [hash cuckoo](@ref rte_table_hash_cuckoo.h), + [hash func](@ref rte_table_hash_func.h) * [pipeline](@ref rte_pipeline.h) [port_in_action](@ref rte_port_in_action.h) [table_action](@ref rte_table_action.h) * SWX pipeline: [control](@ref rte_swx_ctl.h), [extern](@ref rte_swx_extern.h), - [pipeline](@ref rte_swx_pipeline.h) + [pipeline](@ref rte_swx_pipeline.h), + [IPsec](@ref rte_swx_ipsec.h) * SWX port: [port](@ref rte_swx_port.h), [ethdev](@ref rte_swx_port_ethdev.h), @@ -211,8 +273,11 @@ The public API headers are grouped by topics: [src/sink](@ref rte_swx_port_source_sink.h) * SWX table: [table](@ref rte_swx_table.h), - [table_em](@ref rte_swx_table_em.h) - [table_wm](@ref rte_swx_table_wm.h) + [table_em](@ref rte_swx_table_em.h), + [table_wm](@ref rte_swx_table_wm.h), + [hash func](@ref rte_swx_hash_func.h), + [table learner](@ref rte_swx_table_learner.h), + [table selector](@ref rte_swx_table_selector.h) * [graph](@ref rte_graph.h): [graph_worker](@ref rte_graph_worker.h), [graph_feature_arc](@ref rte_graph_feature_arc.h), @@ -222,7 +287,22 @@ The public API headers are grouped by topics: [ip4_node](@ref rte_node_ip4_api.h), [ip6_node](@ref rte_node_ip6_api.h), [udp4_input_node](@ref rte_node_udp4_input_api.h), - [mbuf_dynfield](@ref rte_node_mbuf_dynfield.h) + [mbuf_dynfield](@ref rte_node_mbuf_dynfield.h), + [pkt cls api](@ref rte_node_pkt_cls_api.h) + +- **cmdline**: + [cmdline](@ref cmdline.h), + [parse](@ref cmdline_parse.h), + [parse num](@ref cmdline_parse_num.h), + [parse bool](@ref cmdline_parse_bool.h), + [parse ipaddr](@ref cmdline_parse_ipaddr.h), + [parse etheraddr](@ref cmdline_parse_etheraddr.h), + [parse string](@ref cmdline_parse_string.h), + [parse portlist](@ref cmdline_parse_portlist.h), + [rdline](@ref cmdline_rdline.h), + [vt100](@ref cmdline_vt100.h), + [socket](@ref cmdline_socket.h), + [cirbuf](@ref cmdline_cirbuf.h) - **basic**: [bitops](@ref rte_bitops.h), @@ -234,7 +314,9 @@ The public API headers are grouped by topics: [argument parsing](@ref rte_argparse.h), [ptr_compress](@ref rte_ptr_compress.h), [string](@ref rte_string_fns.h), - [thread](@ref rte_thread.h) + [thread](@ref rte_thread.h), + [reciprocal](@ref rte_reciprocal.h), + [UUID](@ref rte_uuid.h) - **debug**: [jobstats](@ref rte_jobstats.h), @@ -247,11 +329,17 @@ The public API headers are grouped by topics: [log](@ref rte_log.h), [errno](@ref rte_errno.h), [trace](@ref rte_trace.h), - [trace_point](@ref rte_trace_point.h) + [EAL trace](@ref rte_eal_trace.h), + [trace_point](@ref rte_trace_point.h), + [trace point register](@ref rte_trace_point_register.h) - **misc**: [EAL config](@ref rte_eal.h), + [class](@ref rte_class.h), [common](@ref rte_common.h), + [epoll](@ref rte_epoll.h), + [hypervisor](@ref rte_hypervisor.h), + [OS](@ref rte_os.h), [experimental APIs](@ref rte_compat.h), [version](@ref rte_version.h) -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v2 0/7] doc: build for all public headers 2026-07-02 20:00 ` [PATCH 0/7] doc: build for all public headers Marat Khalili ` (6 preceding siblings ...) 2026-07-02 20:00 ` [PATCH 7/7] doc: add missing headers to doxy-api-index.md Marat Khalili @ 2026-07-06 10:52 ` Marat Khalili 2026-07-06 10:52 ` [PATCH v2 1/7] doc: detect ignored " Marat Khalili ` (8 more replies) 7 siblings, 9 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-06 10:52 UTC (permalink / raw) Cc: dev, thomas, bruce.richardson It was noticed that not all public headers were included in the doxygen build, and once built not all files were listed in the index file serving as a point of entry for the HTML version. Bruce Richardson provided an idea and a draft implementation of the configuration-time check, which I optimized to avoid repeat grep calls and expanded to include indexing check. After all drivers and public headers were included, multiple small problems have surfaced fixes for which (with one exception covered by bug 1962) are also included in this patch set. v2: * switched from `splitlines()` to `strip('\n').split('\n')` for compatibility with older versions of meson; * rebased on fresh main and updated BPF header links in the index file; Marat Khalili (7): doc: detect ignored public headers doc: document rte_os.h doc: fix typos in rte_bus_pci.h doc: fix typos in rte_bus_vmbus.h doc: add missing globs to doxy-api.conf.in doc: add missing drivers to doxy-api.conf.in doc: add missing headers to doxy-api-index.md doc/api/doxy-api-index.md | 120 ++++++++++++++++++++++++++---- doc/api/doxy-api.conf.in | 17 ++++- drivers/bus/pci/rte_bus_pci.h | 4 +- drivers/bus/vmbus/rte_bus_vmbus.h | 33 ++++---- drivers/meson.build | 17 +++++ lib/eal/include/generic/rte_os.h | 13 ++++ lib/meson.build | 23 ++++++ meson.build | 19 +++++ 8 files changed, 214 insertions(+), 32 deletions(-) create mode 100644 lib/eal/include/generic/rte_os.h -- 2.43.0 ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH v2 1/7] doc: detect ignored public headers 2026-07-06 10:52 ` [PATCH v2 0/7] doc: build for all public headers Marat Khalili @ 2026-07-06 10:52 ` Marat Khalili 2026-07-06 10:52 ` [PATCH v2 2/7] doc: document rte_os.h Marat Khalili ` (7 subsequent siblings) 8 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-06 10:52 UTC (permalink / raw) To: Bruce Richardson; +Cc: dev, thomas Some public headers were omitted from doc/api/doxy-api-index.md and/or doc/api/doxy-api.conf.in. Add checks to meson configuration detecting and warning about these. Suggested-by: Bruce Richardson <bruce.richardson@intel.com> Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- drivers/meson.build | 17 +++++++++++++++++ lib/meson.build | 23 +++++++++++++++++++++++ meson.build | 19 +++++++++++++++++++ 3 files changed, 59 insertions(+) diff --git a/drivers/meson.build b/drivers/meson.build index 102a8262e588..09c063660291 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -287,6 +287,23 @@ foreach subpath:subdirs dpdk_headers += headers dpdk_drivers_headers += driver_sdk_headers + if check_docs and headers.length() > 0 + foreach h:headers + hname = fs.name(h) + if not hname.startswith('rte_') + warning('public header @0@ name does not start with "rte_"'.format(h)) + endif + if hname not in doc_indexed_headers + warning('public header @0@ is not listed in @1@'.format(h, doc_index_path)) + endif + endforeach + doc_dir = 'drivers/' + drv_path + if doc_dir not in doc_built_dirs + warning('public header directory @0@ is not listed in @1@'.format(doc_dir, + doc_build_path)) + endif + endif + if headers.length() > 0 dpdk_includes += include_directories(drv_path) endif diff --git a/lib/meson.build b/lib/meson.build index af5c160cb800..ff5c474d2cc3 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -209,6 +209,29 @@ foreach l:libraries dpdk_indirect_headers += indirect_headers dpdk_drivers_headers += driver_sdk_headers + if check_docs and headers.length() > 0 + foreach h:headers + hname = fs.name(h) + if not (hname.startswith('rte_') or hname.startswith('cmdline')) + warning('public header @0@ name does not start with "rte_" or "cmdline"'.format(h)) + endif + if hname not in doc_indexed_headers + warning('public header @0@ is not listed in @1@'.format(h, doc_index_path)) + endif + endforeach + if l == 'eal' + doc_dirs = ['lib/eal/include', 'lib/eal/include/generic'] + else + doc_dirs = ['lib/' + l] + endif + foreach d:doc_dirs + if d not in doc_built_dirs + warning('public header directory @0@ is not listed in @1@'.format(doc_dir, + doc_build_path)) + endif + endforeach + endif + libname = 'rte_' + name includes += include_directories(l) dpdk_includes += include_directories(l) diff --git a/meson.build b/meson.build index b01010ffa076..2488c54f1b17 100644 --- a/meson.build +++ b/meson.build @@ -88,6 +88,25 @@ if is_linux global_inc += include_directories('kernel/linux') endif +# on linux, try to check that documentation sources are correctly built and indexed +check_docs = is_linux and meson.version().version_compare('>= 0.60.0') + +if check_docs + doc_build_path = 'doc/api/doxy-api.conf.in' + doc_build_file = dpdk_source_root / doc_build_path + doc_built_dirs = run_command('sed', '--regexp-extended', '--quiet', + # Extract and print the file path immediately following @TOPDIR@/ . + 's#^(INPUT *=)? *@TOPDIR@/([^ ]*)( .*|\\\\|)$#\\2#p', + doc_build_file, check: true).stdout().strip('\n').split('\n') + + doc_index_path = 'doc/api/doxy-api-index.md' + doc_index_file = dpdk_source_root / doc_index_path + doc_indexed_headers = run_command('sed', '--regexp-extended', '--quiet', + # Extract and print the (@ref ...) contents. + 's#^.*\\(@ref ([^)]*)\\).*$#\\1#p', + doc_index_file, check: true).stdout().strip('\n').split('\n') +endif + # build libs and drivers subdir('lib') subdir('drivers') -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v2 2/7] doc: document rte_os.h 2026-07-06 10:52 ` [PATCH v2 0/7] doc: build for all public headers Marat Khalili 2026-07-06 10:52 ` [PATCH v2 1/7] doc: detect ignored " Marat Khalili @ 2026-07-06 10:52 ` Marat Khalili 2026-07-06 10:52 ` [PATCH v2 3/7] doc: fix typos in rte_bus_pci.h Marat Khalili ` (6 subsequent siblings) 8 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-06 10:52 UTC (permalink / raw) Cc: dev, thomas, bruce.richardson File rte_os.h did not previously have a generic version to generate documentation from, but its OS-specific version was installed. Since it is now verified that documentation is generated for all public headers, add a generic stub containing description of this file. Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- lib/eal/include/generic/rte_os.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 lib/eal/include/generic/rte_os.h diff --git a/lib/eal/include/generic/rte_os.h b/lib/eal/include/generic/rte_os.h new file mode 100644 index 000000000000..aa96321aefc4 --- /dev/null +++ b/lib/eal/include/generic/rte_os.h @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2010-2019 Intel Corporation + */ + +#ifndef _RTE_OS_H_ +#define _RTE_OS_H_ + +/** + * This header should contain any definition + * which is not supported natively or named differently in the local OS. + */ + +#endif /* _RTE_OS_H_ */ -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v2 3/7] doc: fix typos in rte_bus_pci.h 2026-07-06 10:52 ` [PATCH v2 0/7] doc: build for all public headers Marat Khalili 2026-07-06 10:52 ` [PATCH v2 1/7] doc: detect ignored " Marat Khalili 2026-07-06 10:52 ` [PATCH v2 2/7] doc: document rte_os.h Marat Khalili @ 2026-07-06 10:52 ` Marat Khalili 2026-07-06 10:52 ` [PATCH v2 4/7] doc: fix typos in rte_bus_vmbus.h Marat Khalili ` (5 subsequent siblings) 8 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-06 10:52 UTC (permalink / raw) To: Chenbo Xia, Nipun Gupta; +Cc: dev, thomas, bruce.richardson This file contained a couple of doxygen typos that prevented successful documentation build. It was not discovered previously because the driver despite the presence of public headers was not included in the documentation build. Fix doxygen typos (replace `@bar` with `@p bar`). Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- drivers/bus/pci/rte_bus_pci.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/bus/pci/rte_bus_pci.h b/drivers/bus/pci/rte_bus_pci.h index 19a7b15b99fd..22a7beb1fc4c 100644 --- a/drivers/bus/pci/rte_bus_pci.h +++ b/drivers/bus/pci/rte_bus_pci.h @@ -222,7 +222,7 @@ int rte_pci_write_config(const struct rte_pci_device *device, * @param len * The length of the data buffer. * @param offset - * The offset into MMIO space described by @bar. + * The offset into MMIO space described by @p bar. * @return * Number of bytes read on success, negative on error. */ @@ -246,7 +246,7 @@ int rte_pci_mmio_read(const struct rte_pci_device *device, int bar, * @param len * The length of the data buffer. * @param offset - * The offset into MMIO space described by @bar. + * The offset into MMIO space described by @p bar. * @return * Number of bytes written on success, negative on error. */ -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v2 4/7] doc: fix typos in rte_bus_vmbus.h 2026-07-06 10:52 ` [PATCH v2 0/7] doc: build for all public headers Marat Khalili ` (2 preceding siblings ...) 2026-07-06 10:52 ` [PATCH v2 3/7] doc: fix typos in rte_bus_pci.h Marat Khalili @ 2026-07-06 10:52 ` Marat Khalili 2026-07-06 10:52 ` [PATCH v2 5/7] doc: add missing globs to doxy-api.conf.in Marat Khalili ` (4 subsequent siblings) 8 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-06 10:52 UTC (permalink / raw) To: Long Li, Wei Hu; +Cc: dev, thomas, bruce.richardson This file contained multiple doxygen issues that prevented successful documentation build (missing, extra, misspelt parameter names etc). It was not discovered previously because the driver despite the presence of public headers was not included in the documentation build. Fix invalid doxygen parameters annotations. Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- drivers/bus/vmbus/rte_bus_vmbus.h | 33 +++++++++++++++++++------------ 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/drivers/bus/vmbus/rte_bus_vmbus.h b/drivers/bus/vmbus/rte_bus_vmbus.h index 2e9898ed7fb6..7f3ebd823201 100644 --- a/drivers/bus/vmbus/rte_bus_vmbus.h +++ b/drivers/bus/vmbus/rte_bus_vmbus.h @@ -111,7 +111,7 @@ int rte_vmbus_max_channels(const struct rte_vmbus_device *device); * * @param primary * A pointer to primary VMBUS channel - * @param chan + * @param new_chan * A pointer to a secondary VMBUS channel pointer that will be filled. * @return * - 0 Success; channel opened. @@ -158,6 +158,8 @@ bool rte_vmbus_chan_rx_empty(const struct vmbus_channel *channel); /** * Send the specified buffer on the given channel * + * @param dev + * A pointer to a rte_vmbus_device structure describing the device * @param channel * Pointer to vmbus_channel structure. * @param type @@ -184,7 +186,9 @@ int rte_vmbus_chan_send(struct rte_vmbus_device *dev, /** * Explicitly signal host that data is available * - * @param + * @param dev + * A pointer to a rte_vmbus_device structure describing the device + * @param channel * Pointer to vmbus_channel structure. * * Used when batching multiple sends and only signaling host @@ -203,11 +207,10 @@ struct iova_list { /** * Send a scattered buffer on the given channel * + * @param dev + * A pointer to a rte_vmbus_device structure describing the device * @param channel * Pointer to vmbus_channel structure. - * @param type - * Type of packet that is being send e.g. negotiate, time - * packet etc. * @param gpa * Array of buffers to send * @param gpacnt @@ -218,8 +221,6 @@ struct iova_list { * Maximum size of what the buffer will hold * @param xact * Identifier of the request - * @param flags - * Message type inband, rxbuf, gpa * @param need_sig * Is host signal tx is required (optional) * @@ -234,13 +235,15 @@ int rte_vmbus_chan_send_sglist(struct rte_vmbus_device *dev, * Receive response to request on the given channel * skips the channel header. * - * @param channel + * @param dev + * A pointer to a rte_vmbus_device structure describing the device + * @param chan * Pointer to vmbus_channel structure. * @param data * Pointer to the buffer you want to receive the data into. * @param len * Pointer to size of receive buffer (in/out) - * @param + * @param request_id * Pointer to received transaction_id * @return * On success, returns 0 @@ -255,7 +258,7 @@ int rte_vmbus_chan_recv(struct rte_vmbus_device *dev, * Receive response to request on the given channel * includes the channel header. * - * @param channel + * @param chan * Pointer to vmbus_channel structure. * @param data * Pointer to the buffer you want to receive the data into. @@ -272,7 +275,9 @@ int rte_vmbus_chan_recv_raw(struct vmbus_channel *chan, * Notify host of bytes read (after recv_raw) * Signals host if required. * - * @param channel + * @param dev + * A pointer to a rte_vmbus_device structure describing the device + * @param chan * Pointer to vmbus_channel structure. * @param bytes_read * Number of bytes read since last signal @@ -284,7 +289,7 @@ void rte_vmbus_chan_signal_read(struct rte_vmbus_device *dev, /** * Determine sub channel index of the given channel * - * @param channel + * @param chan * Pointer to vmbus_channel structure. * @return * Sub channel index (0 for primary) @@ -309,7 +314,9 @@ void rte_vmbus_set_latency(const struct rte_vmbus_device *dev, /** * For debug dump contents of ring buffer. * - * @param channel + * @param f + * Output file to dump to. + * @param chan * Pointer to vmbus_channel structure. */ void rte_vmbus_chan_dump(FILE *f, const struct vmbus_channel *chan); -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v2 5/7] doc: add missing globs to doxy-api.conf.in 2026-07-06 10:52 ` [PATCH v2 0/7] doc: build for all public headers Marat Khalili ` (3 preceding siblings ...) 2026-07-06 10:52 ` [PATCH v2 4/7] doc: fix typos in rte_bus_vmbus.h Marat Khalili @ 2026-07-06 10:52 ` Marat Khalili 2026-07-06 10:52 ` [PATCH v2 6/7] doc: add missing drivers " Marat Khalili ` (3 subsequent siblings) 8 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-06 10:52 UTC (permalink / raw) Cc: dev, thomas, bruce.richardson Public headers starting from `cmdline` (except for `cmdline.h` itself) and `bpf_def.h` were not previously included in the documentation build. Add missing file patterns (globs) to include all public headers. Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- doc/api/doxy-api.conf.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/api/doxy-api.conf.in b/doc/api/doxy-api.conf.in index bedd94468150..2cb152d6db98 100644 --- a/doc/api/doxy-api.conf.in +++ b/doc/api/doxy-api.conf.in @@ -88,7 +88,8 @@ INPUT = @TOPDIR@/doc/api/doxy-api-index.md \ @TOPDIR@/lib/vhost INPUT += @API_EXAMPLES@ FILE_PATTERNS = rte_*.h \ - cmdline.h + cmdline*.h \ + bpf_def.h PREDEFINED = __DOXYGEN__ \ RTE_ATOMIC \ RTE_HAS_CPUSET \ -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v2 6/7] doc: add missing drivers to doxy-api.conf.in 2026-07-06 10:52 ` [PATCH v2 0/7] doc: build for all public headers Marat Khalili ` (4 preceding siblings ...) 2026-07-06 10:52 ` [PATCH v2 5/7] doc: add missing globs to doxy-api.conf.in Marat Khalili @ 2026-07-06 10:52 ` Marat Khalili 2026-07-06 10:52 ` [PATCH v2 7/7] doc: add missing headers to doxy-api-index.md Marat Khalili ` (2 subsequent siblings) 8 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-06 10:52 UTC (permalink / raw) Cc: dev, thomas, bruce.richardson Make sure all drivers declaring public headers are added to `doxy-api.conf.in` to trigger documentation generation. Sort them. The only driver still omitted is cnxk_bphy since it needs writing multiple new doxygen descriptions which could not be done on the spot (tracked by bug 1962 in bugzilla). Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- doc/api/doxy-api.conf.in | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/doc/api/doxy-api.conf.in b/doc/api/doxy-api.conf.in index 2cb152d6db98..1620027215a9 100644 --- a/doc/api/doxy-api.conf.in +++ b/doc/api/doxy-api.conf.in @@ -5,15 +5,20 @@ PROJECT_NAME = DPDK PROJECT_NUMBER = @VERSION@ USE_MDFILE_AS_MAINPAGE = @TOPDIR@/doc/api/doxy-api-index.md INPUT = @TOPDIR@/doc/api/doxy-api-index.md \ + @TOPDIR@/drivers/baseband/acc \ + @TOPDIR@/drivers/baseband/fpga_5gnr_fec \ + @TOPDIR@/drivers/bus/pci \ @TOPDIR@/drivers/bus/vdev \ + @TOPDIR@/drivers/bus/vmbus \ @TOPDIR@/drivers/common/dpaax \ @TOPDIR@/drivers/crypto/cnxk \ @TOPDIR@/drivers/crypto/scheduler \ - @TOPDIR@/drivers/event/dlb2 \ @TOPDIR@/drivers/event/cnxk \ + @TOPDIR@/drivers/event/dlb2 \ @TOPDIR@/drivers/mempool/cnxk \ @TOPDIR@/drivers/mempool/dpaa2 \ @TOPDIR@/drivers/net/ark \ + @TOPDIR@/drivers/net/avp \ @TOPDIR@/drivers/net/bnxt \ @TOPDIR@/drivers/net/bonding \ @TOPDIR@/drivers/net/cnxk \ @@ -23,9 +28,16 @@ INPUT = @TOPDIR@/doc/api/doxy-api-index.md \ @TOPDIR@/drivers/net/intel/iavf \ @TOPDIR@/drivers/net/intel/ixgbe \ @TOPDIR@/drivers/net/mlx5 \ + @TOPDIR@/drivers/net/ntnic \ + @TOPDIR@/drivers/net/ring \ @TOPDIR@/drivers/net/softnic \ + @TOPDIR@/drivers/net/txgbe \ + @TOPDIR@/drivers/net/vhost \ + @TOPDIR@/drivers/power/kvm_vm \ + @TOPDIR@/drivers/raw/cnxk_gpio \ @TOPDIR@/drivers/raw/dpaa2_cmdif \ @TOPDIR@/drivers/raw/ifpga \ + @TOPDIR@/drivers/raw/ntb \ @TOPDIR@/lib/eal/include \ @TOPDIR@/lib/eal/include/generic \ @TOPDIR@/lib/acl \ -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v2 7/7] doc: add missing headers to doxy-api-index.md 2026-07-06 10:52 ` [PATCH v2 0/7] doc: build for all public headers Marat Khalili ` (5 preceding siblings ...) 2026-07-06 10:52 ` [PATCH v2 6/7] doc: add missing drivers " Marat Khalili @ 2026-07-06 10:52 ` Marat Khalili 2026-07-06 13:14 ` [PATCH v2 0/7] doc: build for all public headers Marat Khalili 2026-07-07 8:50 ` [PATCH v3 0/8] " Marat Khalili 8 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-06 10:52 UTC (permalink / raw) Cc: dev, thomas, bruce.richardson Make sure all public headers are listed in `doxy-api-index.md` to be reachable in HTML version. Presumably each of them should contain at least a general file description, though this is not checked now. The only header still omitted is rte_pmd_bphy.h since it needs writing multiple new doxygen descriptions which could not be done on the spot, so it is excluded from the build (tracked by bug 1962 in bugzilla). Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- doc/api/doxy-api-index.md | 120 +++++++++++++++++++++++++++++++++----- 1 file changed, 105 insertions(+), 15 deletions(-) diff --git a/doc/api/doxy-api-index.md b/doc/api/doxy-api-index.md index 929604211946..f5c084c2c5a9 100644 --- a/doc/api/doxy-api-index.md +++ b/doc/api/doxy-api-index.md @@ -9,14 +9,24 @@ API The public API headers are grouped by topics: - **device**: + [bus](@ref rte_bus.h), [dev](@ref rte_dev.h), [ethdev](@ref rte_ethdev.h), + [cman](@ref rte_cman.h), + [ethdev trace fp](@ref rte_ethdev_trace_fp.h), + [dev info](@ref rte_dev_info.h), [ethctrl](@ref rte_eth_ctrl.h), [rte_flow](@ref rte_flow.h), [rte_tm](@ref rte_tm.h), [rte_mtr](@ref rte_mtr.h), [bbdev](@ref rte_bbdev.h), + [bbdev op](@ref rte_bbdev_op.h), + [bbdev trace fp](@ref rte_bbdev_trace_fp.h), [cryptodev](@ref rte_cryptodev.h), + [crypto](@ref rte_crypto.h), + [crypto sym](@ref rte_crypto_sym.h), + [crypto asym](@ref rte_crypto_asym.h), + [cryptodev trace fp](@ref rte_cryptodev_trace_fp.h), [security](@ref rte_security.h), [compressdev](@ref rte_compressdev.h), [compress](@ref rte_comp.h), @@ -25,6 +35,8 @@ The public API headers are grouped by topics: [dmadev](@ref rte_dmadev.h), [gpudev](@ref rte_gpudev.h), [eventdev](@ref rte_eventdev.h), + [event ring](@ref rte_event_ring.h), + [eventdev trace fp](@ref rte_eventdev_trace_fp.h), [event_eth_rx_adapter](@ref rte_event_eth_rx_adapter.h), [event_eth_tx_adapter](@ref rte_event_eth_tx_adapter.h), [event_timer_adapter](@ref rte_event_timer_adapter.h), @@ -33,17 +45,27 @@ The public API headers are grouped by topics: [event_vector_adapter](@ref rte_event_vector_adapter.h), [rawdev](@ref rte_rawdev.h), [metrics](@ref rte_metrics.h), + [metrics telemetry](@ref rte_metrics_telemetry.h), [bitrate](@ref rte_bitrate.h), [latency](@ref rte_latencystats.h), [devargs](@ref rte_devargs.h), [PCI](@ref rte_pci.h), + [PCI dev feature defs](@ref rte_pci_dev_feature_defs.h), + [PCI dev features](@ref rte_pci_dev_features.h), + [bus PCI](@ref rte_bus_pci.h), [vdev](@ref rte_bus_vdev.h), + [vmbus](@ref rte_bus_vmbus.h), + [vmbus reg](@ref rte_vmbus_reg.h), [vfio](@ref rte_vfio.h) - **device specific**: [softnic](@ref rte_eth_softnic.h), [bond](@ref rte_eth_bond.h), + [bond 8023ad](@ref rte_eth_bond_8023ad.h), [vhost](@ref rte_vhost.h), + [vhost async](@ref rte_vhost_async.h), + [vhost crypto](@ref rte_vhost_crypto.h), + [eth vhost](@ref rte_eth_vhost.h), [vdpa](@ref rte_vdpa.h), [ixgbe](@ref rte_pmd_ixgbe.h), [i40e](@ref rte_pmd_i40e.h), @@ -53,6 +75,7 @@ The public API headers are grouped by topics: [cnxk_crypto](@ref rte_pmd_cnxk_crypto.h), [cnxk_eventdev](@ref rte_pmd_cnxk_eventdev.h), [cnxk_mempool](@ref rte_pmd_cnxk_mempool.h), + [cnxk gpio](@ref rte_pmd_cnxk_gpio.h), [dpaa](@ref rte_pmd_dpaa.h), [dpaa2](@ref rte_pmd_dpaa2.h), [mlx5](@ref rte_pmd_mlx5.h), @@ -60,25 +83,40 @@ The public API headers are grouped by topics: [dpaa2_cmdif](@ref rte_pmd_dpaa2_cmdif.h), [dpaax_qdma](@ref rte_pmd_dpaax_qdma.h), [crypto_scheduler](@ref rte_cryptodev_scheduler.h), + [crypto scheduler operations](@ref rte_cryptodev_scheduler_operations.h), [dlb2](@ref rte_pmd_dlb2.h), - [ifpga](@ref rte_pmd_ifpga.h) + [ifpga](@ref rte_pmd_ifpga.h), + [avp common](@ref rte_avp_common.h), + [avp fifo](@ref rte_avp_fifo.h), + [ntnic](@ref rte_pmd_ntnic.h), + [ring](@ref rte_eth_ring.h), + [txgbe](@ref rte_pmd_txgbe.h), + [ntb](@ref rte_pmd_ntb.h), + [acc cfg](@ref rte_acc_cfg.h), + [acc common cfg](@ref rte_acc_common_cfg.h), + [fpga 5gnr fec](@ref rte_pmd_fpga_5gnr_fec.h) - **memory**: [per-lcore](@ref rte_per_lcore.h), [lcore variables](@ref rte_lcore_var.h), + [EAL memconfig](@ref rte_eal_memconfig.h), [memseg](@ref rte_memory.h), [memzone](@ref rte_memzone.h), [mempool](@ref rte_mempool.h), + [mempool trace fp](@ref rte_mempool_trace_fp.h), [malloc](@ref rte_malloc.h), [memcpy](@ref rte_memcpy.h) - **timers**: [cycles](@ref rte_cycles.h), + [time](@ref rte_time.h), [timer](@ref rte_timer.h), [alarm](@ref rte_alarm.h) - **locks**: [atomic](@ref rte_atomic.h), + [stdatomic](@ref rte_stdatomic.h), + [lock annotations](@ref rte_lock_annotations.h), [mcslock](@ref rte_mcslock.h), [pflock](@ref rte_pflock.h), [rwlock](@ref rte_rwlock.h), @@ -103,13 +141,18 @@ The public API headers are grouped by topics: [launch](@ref rte_launch.h), [lcore](@ref rte_lcore.h), [service cores](@ref rte_service.h), + [service component](@ref rte_service_component.h), [keepalive](@ref rte_keepalive.h), [power/freq](@ref rte_power_cpufreq.h), [power/uncore](@ref rte_power_uncore.h), - [PMD power](@ref rte_power_pmd_mgmt.h) + [PMD power](@ref rte_power_pmd_mgmt.h), + [power guest channel](@ref rte_power_guest_channel.h), + [power qos](@ref rte_power_qos.h) - **layers**: [ethernet](@ref rte_ether.h), + [net](@ref rte_net.h), + [net CRC](@ref rte_net_crc.h), [MACsec](@ref rte_macsec.h), [ARP](@ref rte_arp.h), [HIGIG](@ref rte_higig.h), @@ -119,6 +162,7 @@ The public API headers are grouped by topics: [IPsec group](@ref rte_ipsec_group.h), [IPsec SA](@ref rte_ipsec_sa.h), [IPsec SAD](@ref rte_ipsec_sad.h), + [IP](@ref rte_ip.h), [IPv4](@ref rte_ip4.h), [IPv6](@ref rte_ip6.h), [frag/reass](@ref rte_ip_frag.h), @@ -139,12 +183,15 @@ The public API headers are grouped by topics: [PDCP](@ref rte_pdcp.h), [L2TPv2](@ref rte_l2tpv2.h), [PPP](@ref rte_ppp.h), - [IB](@ref rte_ib.h) + [IB](@ref rte_ib.h), + [PTP](@ref rte_ptp.h) - **QoS**: [metering](@ref rte_meter.h), [scheduler](@ref rte_sched.h), - [RED congestion](@ref rte_red.h) + [sched common](@ref rte_sched_common.h), + [RED congestion](@ref rte_red.h), + [PIE](@ref rte_pie.h) - **routing**: [LPM IPv4 route](@ref rte_lpm.h), @@ -168,18 +215,28 @@ The public API headers are grouped by topics: [distributor](@ref rte_distributor.h), [EFD](@ref rte_efd.h), [ACL](@ref rte_acl.h), - [member](@ref rte_member.h), - [BPF](@ref rte_bpf.h) + [ACL osdep](@ref rte_acl_osdep.h), + [member](@ref rte_member.h) + * BPF: + [load and execute](@ref rte_bpf.h), + [machine code](@ref bpf_def.h), + [port filters](@ref rte_bpf_ethdev.h), + [validate debug](@ref rte_bpf_validate_debug.h) - **containers**: [mbuf](@ref rte_mbuf.h), + [mbuf core](@ref rte_mbuf_core.h), + [mbuf ptype](@ref rte_mbuf_ptype.h), + [mbuf dyn](@ref rte_mbuf_dyn.h), + [mbuf history](@ref rte_mbuf_history.h), [mbuf pool ops](@ref rte_mbuf_pool_ops.h), [ring](@ref rte_ring.h), [soring](@ref rte_soring.h), [stack](@ref rte_stack.h), [tailq](@ref rte_tailq.h), [bitset](@ref rte_bitset.h), - [bitmap](@ref rte_bitmap.h) + [bitmap](@ref rte_bitmap.h), + [fbarray](@ref rte_fbarray.h) - **packet framework**: * [port](@ref rte_port.h): @@ -188,21 +245,28 @@ The public API headers are grouped by topics: [frag](@ref rte_port_frag.h), [reass](@ref rte_port_ras.h), [sched](@ref rte_port_sched.h), - [src/sink](@ref rte_port_source_sink.h) + [src/sink](@ref rte_port_source_sink.h), + [fd](@ref rte_port_fd.h), + [sym crypto](@ref rte_port_sym_crypto.h), + [eventdev](@ref rte_port_eventdev.h) * [table](@ref rte_table.h): [lpm IPv4](@ref rte_table_lpm.h), [lpm IPv6](@ref rte_table_lpm_ipv6.h), [ACL](@ref rte_table_acl.h), [hash](@ref rte_table_hash.h), [array](@ref rte_table_array.h), - [stub](@ref rte_table_stub.h) + [stub](@ref rte_table_stub.h), + [LRU](@ref rte_lru.h), + [hash cuckoo](@ref rte_table_hash_cuckoo.h), + [hash func](@ref rte_table_hash_func.h) * [pipeline](@ref rte_pipeline.h) [port_in_action](@ref rte_port_in_action.h) [table_action](@ref rte_table_action.h) * SWX pipeline: [control](@ref rte_swx_ctl.h), [extern](@ref rte_swx_extern.h), - [pipeline](@ref rte_swx_pipeline.h) + [pipeline](@ref rte_swx_pipeline.h), + [IPsec](@ref rte_swx_ipsec.h) * SWX port: [port](@ref rte_swx_port.h), [ethdev](@ref rte_swx_port_ethdev.h), @@ -211,8 +275,11 @@ The public API headers are grouped by topics: [src/sink](@ref rte_swx_port_source_sink.h) * SWX table: [table](@ref rte_swx_table.h), - [table_em](@ref rte_swx_table_em.h) - [table_wm](@ref rte_swx_table_wm.h) + [table_em](@ref rte_swx_table_em.h), + [table_wm](@ref rte_swx_table_wm.h), + [hash func](@ref rte_swx_hash_func.h), + [table learner](@ref rte_swx_table_learner.h), + [table selector](@ref rte_swx_table_selector.h) * [graph](@ref rte_graph.h): [graph_worker](@ref rte_graph_worker.h), [graph_feature_arc](@ref rte_graph_feature_arc.h), @@ -222,7 +289,22 @@ The public API headers are grouped by topics: [ip4_node](@ref rte_node_ip4_api.h), [ip6_node](@ref rte_node_ip6_api.h), [udp4_input_node](@ref rte_node_udp4_input_api.h), - [mbuf_dynfield](@ref rte_node_mbuf_dynfield.h) + [mbuf_dynfield](@ref rte_node_mbuf_dynfield.h), + [pkt cls api](@ref rte_node_pkt_cls_api.h) + +- **cmdline**: + [cmdline](@ref cmdline.h), + [parse](@ref cmdline_parse.h), + [parse num](@ref cmdline_parse_num.h), + [parse bool](@ref cmdline_parse_bool.h), + [parse ipaddr](@ref cmdline_parse_ipaddr.h), + [parse etheraddr](@ref cmdline_parse_etheraddr.h), + [parse string](@ref cmdline_parse_string.h), + [parse portlist](@ref cmdline_parse_portlist.h), + [rdline](@ref cmdline_rdline.h), + [vt100](@ref cmdline_vt100.h), + [socket](@ref cmdline_socket.h), + [cirbuf](@ref cmdline_cirbuf.h) - **basic**: [bitops](@ref rte_bitops.h), @@ -234,7 +316,9 @@ The public API headers are grouped by topics: [argument parsing](@ref rte_argparse.h), [ptr_compress](@ref rte_ptr_compress.h), [string](@ref rte_string_fns.h), - [thread](@ref rte_thread.h) + [thread](@ref rte_thread.h), + [reciprocal](@ref rte_reciprocal.h), + [UUID](@ref rte_uuid.h) - **debug**: [jobstats](@ref rte_jobstats.h), @@ -247,11 +331,17 @@ The public API headers are grouped by topics: [log](@ref rte_log.h), [errno](@ref rte_errno.h), [trace](@ref rte_trace.h), - [trace_point](@ref rte_trace_point.h) + [EAL trace](@ref rte_eal_trace.h), + [trace_point](@ref rte_trace_point.h), + [trace point register](@ref rte_trace_point_register.h) - **misc**: [EAL config](@ref rte_eal.h), + [class](@ref rte_class.h), [common](@ref rte_common.h), + [epoll](@ref rte_epoll.h), + [hypervisor](@ref rte_hypervisor.h), + [OS](@ref rte_os.h), [experimental APIs](@ref rte_compat.h), [version](@ref rte_version.h) -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* RE: [PATCH v2 0/7] doc: build for all public headers 2026-07-06 10:52 ` [PATCH v2 0/7] doc: build for all public headers Marat Khalili ` (6 preceding siblings ...) 2026-07-06 10:52 ` [PATCH v2 7/7] doc: add missing headers to doxy-api-index.md Marat Khalili @ 2026-07-06 13:14 ` Marat Khalili 2026-07-07 8:50 ` [PATCH v3 0/8] " Marat Khalili 8 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-06 13:14 UTC (permalink / raw) To: Marat Khalili Cc: dev@dpdk.org, thomas@monjalon.net, bruce.richardson@intel.com > Marat Khalili (7): > doc: detect ignored public headers > doc: document rte_os.h > doc: fix typos in rte_bus_pci.h > doc: fix typos in rte_bus_vmbus.h Newer version of doxygen in CI discovered additional issues in rte_avp_common.h, will address in v3 tomorrow. > doc: add missing globs to doxy-api.conf.in > doc: add missing drivers to doxy-api.conf.in > doc: add missing headers to doxy-api-index.md ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH v3 0/8] doc: build for all public headers 2026-07-06 10:52 ` [PATCH v2 0/7] doc: build for all public headers Marat Khalili ` (7 preceding siblings ...) 2026-07-06 13:14 ` [PATCH v2 0/7] doc: build for all public headers Marat Khalili @ 2026-07-07 8:50 ` Marat Khalili 2026-07-07 8:50 ` [PATCH v3 1/8] doc: detect ignored " Marat Khalili ` (8 more replies) 8 siblings, 9 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-07 8:50 UTC (permalink / raw) Cc: dev, thomas, bruce.richardson It was noticed that not all public headers were included in the doxygen build, and once built not all files were listed in the index file serving as a point of entry for the HTML version. Bruce Richardson provided an idea and a draft implementation of the configuration-time check, which I optimized to avoid repeat grep calls and expanded to include indexing check. After all drivers and public headers were included, multiple small problems have surfaced fixes for which (with one exception covered by bug 1962) are also included in this patch set. v3: * added fixes for typos in rte_avp_common.h that tripped doxygen 1.9+; * fixed variable name typo in lib/meson.build introduced in v1; v2: * switched from `splitlines()` to `strip('\n').split('\n')` for compatibility with older versions of meson; * rebased on fresh main and updated BPF header links in the index file (note: following other examples BPF links are formatted as a sublist); Marat Khalili (8): doc: detect ignored public headers doc: document rte_os.h doc: fix typos in rte_avp_common.h doc: fix typos in rte_bus_pci.h doc: fix typos in rte_bus_vmbus.h doc: add missing globs to doxy-api.conf.in doc: add missing drivers to doxy-api.conf.in doc: add missing headers to doxy-api-index.md doc/api/doxy-api-index.md | 120 ++++++++++++++++++++++++++---- doc/api/doxy-api.conf.in | 17 ++++- drivers/bus/pci/rte_bus_pci.h | 4 +- drivers/bus/vmbus/rte_bus_vmbus.h | 33 ++++---- drivers/meson.build | 17 +++++ drivers/net/avp/rte_avp_common.h | 10 +-- lib/eal/include/generic/rte_os.h | 13 ++++ lib/meson.build | 23 ++++++ meson.build | 19 +++++ 9 files changed, 219 insertions(+), 37 deletions(-) create mode 100644 lib/eal/include/generic/rte_os.h -- 2.43.0 ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH v3 1/8] doc: detect ignored public headers 2026-07-07 8:50 ` [PATCH v3 0/8] " Marat Khalili @ 2026-07-07 8:50 ` Marat Khalili 2026-07-07 8:50 ` [PATCH v3 2/8] doc: document rte_os.h Marat Khalili ` (7 subsequent siblings) 8 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-07 8:50 UTC (permalink / raw) To: Bruce Richardson; +Cc: dev, thomas Some public headers were omitted from doc/api/doxy-api-index.md and/or doc/api/doxy-api.conf.in. Add checks to meson configuration detecting and warning about these. Suggested-by: Bruce Richardson <bruce.richardson@intel.com> Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- drivers/meson.build | 17 +++++++++++++++++ lib/meson.build | 23 +++++++++++++++++++++++ meson.build | 19 +++++++++++++++++++ 3 files changed, 59 insertions(+) diff --git a/drivers/meson.build b/drivers/meson.build index 102a8262e588..09c063660291 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -287,6 +287,23 @@ foreach subpath:subdirs dpdk_headers += headers dpdk_drivers_headers += driver_sdk_headers + if check_docs and headers.length() > 0 + foreach h:headers + hname = fs.name(h) + if not hname.startswith('rte_') + warning('public header @0@ name does not start with "rte_"'.format(h)) + endif + if hname not in doc_indexed_headers + warning('public header @0@ is not listed in @1@'.format(h, doc_index_path)) + endif + endforeach + doc_dir = 'drivers/' + drv_path + if doc_dir not in doc_built_dirs + warning('public header directory @0@ is not listed in @1@'.format(doc_dir, + doc_build_path)) + endif + endif + if headers.length() > 0 dpdk_includes += include_directories(drv_path) endif diff --git a/lib/meson.build b/lib/meson.build index af5c160cb800..073d3ead23c8 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -209,6 +209,29 @@ foreach l:libraries dpdk_indirect_headers += indirect_headers dpdk_drivers_headers += driver_sdk_headers + if check_docs and headers.length() > 0 + foreach h:headers + hname = fs.name(h) + if not (hname.startswith('rte_') or hname.startswith('cmdline')) + warning('public header @0@ name does not start with "rte_" or "cmdline"'.format(h)) + endif + if hname not in doc_indexed_headers + warning('public header @0@ is not listed in @1@'.format(h, doc_index_path)) + endif + endforeach + if l == 'eal' + doc_dirs = ['lib/eal/include', 'lib/eal/include/generic'] + else + doc_dirs = ['lib/' + l] + endif + foreach d:doc_dirs + if d not in doc_built_dirs + warning('public header directory @0@ is not listed in @1@'.format(d, + doc_build_path)) + endif + endforeach + endif + libname = 'rte_' + name includes += include_directories(l) dpdk_includes += include_directories(l) diff --git a/meson.build b/meson.build index b01010ffa076..2488c54f1b17 100644 --- a/meson.build +++ b/meson.build @@ -88,6 +88,25 @@ if is_linux global_inc += include_directories('kernel/linux') endif +# on linux, try to check that documentation sources are correctly built and indexed +check_docs = is_linux and meson.version().version_compare('>= 0.60.0') + +if check_docs + doc_build_path = 'doc/api/doxy-api.conf.in' + doc_build_file = dpdk_source_root / doc_build_path + doc_built_dirs = run_command('sed', '--regexp-extended', '--quiet', + # Extract and print the file path immediately following @TOPDIR@/ . + 's#^(INPUT *=)? *@TOPDIR@/([^ ]*)( .*|\\\\|)$#\\2#p', + doc_build_file, check: true).stdout().strip('\n').split('\n') + + doc_index_path = 'doc/api/doxy-api-index.md' + doc_index_file = dpdk_source_root / doc_index_path + doc_indexed_headers = run_command('sed', '--regexp-extended', '--quiet', + # Extract and print the (@ref ...) contents. + 's#^.*\\(@ref ([^)]*)\\).*$#\\1#p', + doc_index_file, check: true).stdout().strip('\n').split('\n') +endif + # build libs and drivers subdir('lib') subdir('drivers') -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v3 2/8] doc: document rte_os.h 2026-07-07 8:50 ` [PATCH v3 0/8] " Marat Khalili 2026-07-07 8:50 ` [PATCH v3 1/8] doc: detect ignored " Marat Khalili @ 2026-07-07 8:50 ` Marat Khalili 2026-07-07 8:50 ` [PATCH v3 3/8] doc: fix typos in rte_avp_common.h Marat Khalili ` (6 subsequent siblings) 8 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-07 8:50 UTC (permalink / raw) Cc: dev, thomas, bruce.richardson File rte_os.h did not previously have a generic version to generate documentation from, but its OS-specific version was installed. Since it is now verified that documentation is generated for all public headers, add a generic stub containing description of this file. Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- lib/eal/include/generic/rte_os.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 lib/eal/include/generic/rte_os.h diff --git a/lib/eal/include/generic/rte_os.h b/lib/eal/include/generic/rte_os.h new file mode 100644 index 000000000000..aa96321aefc4 --- /dev/null +++ b/lib/eal/include/generic/rte_os.h @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2010-2019 Intel Corporation + */ + +#ifndef _RTE_OS_H_ +#define _RTE_OS_H_ + +/** + * This header should contain any definition + * which is not supported natively or named differently in the local OS. + */ + +#endif /* _RTE_OS_H_ */ -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v3 3/8] doc: fix typos in rte_avp_common.h 2026-07-07 8:50 ` [PATCH v3 0/8] " Marat Khalili 2026-07-07 8:50 ` [PATCH v3 1/8] doc: detect ignored " Marat Khalili 2026-07-07 8:50 ` [PATCH v3 2/8] doc: document rte_os.h Marat Khalili @ 2026-07-07 8:50 ` Marat Khalili 2026-07-07 8:50 ` [PATCH v3 4/8] doc: fix typos in rte_bus_pci.h Marat Khalili ` (5 subsequent siblings) 8 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-07 8:50 UTC (permalink / raw) To: Steven Webster, Matt Peters; +Cc: dev, thomas, bruce.richardson The file contained doxygen typos that caused `unbalanced grouping commands` errors and prevented successful documentation build. It was not discovered previously because: (1) the driver despite the presence of public headers was not included in the documentation build, and (2) versions of doxygen before 1.9 did not fully parse and verify the syntax of the file unless it contained the `@file` tag. Make sure all doxygen grouping commands are balanced. Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- drivers/net/avp/rte_avp_common.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/avp/rte_avp_common.h b/drivers/net/avp/rte_avp_common.h index ffdf07cd8098..da84a1a3649c 100644 --- a/drivers/net/avp/rte_avp_common.h +++ b/drivers/net/avp/rte_avp_common.h @@ -117,7 +117,7 @@ struct __rte_cache_aligned __rte_packed_begin rte_avp_desc { } __rte_packed_end; -/**{ AVP device features */ +/**@{ AVP device features */ #define RTE_AVP_FEATURE_VLAN_OFFLOAD (1 << 0) /**< Emulated HW VLAN offload */ /**@} */ @@ -160,14 +160,14 @@ struct __rte_cache_aligned __rte_packed_begin rte_avp_desc { #define RTE_AVP_MAX_MSIX_VECTORS 1 /**@} */ -/**@} AVP Migration status/ack register values */ +/**@{ AVP Migration status/ack register values */ #define RTE_AVP_MIGRATION_NONE 0 /**< Migration never executed */ #define RTE_AVP_MIGRATION_DETACHED 1 /**< Device attached during migration */ #define RTE_AVP_MIGRATION_ATTACHED 2 /**< Device reattached during migration */ #define RTE_AVP_MIGRATION_ERROR 3 /**< Device failed to attach/detach */ /**@} */ -/**@} AVP MMIO Register Offsets */ +/**@{ AVP MMIO Register Offsets */ #define RTE_AVP_REGISTER_BASE 0 #define RTE_AVP_INTERRUPT_MASK_OFFSET (RTE_AVP_REGISTER_BASE + 0) #define RTE_AVP_INTERRUPT_STATUS_OFFSET (RTE_AVP_REGISTER_BASE + 4) @@ -175,7 +175,7 @@ struct __rte_cache_aligned __rte_packed_begin rte_avp_desc { #define RTE_AVP_MIGRATION_ACK_OFFSET (RTE_AVP_REGISTER_BASE + 12) /**@} */ -/**@} AVP Interrupt Status Mask */ +/**@{ AVP Interrupt Status Mask */ #define RTE_AVP_MIGRATION_INTERRUPT_MASK (1 << 1) #define RTE_AVP_APP_INTERRUPTS_MASK 0xFFFFFFFF #define RTE_AVP_NO_INTERRUPTS_MASK 0 @@ -268,7 +268,7 @@ RTE_AVP_MAKE_VERSION(RTE_AVP_RELEASE_VERSION_1, \ RTE_AVP_MINOR_VERSION_13) /** - * Access AVP device version values + * @{ Access AVP device version values */ #define RTE_AVP_GET_RELEASE_VERSION(_version) (((_version) >> 16) & 0xffff) #define RTE_AVP_GET_MAJOR_VERSION(_version) (((_version) >> 8) & 0xff) -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v3 4/8] doc: fix typos in rte_bus_pci.h 2026-07-07 8:50 ` [PATCH v3 0/8] " Marat Khalili ` (2 preceding siblings ...) 2026-07-07 8:50 ` [PATCH v3 3/8] doc: fix typos in rte_avp_common.h Marat Khalili @ 2026-07-07 8:50 ` Marat Khalili 2026-07-07 8:50 ` [PATCH v3 5/8] doc: fix typos in rte_bus_vmbus.h Marat Khalili ` (4 subsequent siblings) 8 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-07 8:50 UTC (permalink / raw) To: Chenbo Xia, Nipun Gupta; +Cc: dev, thomas, bruce.richardson This file contained a couple of doxygen typos that prevented successful documentation build. It was not discovered previously because the driver despite the presence of public headers was not included in the documentation build. Fix doxygen typos (replace `@bar` with `@p bar`). Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- drivers/bus/pci/rte_bus_pci.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/bus/pci/rte_bus_pci.h b/drivers/bus/pci/rte_bus_pci.h index 19a7b15b99fd..22a7beb1fc4c 100644 --- a/drivers/bus/pci/rte_bus_pci.h +++ b/drivers/bus/pci/rte_bus_pci.h @@ -222,7 +222,7 @@ int rte_pci_write_config(const struct rte_pci_device *device, * @param len * The length of the data buffer. * @param offset - * The offset into MMIO space described by @bar. + * The offset into MMIO space described by @p bar. * @return * Number of bytes read on success, negative on error. */ @@ -246,7 +246,7 @@ int rte_pci_mmio_read(const struct rte_pci_device *device, int bar, * @param len * The length of the data buffer. * @param offset - * The offset into MMIO space described by @bar. + * The offset into MMIO space described by @p bar. * @return * Number of bytes written on success, negative on error. */ -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v3 5/8] doc: fix typos in rte_bus_vmbus.h 2026-07-07 8:50 ` [PATCH v3 0/8] " Marat Khalili ` (3 preceding siblings ...) 2026-07-07 8:50 ` [PATCH v3 4/8] doc: fix typos in rte_bus_pci.h Marat Khalili @ 2026-07-07 8:50 ` Marat Khalili 2026-07-07 8:50 ` [PATCH v3 6/8] doc: add missing globs to doxy-api.conf.in Marat Khalili ` (3 subsequent siblings) 8 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-07 8:50 UTC (permalink / raw) To: Long Li, Wei Hu; +Cc: dev, thomas, bruce.richardson This file contained multiple doxygen issues that prevented successful documentation build (missing, extra, misspelt parameter names etc). It was not discovered previously because the driver despite the presence of public headers was not included in the documentation build. Fix invalid doxygen parameters annotations. Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- drivers/bus/vmbus/rte_bus_vmbus.h | 33 +++++++++++++++++++------------ 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/drivers/bus/vmbus/rte_bus_vmbus.h b/drivers/bus/vmbus/rte_bus_vmbus.h index 2e9898ed7fb6..7f3ebd823201 100644 --- a/drivers/bus/vmbus/rte_bus_vmbus.h +++ b/drivers/bus/vmbus/rte_bus_vmbus.h @@ -111,7 +111,7 @@ int rte_vmbus_max_channels(const struct rte_vmbus_device *device); * * @param primary * A pointer to primary VMBUS channel - * @param chan + * @param new_chan * A pointer to a secondary VMBUS channel pointer that will be filled. * @return * - 0 Success; channel opened. @@ -158,6 +158,8 @@ bool rte_vmbus_chan_rx_empty(const struct vmbus_channel *channel); /** * Send the specified buffer on the given channel * + * @param dev + * A pointer to a rte_vmbus_device structure describing the device * @param channel * Pointer to vmbus_channel structure. * @param type @@ -184,7 +186,9 @@ int rte_vmbus_chan_send(struct rte_vmbus_device *dev, /** * Explicitly signal host that data is available * - * @param + * @param dev + * A pointer to a rte_vmbus_device structure describing the device + * @param channel * Pointer to vmbus_channel structure. * * Used when batching multiple sends and only signaling host @@ -203,11 +207,10 @@ struct iova_list { /** * Send a scattered buffer on the given channel * + * @param dev + * A pointer to a rte_vmbus_device structure describing the device * @param channel * Pointer to vmbus_channel structure. - * @param type - * Type of packet that is being send e.g. negotiate, time - * packet etc. * @param gpa * Array of buffers to send * @param gpacnt @@ -218,8 +221,6 @@ struct iova_list { * Maximum size of what the buffer will hold * @param xact * Identifier of the request - * @param flags - * Message type inband, rxbuf, gpa * @param need_sig * Is host signal tx is required (optional) * @@ -234,13 +235,15 @@ int rte_vmbus_chan_send_sglist(struct rte_vmbus_device *dev, * Receive response to request on the given channel * skips the channel header. * - * @param channel + * @param dev + * A pointer to a rte_vmbus_device structure describing the device + * @param chan * Pointer to vmbus_channel structure. * @param data * Pointer to the buffer you want to receive the data into. * @param len * Pointer to size of receive buffer (in/out) - * @param + * @param request_id * Pointer to received transaction_id * @return * On success, returns 0 @@ -255,7 +258,7 @@ int rte_vmbus_chan_recv(struct rte_vmbus_device *dev, * Receive response to request on the given channel * includes the channel header. * - * @param channel + * @param chan * Pointer to vmbus_channel structure. * @param data * Pointer to the buffer you want to receive the data into. @@ -272,7 +275,9 @@ int rte_vmbus_chan_recv_raw(struct vmbus_channel *chan, * Notify host of bytes read (after recv_raw) * Signals host if required. * - * @param channel + * @param dev + * A pointer to a rte_vmbus_device structure describing the device + * @param chan * Pointer to vmbus_channel structure. * @param bytes_read * Number of bytes read since last signal @@ -284,7 +289,7 @@ void rte_vmbus_chan_signal_read(struct rte_vmbus_device *dev, /** * Determine sub channel index of the given channel * - * @param channel + * @param chan * Pointer to vmbus_channel structure. * @return * Sub channel index (0 for primary) @@ -309,7 +314,9 @@ void rte_vmbus_set_latency(const struct rte_vmbus_device *dev, /** * For debug dump contents of ring buffer. * - * @param channel + * @param f + * Output file to dump to. + * @param chan * Pointer to vmbus_channel structure. */ void rte_vmbus_chan_dump(FILE *f, const struct vmbus_channel *chan); -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v3 6/8] doc: add missing globs to doxy-api.conf.in 2026-07-07 8:50 ` [PATCH v3 0/8] " Marat Khalili ` (4 preceding siblings ...) 2026-07-07 8:50 ` [PATCH v3 5/8] doc: fix typos in rte_bus_vmbus.h Marat Khalili @ 2026-07-07 8:50 ` Marat Khalili 2026-07-07 8:50 ` [PATCH v3 7/8] doc: add missing drivers " Marat Khalili ` (2 subsequent siblings) 8 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-07 8:50 UTC (permalink / raw) Cc: dev, thomas, bruce.richardson Public headers starting from `cmdline` (except for `cmdline.h` itself) and `bpf_def.h` were not previously included in the documentation build. Add missing file patterns (globs) to include all public headers. Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- doc/api/doxy-api.conf.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/api/doxy-api.conf.in b/doc/api/doxy-api.conf.in index bedd94468150..2cb152d6db98 100644 --- a/doc/api/doxy-api.conf.in +++ b/doc/api/doxy-api.conf.in @@ -88,7 +88,8 @@ INPUT = @TOPDIR@/doc/api/doxy-api-index.md \ @TOPDIR@/lib/vhost INPUT += @API_EXAMPLES@ FILE_PATTERNS = rte_*.h \ - cmdline.h + cmdline*.h \ + bpf_def.h PREDEFINED = __DOXYGEN__ \ RTE_ATOMIC \ RTE_HAS_CPUSET \ -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v3 7/8] doc: add missing drivers to doxy-api.conf.in 2026-07-07 8:50 ` [PATCH v3 0/8] " Marat Khalili ` (5 preceding siblings ...) 2026-07-07 8:50 ` [PATCH v3 6/8] doc: add missing globs to doxy-api.conf.in Marat Khalili @ 2026-07-07 8:50 ` Marat Khalili 2026-07-07 8:50 ` [PATCH v3 8/8] doc: add missing headers to doxy-api-index.md Marat Khalili 2026-07-07 11:23 ` [PATCH v3 0/8] doc: build for all public headers Marat Khalili 8 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-07 8:50 UTC (permalink / raw) Cc: dev, thomas, bruce.richardson Make sure all drivers declaring public headers are added to `doxy-api.conf.in` to trigger documentation generation. Sort them. The only driver still omitted is cnxk_bphy since it needs writing multiple new doxygen descriptions which could not be done on the spot (tracked by bug 1962 in bugzilla). Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- doc/api/doxy-api.conf.in | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/doc/api/doxy-api.conf.in b/doc/api/doxy-api.conf.in index 2cb152d6db98..1620027215a9 100644 --- a/doc/api/doxy-api.conf.in +++ b/doc/api/doxy-api.conf.in @@ -5,15 +5,20 @@ PROJECT_NAME = DPDK PROJECT_NUMBER = @VERSION@ USE_MDFILE_AS_MAINPAGE = @TOPDIR@/doc/api/doxy-api-index.md INPUT = @TOPDIR@/doc/api/doxy-api-index.md \ + @TOPDIR@/drivers/baseband/acc \ + @TOPDIR@/drivers/baseband/fpga_5gnr_fec \ + @TOPDIR@/drivers/bus/pci \ @TOPDIR@/drivers/bus/vdev \ + @TOPDIR@/drivers/bus/vmbus \ @TOPDIR@/drivers/common/dpaax \ @TOPDIR@/drivers/crypto/cnxk \ @TOPDIR@/drivers/crypto/scheduler \ - @TOPDIR@/drivers/event/dlb2 \ @TOPDIR@/drivers/event/cnxk \ + @TOPDIR@/drivers/event/dlb2 \ @TOPDIR@/drivers/mempool/cnxk \ @TOPDIR@/drivers/mempool/dpaa2 \ @TOPDIR@/drivers/net/ark \ + @TOPDIR@/drivers/net/avp \ @TOPDIR@/drivers/net/bnxt \ @TOPDIR@/drivers/net/bonding \ @TOPDIR@/drivers/net/cnxk \ @@ -23,9 +28,16 @@ INPUT = @TOPDIR@/doc/api/doxy-api-index.md \ @TOPDIR@/drivers/net/intel/iavf \ @TOPDIR@/drivers/net/intel/ixgbe \ @TOPDIR@/drivers/net/mlx5 \ + @TOPDIR@/drivers/net/ntnic \ + @TOPDIR@/drivers/net/ring \ @TOPDIR@/drivers/net/softnic \ + @TOPDIR@/drivers/net/txgbe \ + @TOPDIR@/drivers/net/vhost \ + @TOPDIR@/drivers/power/kvm_vm \ + @TOPDIR@/drivers/raw/cnxk_gpio \ @TOPDIR@/drivers/raw/dpaa2_cmdif \ @TOPDIR@/drivers/raw/ifpga \ + @TOPDIR@/drivers/raw/ntb \ @TOPDIR@/lib/eal/include \ @TOPDIR@/lib/eal/include/generic \ @TOPDIR@/lib/acl \ -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH v3 8/8] doc: add missing headers to doxy-api-index.md 2026-07-07 8:50 ` [PATCH v3 0/8] " Marat Khalili ` (6 preceding siblings ...) 2026-07-07 8:50 ` [PATCH v3 7/8] doc: add missing drivers " Marat Khalili @ 2026-07-07 8:50 ` Marat Khalili 2026-07-07 11:23 ` [PATCH v3 0/8] doc: build for all public headers Marat Khalili 8 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-07 8:50 UTC (permalink / raw) Cc: dev, thomas, bruce.richardson Make sure all public headers are listed in `doxy-api-index.md` to be reachable in HTML version. Presumably each of them should contain at least a general file description, though this is not checked now. The only header still omitted is rte_pmd_bphy.h since it needs writing multiple new doxygen descriptions which could not be done on the spot, so it is excluded from the build (tracked by bug 1962 in bugzilla). Signed-off-by: Marat Khalili <marat.khalili@huawei.com> --- doc/api/doxy-api-index.md | 120 +++++++++++++++++++++++++++++++++----- 1 file changed, 105 insertions(+), 15 deletions(-) diff --git a/doc/api/doxy-api-index.md b/doc/api/doxy-api-index.md index 929604211946..f5c084c2c5a9 100644 --- a/doc/api/doxy-api-index.md +++ b/doc/api/doxy-api-index.md @@ -9,14 +9,24 @@ API The public API headers are grouped by topics: - **device**: + [bus](@ref rte_bus.h), [dev](@ref rte_dev.h), [ethdev](@ref rte_ethdev.h), + [cman](@ref rte_cman.h), + [ethdev trace fp](@ref rte_ethdev_trace_fp.h), + [dev info](@ref rte_dev_info.h), [ethctrl](@ref rte_eth_ctrl.h), [rte_flow](@ref rte_flow.h), [rte_tm](@ref rte_tm.h), [rte_mtr](@ref rte_mtr.h), [bbdev](@ref rte_bbdev.h), + [bbdev op](@ref rte_bbdev_op.h), + [bbdev trace fp](@ref rte_bbdev_trace_fp.h), [cryptodev](@ref rte_cryptodev.h), + [crypto](@ref rte_crypto.h), + [crypto sym](@ref rte_crypto_sym.h), + [crypto asym](@ref rte_crypto_asym.h), + [cryptodev trace fp](@ref rte_cryptodev_trace_fp.h), [security](@ref rte_security.h), [compressdev](@ref rte_compressdev.h), [compress](@ref rte_comp.h), @@ -25,6 +35,8 @@ The public API headers are grouped by topics: [dmadev](@ref rte_dmadev.h), [gpudev](@ref rte_gpudev.h), [eventdev](@ref rte_eventdev.h), + [event ring](@ref rte_event_ring.h), + [eventdev trace fp](@ref rte_eventdev_trace_fp.h), [event_eth_rx_adapter](@ref rte_event_eth_rx_adapter.h), [event_eth_tx_adapter](@ref rte_event_eth_tx_adapter.h), [event_timer_adapter](@ref rte_event_timer_adapter.h), @@ -33,17 +45,27 @@ The public API headers are grouped by topics: [event_vector_adapter](@ref rte_event_vector_adapter.h), [rawdev](@ref rte_rawdev.h), [metrics](@ref rte_metrics.h), + [metrics telemetry](@ref rte_metrics_telemetry.h), [bitrate](@ref rte_bitrate.h), [latency](@ref rte_latencystats.h), [devargs](@ref rte_devargs.h), [PCI](@ref rte_pci.h), + [PCI dev feature defs](@ref rte_pci_dev_feature_defs.h), + [PCI dev features](@ref rte_pci_dev_features.h), + [bus PCI](@ref rte_bus_pci.h), [vdev](@ref rte_bus_vdev.h), + [vmbus](@ref rte_bus_vmbus.h), + [vmbus reg](@ref rte_vmbus_reg.h), [vfio](@ref rte_vfio.h) - **device specific**: [softnic](@ref rte_eth_softnic.h), [bond](@ref rte_eth_bond.h), + [bond 8023ad](@ref rte_eth_bond_8023ad.h), [vhost](@ref rte_vhost.h), + [vhost async](@ref rte_vhost_async.h), + [vhost crypto](@ref rte_vhost_crypto.h), + [eth vhost](@ref rte_eth_vhost.h), [vdpa](@ref rte_vdpa.h), [ixgbe](@ref rte_pmd_ixgbe.h), [i40e](@ref rte_pmd_i40e.h), @@ -53,6 +75,7 @@ The public API headers are grouped by topics: [cnxk_crypto](@ref rte_pmd_cnxk_crypto.h), [cnxk_eventdev](@ref rte_pmd_cnxk_eventdev.h), [cnxk_mempool](@ref rte_pmd_cnxk_mempool.h), + [cnxk gpio](@ref rte_pmd_cnxk_gpio.h), [dpaa](@ref rte_pmd_dpaa.h), [dpaa2](@ref rte_pmd_dpaa2.h), [mlx5](@ref rte_pmd_mlx5.h), @@ -60,25 +83,40 @@ The public API headers are grouped by topics: [dpaa2_cmdif](@ref rte_pmd_dpaa2_cmdif.h), [dpaax_qdma](@ref rte_pmd_dpaax_qdma.h), [crypto_scheduler](@ref rte_cryptodev_scheduler.h), + [crypto scheduler operations](@ref rte_cryptodev_scheduler_operations.h), [dlb2](@ref rte_pmd_dlb2.h), - [ifpga](@ref rte_pmd_ifpga.h) + [ifpga](@ref rte_pmd_ifpga.h), + [avp common](@ref rte_avp_common.h), + [avp fifo](@ref rte_avp_fifo.h), + [ntnic](@ref rte_pmd_ntnic.h), + [ring](@ref rte_eth_ring.h), + [txgbe](@ref rte_pmd_txgbe.h), + [ntb](@ref rte_pmd_ntb.h), + [acc cfg](@ref rte_acc_cfg.h), + [acc common cfg](@ref rte_acc_common_cfg.h), + [fpga 5gnr fec](@ref rte_pmd_fpga_5gnr_fec.h) - **memory**: [per-lcore](@ref rte_per_lcore.h), [lcore variables](@ref rte_lcore_var.h), + [EAL memconfig](@ref rte_eal_memconfig.h), [memseg](@ref rte_memory.h), [memzone](@ref rte_memzone.h), [mempool](@ref rte_mempool.h), + [mempool trace fp](@ref rte_mempool_trace_fp.h), [malloc](@ref rte_malloc.h), [memcpy](@ref rte_memcpy.h) - **timers**: [cycles](@ref rte_cycles.h), + [time](@ref rte_time.h), [timer](@ref rte_timer.h), [alarm](@ref rte_alarm.h) - **locks**: [atomic](@ref rte_atomic.h), + [stdatomic](@ref rte_stdatomic.h), + [lock annotations](@ref rte_lock_annotations.h), [mcslock](@ref rte_mcslock.h), [pflock](@ref rte_pflock.h), [rwlock](@ref rte_rwlock.h), @@ -103,13 +141,18 @@ The public API headers are grouped by topics: [launch](@ref rte_launch.h), [lcore](@ref rte_lcore.h), [service cores](@ref rte_service.h), + [service component](@ref rte_service_component.h), [keepalive](@ref rte_keepalive.h), [power/freq](@ref rte_power_cpufreq.h), [power/uncore](@ref rte_power_uncore.h), - [PMD power](@ref rte_power_pmd_mgmt.h) + [PMD power](@ref rte_power_pmd_mgmt.h), + [power guest channel](@ref rte_power_guest_channel.h), + [power qos](@ref rte_power_qos.h) - **layers**: [ethernet](@ref rte_ether.h), + [net](@ref rte_net.h), + [net CRC](@ref rte_net_crc.h), [MACsec](@ref rte_macsec.h), [ARP](@ref rte_arp.h), [HIGIG](@ref rte_higig.h), @@ -119,6 +162,7 @@ The public API headers are grouped by topics: [IPsec group](@ref rte_ipsec_group.h), [IPsec SA](@ref rte_ipsec_sa.h), [IPsec SAD](@ref rte_ipsec_sad.h), + [IP](@ref rte_ip.h), [IPv4](@ref rte_ip4.h), [IPv6](@ref rte_ip6.h), [frag/reass](@ref rte_ip_frag.h), @@ -139,12 +183,15 @@ The public API headers are grouped by topics: [PDCP](@ref rte_pdcp.h), [L2TPv2](@ref rte_l2tpv2.h), [PPP](@ref rte_ppp.h), - [IB](@ref rte_ib.h) + [IB](@ref rte_ib.h), + [PTP](@ref rte_ptp.h) - **QoS**: [metering](@ref rte_meter.h), [scheduler](@ref rte_sched.h), - [RED congestion](@ref rte_red.h) + [sched common](@ref rte_sched_common.h), + [RED congestion](@ref rte_red.h), + [PIE](@ref rte_pie.h) - **routing**: [LPM IPv4 route](@ref rte_lpm.h), @@ -168,18 +215,28 @@ The public API headers are grouped by topics: [distributor](@ref rte_distributor.h), [EFD](@ref rte_efd.h), [ACL](@ref rte_acl.h), - [member](@ref rte_member.h), - [BPF](@ref rte_bpf.h) + [ACL osdep](@ref rte_acl_osdep.h), + [member](@ref rte_member.h) + * BPF: + [load and execute](@ref rte_bpf.h), + [machine code](@ref bpf_def.h), + [port filters](@ref rte_bpf_ethdev.h), + [validate debug](@ref rte_bpf_validate_debug.h) - **containers**: [mbuf](@ref rte_mbuf.h), + [mbuf core](@ref rte_mbuf_core.h), + [mbuf ptype](@ref rte_mbuf_ptype.h), + [mbuf dyn](@ref rte_mbuf_dyn.h), + [mbuf history](@ref rte_mbuf_history.h), [mbuf pool ops](@ref rte_mbuf_pool_ops.h), [ring](@ref rte_ring.h), [soring](@ref rte_soring.h), [stack](@ref rte_stack.h), [tailq](@ref rte_tailq.h), [bitset](@ref rte_bitset.h), - [bitmap](@ref rte_bitmap.h) + [bitmap](@ref rte_bitmap.h), + [fbarray](@ref rte_fbarray.h) - **packet framework**: * [port](@ref rte_port.h): @@ -188,21 +245,28 @@ The public API headers are grouped by topics: [frag](@ref rte_port_frag.h), [reass](@ref rte_port_ras.h), [sched](@ref rte_port_sched.h), - [src/sink](@ref rte_port_source_sink.h) + [src/sink](@ref rte_port_source_sink.h), + [fd](@ref rte_port_fd.h), + [sym crypto](@ref rte_port_sym_crypto.h), + [eventdev](@ref rte_port_eventdev.h) * [table](@ref rte_table.h): [lpm IPv4](@ref rte_table_lpm.h), [lpm IPv6](@ref rte_table_lpm_ipv6.h), [ACL](@ref rte_table_acl.h), [hash](@ref rte_table_hash.h), [array](@ref rte_table_array.h), - [stub](@ref rte_table_stub.h) + [stub](@ref rte_table_stub.h), + [LRU](@ref rte_lru.h), + [hash cuckoo](@ref rte_table_hash_cuckoo.h), + [hash func](@ref rte_table_hash_func.h) * [pipeline](@ref rte_pipeline.h) [port_in_action](@ref rte_port_in_action.h) [table_action](@ref rte_table_action.h) * SWX pipeline: [control](@ref rte_swx_ctl.h), [extern](@ref rte_swx_extern.h), - [pipeline](@ref rte_swx_pipeline.h) + [pipeline](@ref rte_swx_pipeline.h), + [IPsec](@ref rte_swx_ipsec.h) * SWX port: [port](@ref rte_swx_port.h), [ethdev](@ref rte_swx_port_ethdev.h), @@ -211,8 +275,11 @@ The public API headers are grouped by topics: [src/sink](@ref rte_swx_port_source_sink.h) * SWX table: [table](@ref rte_swx_table.h), - [table_em](@ref rte_swx_table_em.h) - [table_wm](@ref rte_swx_table_wm.h) + [table_em](@ref rte_swx_table_em.h), + [table_wm](@ref rte_swx_table_wm.h), + [hash func](@ref rte_swx_hash_func.h), + [table learner](@ref rte_swx_table_learner.h), + [table selector](@ref rte_swx_table_selector.h) * [graph](@ref rte_graph.h): [graph_worker](@ref rte_graph_worker.h), [graph_feature_arc](@ref rte_graph_feature_arc.h), @@ -222,7 +289,22 @@ The public API headers are grouped by topics: [ip4_node](@ref rte_node_ip4_api.h), [ip6_node](@ref rte_node_ip6_api.h), [udp4_input_node](@ref rte_node_udp4_input_api.h), - [mbuf_dynfield](@ref rte_node_mbuf_dynfield.h) + [mbuf_dynfield](@ref rte_node_mbuf_dynfield.h), + [pkt cls api](@ref rte_node_pkt_cls_api.h) + +- **cmdline**: + [cmdline](@ref cmdline.h), + [parse](@ref cmdline_parse.h), + [parse num](@ref cmdline_parse_num.h), + [parse bool](@ref cmdline_parse_bool.h), + [parse ipaddr](@ref cmdline_parse_ipaddr.h), + [parse etheraddr](@ref cmdline_parse_etheraddr.h), + [parse string](@ref cmdline_parse_string.h), + [parse portlist](@ref cmdline_parse_portlist.h), + [rdline](@ref cmdline_rdline.h), + [vt100](@ref cmdline_vt100.h), + [socket](@ref cmdline_socket.h), + [cirbuf](@ref cmdline_cirbuf.h) - **basic**: [bitops](@ref rte_bitops.h), @@ -234,7 +316,9 @@ The public API headers are grouped by topics: [argument parsing](@ref rte_argparse.h), [ptr_compress](@ref rte_ptr_compress.h), [string](@ref rte_string_fns.h), - [thread](@ref rte_thread.h) + [thread](@ref rte_thread.h), + [reciprocal](@ref rte_reciprocal.h), + [UUID](@ref rte_uuid.h) - **debug**: [jobstats](@ref rte_jobstats.h), @@ -247,11 +331,17 @@ The public API headers are grouped by topics: [log](@ref rte_log.h), [errno](@ref rte_errno.h), [trace](@ref rte_trace.h), - [trace_point](@ref rte_trace_point.h) + [EAL trace](@ref rte_eal_trace.h), + [trace_point](@ref rte_trace_point.h), + [trace point register](@ref rte_trace_point_register.h) - **misc**: [EAL config](@ref rte_eal.h), + [class](@ref rte_class.h), [common](@ref rte_common.h), + [epoll](@ref rte_epoll.h), + [hypervisor](@ref rte_hypervisor.h), + [OS](@ref rte_os.h), [experimental APIs](@ref rte_compat.h), [version](@ref rte_version.h) -- 2.43.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* RE: [PATCH v3 0/8] doc: build for all public headers 2026-07-07 8:50 ` [PATCH v3 0/8] " Marat Khalili ` (7 preceding siblings ...) 2026-07-07 8:50 ` [PATCH v3 8/8] doc: add missing headers to doxy-api-index.md Marat Khalili @ 2026-07-07 11:23 ` Marat Khalili 8 siblings, 0 replies; 30+ messages in thread From: Marat Khalili @ 2026-07-07 11:23 UTC (permalink / raw) To: Marat Khalili Cc: dev@dpdk.org, thomas@monjalon.net, bruce.richardson@intel.com Will answer the AI code review comments here. > ## Patch 1/8: doc: detect ignored public headers > > ### Errors > > **Error: Resource leak in meson.build `run_command()` usage** > The `run_command()` calls capture stdout into variables (`doc_built_dirs`, `doc_indexed_headers`) but > there is no error handling for the command execution itself beyond `check: true`. > If the `sed` command fails partway through (e.g., file read error, permission issue), the script > continues with potentially incomplete data. > While `check: true` will cause meson to fail, the failure mode is not graceful. Requirement for the setup to survive unreadable source files is clearly excessive. And meson reports specific command that failed quite well already. > ### Warnings > > **Warning: Hardcoded meson version check without rationale** > Line `check_docs = is_linux and meson.version().version_compare('>= 0.60.0')` introduces a version > check for meson 0.60.0 without explanation. > > **Suggested fix:** Add a comment explaining why meson 0.60.0 is required (likely for `fs.name()` or > another feature used in the check). Meson prints source lines and versions required during the setup already. Not sure who would ever benefit from this comment. > **Warning: `run_command()` assumes specific sed implementation** > The `sed` commands use `--regexp-extended` which is a GNU sed extension. > On systems with BSD sed (macOS, FreeBSD), this will fail. The check is explicitly limited to Linux. > **Warning: Global variables `doc_built_dirs` and `doc_indexed_headers` lack context** > These variables are set in the top-level `meson.build` but used in `drivers/meson.build` and > `lib/meson.build` without clear documentation of their contract. The names are self-descriptive IMO. > ## Patch 3/8: doc: fix typos in rte_avp_common.h > > ### Warnings > > **Warning: Missing closing brace on line 271** > Line 271 adds `@{` for "Access AVP device version values" but there is no corresponding `@}` to close > this group. > All three macros that follow (`RTE_AVP_GET_RELEASE_VERSION`, etc.) will be grouped, but the group is > never closed. Grouping commands are imbalanced in the file now, so the patch has to have them imbalanced for the result to be balanced. Instead of the patch the AI reviewer should have checked the resulting file or the fact that it builds. > ## Patch 5/8: doc: fix typos in rte_bus_vmbus.h > > ### Warnings > > **Warning: Incomplete parameter documentation in `rte_vmbus_chan_send_sglist()`** > The function takes a `flags` parameter (visible in the function signature in the actual driver code), > but the patch removes `@param flags` from the documentation without verifying that the parameter does > not exist. Not sure how the model checked the function signature, but the parameter does not exist. Which is why documentation failed to build before and builds now. > **Warning: Parameter name mismatch in `rte_vmbus_chan_recv_raw()`** > Documentation refers to `@param channel` but the actual parameter name is `chan` (as used in the > corrected version). > This is fixed by the patch, but worth noting for consistency checks. The model notes the discrepancy that the patch already fixes. > ## Patch 8/8: doc: add missing headers to doxy-api-index.md > > ### Warnings > > **Warning: BPF list formatting inconsistency** > Lines 219-223 introduce a nested bullet list for BPF headers: > ```markdown > [member](@ref rte_member.h) > * BPF: > [load and execute](@ref rte_bpf.h), > ... > ``` > This creates a sub-list with only one parent item. Nested bullet lists are used in other places in the file and even in the same patch, seem to be a good practice actually. Not sure what "only one parent item" means. > **Warning: Comma inconsistency in "containers" section** > Line 231 adds `[member](@ref rte_member.h)` followed immediately by a new bullet for BPF, but previous > list items in the same block end with commas. Customary in the file last item in the list does not end with a comma. The rendering was verified in the web browser. > --- > > ## Summary by Patch > > | Patch | Errors | Warnings | Info | > |-------|--------|----------|------| > | 1/8 | 0 | 3 | 0 | > | 2/8 | 0 | 0 | 1 | > | 3/8 | 0 | 1 | 0 | > | 4/8 | 0 | 0 | 0 | > | 5/8 | 0 | 2 | 0 | > | 6/8 | 0 | 0 | 0 | > | 7/8 | 0 | 0 | 1 | > | 8/8 | 0 | 2 | 0 | Interestingly, the one found Error did not make it to the table. This error and all 8 warnings are addressed above and not the actual problems. ^ permalink raw reply [flat|nested] 30+ messages in thread
end of thread, other threads:[~2026-07-07 11:23 UTC | newest] Thread overview: 30+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-06-30 9:03 [RFC] doc: updating doxy-api-index.md and doxy-api.conf.in Marat Khalili 2026-06-30 16:10 ` Thomas Monjalon 2026-06-30 16:45 ` Bruce Richardson 2026-07-02 20:00 ` [PATCH 0/7] doc: build for all public headers Marat Khalili 2026-07-02 20:00 ` [PATCH 1/7] doc: detect ignored " Marat Khalili 2026-07-02 20:00 ` [PATCH 2/7] doc: document rte_os.h Marat Khalili 2026-07-02 20:00 ` [PATCH 3/7] doc: fix typos in rte_bus_pci.h Marat Khalili 2026-07-02 20:00 ` [PATCH 4/7] doc: fix typos in rte_bus_vmbus.h Marat Khalili 2026-07-02 20:00 ` [PATCH 5/7] doc: add missing globs to doxy-api.conf.in Marat Khalili 2026-07-02 20:00 ` [PATCH 6/7] doc: add missing drivers " Marat Khalili 2026-07-02 20:00 ` [PATCH 7/7] doc: add missing headers to doxy-api-index.md Marat Khalili 2026-07-06 10:52 ` [PATCH v2 0/7] doc: build for all public headers Marat Khalili 2026-07-06 10:52 ` [PATCH v2 1/7] doc: detect ignored " Marat Khalili 2026-07-06 10:52 ` [PATCH v2 2/7] doc: document rte_os.h Marat Khalili 2026-07-06 10:52 ` [PATCH v2 3/7] doc: fix typos in rte_bus_pci.h Marat Khalili 2026-07-06 10:52 ` [PATCH v2 4/7] doc: fix typos in rte_bus_vmbus.h Marat Khalili 2026-07-06 10:52 ` [PATCH v2 5/7] doc: add missing globs to doxy-api.conf.in Marat Khalili 2026-07-06 10:52 ` [PATCH v2 6/7] doc: add missing drivers " Marat Khalili 2026-07-06 10:52 ` [PATCH v2 7/7] doc: add missing headers to doxy-api-index.md Marat Khalili 2026-07-06 13:14 ` [PATCH v2 0/7] doc: build for all public headers Marat Khalili 2026-07-07 8:50 ` [PATCH v3 0/8] " Marat Khalili 2026-07-07 8:50 ` [PATCH v3 1/8] doc: detect ignored " Marat Khalili 2026-07-07 8:50 ` [PATCH v3 2/8] doc: document rte_os.h Marat Khalili 2026-07-07 8:50 ` [PATCH v3 3/8] doc: fix typos in rte_avp_common.h Marat Khalili 2026-07-07 8:50 ` [PATCH v3 4/8] doc: fix typos in rte_bus_pci.h Marat Khalili 2026-07-07 8:50 ` [PATCH v3 5/8] doc: fix typos in rte_bus_vmbus.h Marat Khalili 2026-07-07 8:50 ` [PATCH v3 6/8] doc: add missing globs to doxy-api.conf.in Marat Khalili 2026-07-07 8:50 ` [PATCH v3 7/8] doc: add missing drivers " Marat Khalili 2026-07-07 8:50 ` [PATCH v3 8/8] doc: add missing headers to doxy-api-index.md Marat Khalili 2026-07-07 11:23 ` [PATCH v3 0/8] doc: build for all public headers Marat Khalili
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox