Message ID | 764585b6852537a93c6fba3260e311b79280267a.1722917654.git.tanggeliang@kylinos.cn (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] selftests: forwarding: lib.sh: ignore "Address not found" | expand |
Le 06/08/2024 à 06:20, Geliang Tang a écrit : > 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: > > 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. > > This patch gnores these messages and redirects them to /dev/null in typo: s/gnores/ignores or 'hides' Nicolas > __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 > } >
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. > > 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 >
Hi Ido, Thanks for the review. 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. 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 > >
On Tue, 2024-08-06 at 09:34 +0200, Nicolas Dichtel wrote: > Le 06/08/2024 à 06:20, Geliang Tang a écrit : > > 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: > > > > 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. > > > > This patch gnores these messages and redirects them to /dev/null in > typo: s/gnores/ignores or 'hides' It is indeed a typo. Thanks for pointing it out. Will update this in v2. -Geliang > > Nicolas > > > __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 > > } > >
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 > > > >
On Wed, 07 Aug 2024 12:08:15 +0800 Geliang Tang wrote: > 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. FWIW netdev CI runs with iproute2 as of 2cb1a656e99 plus Petr's 16b weight patches, and I don't see "address not found".
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 > > > > > >
On Thu, Aug 08, 2024 at 04:53:51PM +0800, Geliang Tang wrote: > 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? No. See tools/testing/selftests/net/forwarding/README for the motivation for using VRFs instead of namespaces. Why NetworkManager is deleting addresses it did not add from interfaces it did not create?
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 }