On 11/15/2019 12:43 PM, Michael Pfeiffer wrote: > 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.
I think better to not add dependency to userland, and I don't expect IFNAMSIZ changing in kernel side, so safe to keep hardcoded value, only perhaps a simple /* IFNAMSIZ */ comment can be added to highlight the relation? > > 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 >>> >>>