Subject: Re: [PATCH net] selftests: forwarding: Delete IPv6 address at the end

From: Ido Schimmel <[email-masked]>
Date: Tue, 10 Dec 2019 11:26:16 +0200

On Mon, Dec 09, 2019 at 10:20:50AM -0800, David Miller wrote:
> From: Ido Schimmel <[email-masked]>
> Date: Mon,  9 Dec 2019 08:56:34 +0200
> 
> > From: Ido Schimmel <[email-masked]>
> > 
> > When creating the second host in h2_create(), two addresses are assigned
> > to the interface, but only one is deleted. When running the test twice
> > in a row the following error is observed:
> > 
> > $ ./router_bridge_vlan.sh
> > TEST: ping                                                          [ OK ]
> > TEST: ping6                                                         [ OK ]
> > TEST: vlan                                                          [ OK ]
> > $ ./router_bridge_vlan.sh
> > RTNETLINK answers: File exists
> > TEST: ping                                                          [ OK ]
> > TEST: ping6                                                         [ OK ]
> > TEST: vlan                                                          [ OK ]
> > 
> > Fix this by deleting the address during cleanup.
> > 
> > Fixes: 5b1e7f9ebd56 ("selftests: forwarding: Test routed bridge interface")
> > Signed-off-by: Ido Schimmel <[email-masked]>
> 
> Applied, but wasn't the idea that we run these things in a separate
> network namespace so that we don't pollute the top level config even
> if the script dies mid-way or something?

Dave,

This is not the case for the forwarding tests. We use them to test both
the kernel data path (using veth pairs) and the hardware data path
(using physical loopbacks). Until recently we couldn't move the hardware
ports to a different network namespace, which is why these tests were
not written using namespaces. While using namespaces will avoid such
problems, it will also prolong the time it takes to run these tests,
given the devlink instance needs to be reloaded each time. On a normal
kernel this adds another ~5 seconds to each test. On a debug kernel (one
configuration we test) this adds another ~35 seconds.