Commit bef68e20 authored by Danielle Ratson's avatar Danielle Ratson Committed by Paolo Abeni
Browse files

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 b0ad3c17 ("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: ba95e793 ("selftests: forwarding: hw_stats_l3: Add a new test")
Signed-off-by: default avatarDanielle Ratson <danieller@nvidia.com>
Reviewed-by: default avatarIdo Schimmel <idosch@nvidia.com>
Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
Link: https://lore.kernel.org/r/f3b05d85b2bc0c3d6168fe8f7207c6c8365703db.1686580046.git.petrm@nvidia.com


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 3b0d2819
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -84,8 +84,9 @@ h2_destroy()

router_rp1_200_create()
{
	ip link add name $rp1.200 up \
		link $rp1 addrgenmode eui64 type vlan id 200
	ip link add name $rp1.200 link $rp1 type vlan id 200
	ip link set dev $rp1.200 addrgenmode eui64
	ip link set dev $rp1.200 up
	ip address add dev $rp1.200 192.0.2.2/28
	ip address add dev $rp1.200 2001:db8:1::2/64
	ip stats set dev $rp1.200 l3_stats on
@@ -256,9 +257,11 @@ reapply_config()

	router_rp1_200_destroy

	ip link add name $rp1.200 link $rp1 addrgenmode none type vlan id 200
	ip link add name $rp1.200 link $rp1 type vlan id 200
	ip link set dev $rp1.200 addrgenmode none
	ip stats set dev $rp1.200 l3_stats on
	ip link set dev $rp1.200 up addrgenmode eui64
	ip link set dev $rp1.200 addrgenmode eui64
	ip link set dev $rp1.200 up
	ip address add dev $rp1.200 192.0.2.2/28
	ip address add dev $rp1.200 2001:db8:1::2/64
}