selftests: forwarding: hw_stats_l3: Set addrgenmode in a separate step
authorDanielle Ratson <danieller@nvidia.com>
Mon, 12 Jun 2023 14:34:58 +0000 (16:34 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Wed, 14 Jun 2023 10:40:02 +0000 (12:40 +0200)
commitbef68e201e538eaa3a91f97aae8161eb2d0a8ed7
tree79d6afe5cdbfeac64f06af615070553dca1dd8e8
parent3b0d2819522235d003df8da68caadc5d226d4c1d
selftests: forwarding: hw_stats_l3: Set addrgenmode in a separate step

Setting the IPv6 address generation mode of a net device during its
creation never worked, but after commit b0ad3c179059 ("rtnetlink: call
validate_linkmsg in rtnl_create_link") it explicitly fails [1]. The
failure is caused by the fact that validate_linkmsg() is called before
the net device is registered, when it still does not have an 'inet6_dev'.

Likewise, raising the net device before setting the address generation
mode is meaningless, because by the time the mode is set, the address
has already been generated.

Therefore, fix the test to first create the net device, then set its
IPv6 address generation mode and finally bring it up.

[1]
 # ip link add name mydev addrgenmode eui64 type dummy
 RTNETLINK answers: Address family not supported by protocol

Fixes: ba95e7930957 ("selftests: forwarding: hw_stats_l3: Add a new test")
Signed-off-by: Danielle Ratson <danieller@nvidia.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: Petr Machata <petrm@nvidia.com>
Link: https://lore.kernel.org/r/f3b05d85b2bc0c3d6168fe8f7207c6c8365703db.1686580046.git.petrm@nvidia.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
tools/testing/selftests/net/forwarding/hw_stats_l3.sh