Bug 1536589

Summary: fatal error: rte_kni.h: No such file or directory
Product: [Fedora] Fedora Reporter: Leonardo Amaral <contato>
Component: dpdkAssignee: Neil Horman <nhorman>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 27CC: aconole, contato, federicoalves, linville, nhorman
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-01-22 12:17:56 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Leonardo Amaral 2018-01-19 17:12:28 UTC
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:

Comment 1 Leonardo Amaral 2018-01-19 17:32:37 UTC
An additional info: This issue also happens with rawride version

Comment 2 Leonardo Amaral 2018-01-19 17:40:21 UTC
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?

Comment 3 Neil Horman 2018-01-22 12:17:56 UTC
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.

Comment 4 Leonardo Amaral 2018-01-22 12:37:30 UTC
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!

Comment 5 Philip Orleans 2020-05-10 16:08:23 UTC
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.