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
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