Re: [EVL] Kernel WARNING: notifier callback netevent_handler already registered

Philippe Gerum <[email protected]>
Newsgroups dev.linux.lists.xenomai
Message-ID <87jytt34q7.fsf@2a01cb0804738000b42250ae26cae50b.ipv6.abo.wanadoo.fr>
Hannes Diethelm <[email protected]> writes:

> Am 25.04.26 um 20:50 schrieb Philippe Gerum:
>> Hannes Diethelm <[email protected]> writes:
>> 
>>> Hello
>>>
>>> There is a Kernel WARNING: "notifier callback netevent_handler already registered right after boot". It is repeated 5 times.
>>>
>>> Config:
>>> Debian Trixie with xfce4 Desktop
>>> libevl: r56
>>> linux-evl: v6.12.67-evl2-rebase
>>>
>>> I traced the issue already trough the following code:
>>> net/core/net_namespace.c:355
>>> kernel/evl/net/net.c:35
>>> kernel/evl/net/ipv4/ipv4.c:41
>>> kernel/evl/net/ipv4/arp.c:323
>>>
>>> However, I lack the knowledge to do a proper fix. One way would be to just check in evl_net_init_arp() if it is already
>>> registered and don't do it more than once but that doesn't feel right.
>> It looks like the system is instantiating multiple network
>> namespaces,
>> for each of which we set up an ARP front cache by calling
>> evl_net_init_arp(). Bad idea to hook a system-wide handler there as
>> well. Could you confirm this fix [1] works for you?
>> Thanks for reporting this.
>> [1]
>> https://gitlab.com/Xenomai/xenomai4/linux-evl/-/commit/569beef061321c2c00d775b13ad0aec1a1d2a416
>> 
>
> Thanks, that was fast. The WARNING is gone now.
>
> But now after just updating to the kernel including your fix, I have a different behavior on
> incoming packages. It seams that the default when no filter is set has changed from EVL_RX_SKIP to EVL_RX_ACCEPT.
>
> linux-evl: v6.12.67-evl2-rebase
> -After evl net -ei enp7s0, I can ping another host.
> -oob-net-icmp does only receive packages when I use an eBPF filter with EVL_RX_ACCEPT
> -After that, ping doesn't work any more
>
> linux-evl: v6.12.y-cip-evl-rebase
> -After evl net -ei enp7s0, I can NOT ping another host.
> -oob-net-icmp does receive packages
> -If I use an eBPF filter returning EVL_RX_SKIP, I can ping again
>
> I am not using VLAN's.
>
> Was that changed on purpose?

Yes, this is implemented by this commit [1]. The rationale here is that
if you turn on the oob port directly on a base device, then the evl net
stack may assume that the device is entirely dedicated to oob traffic,
as opposed to enabling such port on some upper device based on the
former (e.g. a VLAN interface). As a result, all ingress traffic
received by such base device is diverted (RX_ACCEPT) to the evl net
stack.

[1] https://gitlab.com/Xenomai/xenomai4/linux-evl/-/commit/3026e69cee2a1de047818fa06ad8c44623461a0d

-- 
Philippe.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.