Hi Igor, you're right, RTE_KNI_NAMESIZE == IFNAMSIZ is the intention. However, to my understanding linux/if.h (where IFNAMSIZ is defined) is only included when building kernel code. I thought maybe this was intentional to keep rte_kni_common.h free of Linux kernel dependencies (when building userland code).
In practice, it probably won't matter, as the KNI kernel module is available for Linux only at the moment. I will therefore gladly change this to IFNAMSIZ if you and Ferruh think this is the way to go. Regards Michael On Fri, 2019-11-15 at 15:30 +0300, Igor Ryzhov wrote: > Hi Michael, > > Isn't it better to set it to IFNAMSIZ instead of 16? > > Best regards, > Igot > > On Fri, Nov 15, 2019 at 2:41 PM Michael Pfeiffer < > michael.pfeif...@tu-ilmenau.de> wrote: > > > The name in rte_kni_device_info is passed to the kernel, which > > allows > > interface names with at most 16 bytes (IFNAMSIZ). rte_kni_alloc > > with a > > longer name currently trigger a kernel BUG in alloc_netdev_mqs in > > net/core/dev.c. Reduce RTE_KNI_NAMESIZE to prevent this situation. > > > > Signed-off-by: Michael Pfeiffer <michael.pfeif...@tu-ilmenau.de> > > --- > > lib/librte_eal/linux/eal/include/rte_kni_common.h | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/lib/librte_eal/linux/eal/include/rte_kni_common.h > > b/lib/librte_eal/linux/eal/include/rte_kni_common.h > > index 46f75a710..59339271b 100644 > > --- a/lib/librte_eal/linux/eal/include/rte_kni_common.h > > +++ b/lib/librte_eal/linux/eal/include/rte_kni_common.h > > @@ -18,7 +18,7 @@ > > /** > > * KNI name is part of memzone name. > > */ > > -#define RTE_KNI_NAMESIZE 32 > > +#define RTE_KNI_NAMESIZE 16 > > > > #define RTE_CACHE_LINE_MIN_SIZE 64 > > > > -- > > 2.20.1 > > > > -- Michael Pfeiffer Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Fachgebiet Telematik / Rechnernetze E-Mail: michael.pfeif...@tu-ilmenau.de Telefon: +49 3677 69-4854 Web: https://www.tu-ilmenau.de/telematik/mitarbeiter/michael-pfeiffer/