telemetry: make usable from C++

Message ID 20221012120525.11509-1-markus.theil@tu-ilmenau.de (mailing list archive)
State Not Applicable, archived
Delegated to: David Marchand
Headers
Series telemetry: make usable from C++ |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/github-robot: build success github build: passed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS

Commit Message

Markus Theil Oct. 12, 2022, 12:05 p.m. UTC
  From: Markus Theil <markus.theil@secunet.com>

Add missing include in order to make C++ compilers
happy.

Signed-off-by: Markus Theil <markus.theil@secunet.com>
---
 lib/telemetry/rte_telemetry.h | 1 +
 1 file changed, 1 insertion(+)
  

Comments

David Marchand Oct. 27, 2022, 12:04 p.m. UTC | #1
On Wed, Oct 12, 2022 at 2:05 PM Markus Theil <markus.theil@tu-ilmenau.de> wrote:
>
> From: Markus Theil <markus.theil@secunet.com>
>
> Add missing include in order to make C++ compilers
> happy.
>

We have build checks for headers (-Dcheck_includes meson option), like for C++:

$ cat $BUILDDIR/buildtools/chkincs/chkincs-cpp.p/rte_telemetry.cpp
#include "/home/dmarchan/dpdk/lib/telemetry/rte_telemetry.h"

[917/1289] ccache c++ -Ibuildtools/chkincs/chkincs-cpp.p
-Ibuildtools/chkincs -I../../../dpdk/buildtools/chkincs
-Iexamples/vmdq_dcb -I../../../dpdk/examples/vmdq_dcb
-I../../../dpdk/examples/common -Idrivers/bus/vdev
-I../../../dpdk/drivers/bus/vdev -I. -I../../../dpdk -Iconfig
-I../../../dpdk/config -Ilib/eal/include
-I../../../dpdk/lib/eal/include -Ilib/eal/linux/include
-I../../../dpdk/lib/eal/linux/include -Ilib/eal/x86/include
-I../../../dpdk/lib/eal/x86/include -Ilib/eal/common
-I../../../dpdk/lib/eal/common -Ilib/eal -I../../../dpdk/lib/eal
-Ilib/kvargs -I../../../dpdk/lib/kvargs -Ilib/metrics
-I../../../dpdk/lib/metrics -Ilib/telemetry
-I../../../dpdk/lib/telemetry -Idrivers/bus/pci
-I../../../dpdk/drivers/bus/pci -I../../../dpdk/drivers/bus/pci/linux
-Ilib/pci -I../../../dpdk/lib/pci -Ilib/ring -I../../../dpdk/lib/ring
-Ilib/rcu -I../../../dpdk/lib/rcu -Ilib/mempool
-I../../../dpdk/lib/mempool -Ilib/mbuf -I../../../dpdk/lib/mbuf
-Ilib/net -I../../../dpdk/lib/net -Ilib/meter
-I../../../dpdk/lib/meter -Ilib/ethdev -I../../../dpdk/lib/ethdev
-Ilib/cmdline -I../../../dpdk/lib/cmdline -Ilib/hash
-I../../../dpdk/lib/hash -Ilib/timer -I../../../dpdk/lib/timer
-Ilib/acl -I../../../dpdk/lib/acl -Ilib/bbdev
-I../../../dpdk/lib/bbdev -Ilib/bitratestats
-I../../../dpdk/lib/bitratestats -Ilib/bpf -I../../../dpdk/lib/bpf
-Ilib/cfgfile -I../../../dpdk/lib/cfgfile -Ilib/compressdev
-I../../../dpdk/lib/compressdev -Ilib/cryptodev
-I../../../dpdk/lib/cryptodev -Ilib/distributor
-I../../../dpdk/lib/distributor -Ilib/efd -I../../../dpdk/lib/efd
-Ilib/eventdev -I../../../dpdk/lib/eventdev -Ilib/gpudev
-I../../../dpdk/lib/gpudev -Ilib/gro -I../../../dpdk/lib/gro -Ilib/gso
-I../../../dpdk/lib/gso -Ilib/ip_frag -I../../../dpdk/lib/ip_frag
-Ilib/jobstats -I../../../dpdk/lib/jobstats -Ilib/kni
-I../../../dpdk/lib/kni -Ilib/latencystats
-I../../../dpdk/lib/latencystats -Ilib/lpm -I../../../dpdk/lib/lpm
-Ilib/member -I../../../dpdk/lib/member -Ilib/pcapng
-I../../../dpdk/lib/pcapng -Ilib/power -I../../../dpdk/lib/power
-Ilib/rawdev -I../../../dpdk/lib/rawdev -Ilib/regexdev
-I../../../dpdk/lib/regexdev -Ilib/dmadev -I../../../dpdk/lib/dmadev
-Ilib/rib -I../../../dpdk/lib/rib -Ilib/reorder
-I../../../dpdk/lib/reorder -Ilib/sched -I../../../dpdk/lib/sched
-Ilib/security -I../../../dpdk/lib/security -Ilib/stack
-I../../../dpdk/lib/stack -Ilib/vhost -I../../../dpdk/lib/vhost
-Ilib/ipsec -I../../../dpdk/lib/ipsec -Ilib/fib
-I../../../dpdk/lib/fib -Ilib/port -I../../../dpdk/lib/port
-Ilib/pdump -I../../../dpdk/lib/pdump -Ilib/table
-I../../../dpdk/lib/table -Ilib/pipeline -I../../../dpdk/lib/pipeline
-Ilib/flow_classify -I../../../dpdk/lib/flow_classify -Ilib/graph
-I../../../dpdk/lib/graph -Ilib/node -I../../../dpdk/lib/node
-fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch
-Wnon-virtual-dtor -Wextra -Werror -O2 -g -include rte_config.h
-march=nehalem -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -MD -MQ
buildtools/chkincs/chkincs-cpp.p/meson-generated_rte_telemetry.cpp.o
-MF buildtools/chkincs/chkincs-cpp.p/meson-generated_rte_telemetry.cpp.o.d
-o buildtools/chkincs/chkincs-cpp.p/meson-generated_rte_telemetry.cpp.o
-c buildtools/chkincs/chkincs-cpp.p/rte_telemetry.cpp

