Description of problem: Compiling an application that depends on dpdk returns the following error: /usr/src/dpdk-ans/ans/ans_kni.c:76:10: fatal error: rte_kni.h: No such file or directory #include <rte_kni.h> ^~~~~~~~~~~ And the file does not exist: [root@deodora ~]# find / -name rte_kni.h ; echo $? 0 Version-Release number of selected component (if applicable): [root@deodora ~]# rpm -qa | grep dpdk dpdk-examples-17.08-1.fc27.x86_64 dpdk-tools-17.08-1.fc27.x86_64 dpdk-17.08-1.fc27.x86_64 dpdk-devel-17.08-1.fc27.x86_64 How reproducible: Always Steps to Reproduce: 1. sudo dnf -y install dpdk dpdk-devel dpdk-tools 2. Try to compile https://github.com/ansyun/dpdk-ans Actual results: /usr/src/dpdk-ans/ans /usr/src/dpdk-ans ~ CC ans_kni.o /usr/src/dpdk-ans/ans/ans_kni.c:76:10: fatal error: rte_kni.h: No such file or directory #include <rte_kni.h> ^~~~~~~~~~~ compilation terminated. make[1]: *** [/usr/share/dpdk/mk/internal/rte.compile-pre.mk:140: ans_kni.o] Error 1 make: *** [/usr/share/dpdk/mk/rte.extapp.mk:43: all] Error 2 Expected results: Working compilation. Additional info:
An additional info: This issue also happens with rawride version
Another example I have here: leonardo@deodora:~$ LANG=C gcc -Wp,-MD,./.ans_kni.o.d.tmp -m64 -pthread -fPIC -march=corei7 -DRTE_MACHINE_CPUFLAG_SSE -DRTE_MACHINE_CPUFLAG_SSE2 -DRTE_MACHINE_CPUFLAG_SSE3 -DRTE_MACHINE_CPUFLAG_SSSE3 -DRTE_MACHINE_CPUFLAG_SSE4_1 -DRTE_MACHINE_CPUFLAG_SSE4_2 -I/usr/src/dpdk-ans/ans/build/include -I/usr/share/dpdk/x86_64-default-linuxapp-gcc/include -include /usr/share/dpdk/x86_64-default-linuxapp-gcc/include/rte_config.h -O3 -std=gnu99 -o /tmp/kni_test.bin /usr/share/dpdk/examples/kni/main.c /usr/share/dpdk/examples/kni/main.c:72:10: fatal error: rte_kni.h: No such file or directory #include <rte_kni.h> ^~~~~~~~~~~ compilation terminated. Since its an example from dpdk source, how did this passed in compilation tests?
The Fedora version of the DPDK package is compiled without kni support, as using kni requires out-of-kernel-tree modules, which Fedora does not support. If you would like this fixed, the upstream dpdk project needs to submit the kni modules built from lib/librte_eal/linuxapp/kni/ in the dpdk source tree to the upstream kernel community for inclusion.
Hello Neil! Thanks for you answer! I understand clearly you point and agree with it. For this reason, I've opened a upstream issue at https://dpdk.org/tracker/show_bug.cgi?id=12 and I do not intent to turn this out the NOTABUG status. I'm not a developer, so I'm sorry not contributing too much with this but as a Network Engineer/Researcher, I'll do the possible to help the upstream insertion to happen. Just a question about fedora packaging itself: The kmod or dkms structure cannot be used at least as optional package to help system that demands KNI do not mess with kernel tree/packaging tree? There is at least a .spec that I can compile here, preventing I have untracked modules and allowing seamless kernel update? Thanks!
I need to know what is the latest version of the kernel that supports rte_kni. And if by any chance anybody knows why it has not been possible so far in 2020 to get this module into the kernel. There are some apps that require accelerated packet processing, namely routers, etc.