On Wed, 2024-08-07 at 09:59 +0300, Ido Schimmel wrote:
On Wed, Aug 07, 2024 at 12:08:15PM +0800, Geliang Tang wrote:
On Tue, 2024-08-06 at 10:40 +0300, Ido Schimmel wrote:
On Tue, Aug 06, 2024 at 12:20:38PM +0800, Geliang Tang wrote:
From: Geliang Tang tanggeliang@kylinos.cn
So many "Address not found" messages occur at the end of forwarding tests when using "ip address del" command for an invalid address:
Can you give an example of an invalid address that triggers this message?
TEST: FDB limits interacting with FDB type local [ OK ] Error: ipv4: Address not found.
... ... TEST: IGMPv3 S,G port entry automatic add to a *,G port [ OK ] Error: ipv4: Address not found. Error: ipv6: address not found.
... ... TEST: Isolated port flooding [ OK ] Error: ipv4: Address not found. Error: ipv6: address not found.
... ... TEST: Externally learned FDB entry - ageing & roaming [ OK ] Error: ipv4: Address not found. Error: ipv6: address not found.
I'm unable to reproduce these with net-next and iproute2-next. Please debug this to understand the root cause or provide more details on how to reproduce.
I did get these errors with the latest net-next and iproute2-next. For example, I got these errors of "bridge_mdb_port_down.sh":
$ sudo ./bridge_mdb_port_down.sh TEST: MDB add/del entry to port with state down [ OK ] Error: ipv4: Address not found. Error: ipv6: address not found. Error: ipv4: Address not found. Error: ipv6: address not found.
These errors occur when using h1_destroy() and h2_destroy() to delete the addresses of h1 (192.0.2.1, 2001:db8:1::1) and h2 (192.0.2.2, 2001:db8:1::2):
h1_destroy() { simple_if_fini $h1 192.0.2.1/24 2001:db8:1::1/64 }
h2_destroy() { simple_if_fini $h2 192.0.2.2/24 2001:db8:1::2/64 }
It seems that when invoking h1_destroy() and h2_destroy(), both h1 and h2 no longer have IP addresses.
This is unexpected, I do see the addresses on my end. Maybe you have some network manager that is deleting these addresses for some reason?
Try tracing __inet_del_ifa() while running the tests:
# bpftrace -e 'k:__inet_del_ifa { @bla[comm] = count(); }' Attaching 1 probe... ^C
@bla[ip]: 2
@bla[NetworkManager]: 2
Yes indeed, the addresses are deleted by NetworkManager. Does this mean that this test will be affected by the network environment in which it is running? Is it necessary to run this test in a new network namespace? If necessary, I can add it.
Thanks, -Geliang
I added "ifconfig" to show the addresses of h1 and h2 before invoking h1_destroy() and h2_destroy() like this:
''' @@ -105,7 +105,9 @@ cleanup() pre_cleanup switch_destroy + ifconfig $h1 h1_destroy + ifconfig $h2 h2_destroy vrf_cleanup '''
And got these messages:
TEST: MDB add/del entry to port with state down [ OK ] veth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether f2:ca:02:ee:05:19 txqueuelen 1000 (Ethernet) RX packets 149 bytes 17355 (17.3 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 81 bytes 9165 (9.1 KB) TX errors 0 dropped 12 overruns 0 carrier 0 collisions 0
Error: ipv4: Address not found. Error: ipv6: address not found. veth3: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether 92:df:97:5c:98:7e txqueuelen 1000 (Ethernet) RX packets 67 bytes 6252 (6.2 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 39 bytes 4997 (4.9 KB) TX errors 0 dropped 56 overruns 0 carrier 0 collisions 0
Error: ipv4: Address not found. Error: ipv6: address not found.
-Geliang
This patch gnores these messages and redirects them to /dev/null in __addr_add_del().
Signed-off-by: Geliang Tang tanggeliang@kylinos.cn
tools/testing/selftests/net/forwarding/lib.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/net/forwarding/lib.sh b/tools/testing/selftests/net/forwarding/lib.sh index ff96bb7535ff..8670b6053cde 100644 --- a/tools/testing/selftests/net/forwarding/lib.sh +++ b/tools/testing/selftests/net/forwarding/lib.sh @@ -839,7 +839,7 @@ __addr_add_del() array=("${@}") for addrstr in "${array[@]}"; do
ip address $add_del $addrstr dev $if_name
ip address $add_del $addrstr dev $if_name &>
/dev/null done } -- 2.43.0