Besides, I fail to see the need for stddef.h.

In which setup / case, did you get a compilation issue?
  
Markus Theil Oct. 28, 2022, 6:48 a.m. UTC | #2
On 10/27/22 14:04, David Marchand wrote:
> On Wed, Oct 12, 2022 at 2:05 PM Markus Theil <markus.theil@tu-ilmenau.de> wrote:
>> From: Markus Theil <markus.theil@secunet.com>
>>
>> Add missing include in order to make C++ compilers
>> happy.
>>
> We have build checks for headers (-Dcheck_includes meson option), like for C++:
>
> $ cat $BUILDDIR/buildtools/chkincs/chkincs-cpp.p/rte_telemetry.cpp
> #include "/home/dmarchan/dpdk/lib/telemetry/rte_telemetry.h"
>
> [917/1289] ccache c++ -Ibuildtools/chkincs/chkincs-cpp.p
> -Ibuildtools/chkincs -I../../../dpdk/buildtools/chkincs
> -Iexamples/vmdq_dcb -I../../../dpdk/examples/vmdq_dcb
> -I../../../dpdk/examples/common -Idrivers/bus/vdev
> -I../../../dpdk/drivers/bus/vdev -I. -I../../../dpdk -Iconfig
> -I../../../dpdk/config -Ilib/eal/include
> -I../../../dpdk/lib/eal/include -Ilib/eal/linux/include
> -I../../../dpdk/lib/eal/linux/include -Ilib/eal/x86/include
> -I../../../dpdk/lib/eal/x86/include -Ilib/eal/common
> -I../../../dpdk/lib/eal/common -Ilib/eal -I../../../dpdk/lib/eal
> -Ilib/kvargs -I../../../dpdk/lib/kvargs -Ilib/metrics
> -I../../../dpdk/lib/metrics -Ilib/telemetry
> -I../../../dpdk/lib/telemetry -Idrivers/bus/pci
> -I../../../dpdk/drivers/bus/pci -I../../../dpdk/drivers/bus/pci/linux
> -Ilib/pci -I../../../dpdk/lib/pci -Ilib/ring -I../../../dpdk/lib/ring
> -Ilib/rcu -I../../../dpdk/lib/rcu -Ilib/mempool
> -I../../../dpdk/lib/mempool -Ilib/mbuf -I../../../dpdk/lib/mbuf
> -Ilib/net -I../../../dpdk/lib/net -Ilib/meter
> -I../../../dpdk/lib/meter -Ilib/ethdev -I../../../dpdk/lib/ethdev
> -Ilib/cmdline -I../../../dpdk/lib/cmdline -Ilib/hash
> -I../../../dpdk/lib/hash -Ilib/timer -I../../../dpdk/lib/timer
> -Ilib/acl -I../../../dpdk/lib/acl -Ilib/bbdev
> -I../../../dpdk/lib/bbdev -Ilib/bitratestats
> -I../../../dpdk/lib/bitratestats -Ilib/bpf -I../../../dpdk/lib/bpf
> -Ilib/cfgfile -I../../../dpdk/lib/cfgfile -Ilib/compressdev
> -I../../../dpdk/lib/compressdev -Ilib/cryptodev
> -I../../../dpdk/lib/cryptodev -Ilib/distributor
> -I../../../dpdk/lib/distributor -Ilib/efd -I../../../dpdk/lib/efd
> -Ilib/eventdev -I../../../dpdk/lib/eventdev -Ilib/gpudev
> -I../../../dpdk/lib/gpudev -Ilib/gro -I../../../dpdk/lib/gro -Ilib/gso
> -I../../../dpdk/lib/gso -Ilib/ip_frag -I../../../dpdk/lib/ip_frag
> -Ilib/jobstats -I../../../dpdk/lib/jobstats -Ilib/kni
> -I../../../dpdk/lib/kni -Ilib/latencystats
> -I../../../dpdk/lib/latencystats -Ilib/lpm -I../../../dpdk/lib/lpm
> -Ilib/member -I../../../dpdk/lib/member -Ilib/pcapng
> -I../../../dpdk/lib/pcapng -Ilib/power -I../../../dpdk/lib/power
> -Ilib/rawdev -I../../../dpdk/lib/rawdev -Ilib/regexdev
> -I../../../dpdk/lib/regexdev -Ilib/dmadev -I../../../dpdk/lib/dmadev
> -Ilib/rib -I../../../dpdk/lib/rib -Ilib/reorder
> -I../../../dpdk/lib/reorder -Ilib/sched -I../../../dpdk/lib/sched
> -Ilib/security -I../../../dpdk/lib/security -Ilib/stack
> -I../../../dpdk/lib/stack -Ilib/vhost -I../../../dpdk/lib/vhost
> -Ilib/ipsec -I../../../dpdk/lib/ipsec -Ilib/fib
> -I../../../dpdk/lib/fib -Ilib/port -I../../../dpdk/lib/port
> -Ilib/pdump -I../../../dpdk/lib/pdump -Ilib/table
> -I../../../dpdk/lib/table -Ilib/pipeline -I../../../dpdk/lib/pipeline
> -Ilib/flow_classify -I../../../dpdk/lib/flow_classify -Ilib/graph
> -I../../../dpdk/lib/graph -Ilib/node -I../../../dpdk/lib/node
> -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch
> -Wnon-virtual-dtor -Wextra -Werror -O2 -g -include rte_config.h
> -march=nehalem -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -MD -MQ
> buildtools/chkincs/chkincs-cpp.p/meson-generated_rte_telemetry.cpp.o
> -MF buildtools/chkincs/chkincs-cpp.p/meson-generated_rte_telemetry.cpp.o.d
> -o buildtools/chkincs/chkincs-cpp.p/meson-generated_rte_telemetry.cpp.o
> -c buildtools/chkincs/chkincs-cpp.p/rte_telemetry.cpp
>
> Besides, I fail to see the need for stddef.h.
>
> In which setup / case, did you get a compilation issue?
>
>
I traced back, that we need this only for some internal patches which 
expose the JSON output of telemetry inside our DPDK application in order 
to get SFF digital optics module data without piping the telemetry 
socket back into our application. It can be therefore ignored and was 
posted by mistake. I'm archiving it.
  

Patch

diff --git a/lib/telemetry/rte_telemetry.h b/lib/telemetry/rte_telemetry.h
index 5e5ddaa25d..ded8e26b8b 100644
--- a/lib/telemetry/rte_telemetry.h
+++ b/lib/telemetry/rte_telemetry.h
@@ -3,6 +3,7 @@ 
  */
 
 #include <stdint.h>
+#include <stddef.h>
 
 #include <rte_compat.h>