mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-13 14:24:11 +08:00
selftests: forwarding: Add IPv6 GRE remote change tests
Test that after changing the remote address of an ip6gre net device traffic is forwarded as expected. Test with both flat and hierarchical topologies and with and without an input / output keys. Signed-off-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: Petr Machata <petrm@nvidia.com> Signed-off-by: Petr Machata <petrm@nvidia.com> Link: https://patch.msgid.link/02b05246d2cdada0cf2fccffc0faa8a424d0f51b.1729866134.git.petrm@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
12ae97c531
commit
d7bd61fa02
@ -8,6 +8,7 @@
|
||||
ALL_TESTS="
|
||||
gre_flat
|
||||
gre_mtu_change
|
||||
gre_flat_remote_change
|
||||
"
|
||||
|
||||
NUM_NETIFS=6
|
||||
@ -44,6 +45,19 @@ gre_mtu_change()
|
||||
test_mtu_change
|
||||
}
|
||||
|
||||
gre_flat_remote_change()
|
||||
{
|
||||
flat_remote_change
|
||||
|
||||
test_traffic_ip4ip6 "GRE flat IPv4-in-IPv6 (new remote)"
|
||||
test_traffic_ip6ip6 "GRE flat IPv6-in-IPv6 (new remote)"
|
||||
|
||||
flat_remote_restore
|
||||
|
||||
test_traffic_ip4ip6 "GRE flat IPv4-in-IPv6 (old remote)"
|
||||
test_traffic_ip6ip6 "GRE flat IPv6-in-IPv6 (old remote)"
|
||||
}
|
||||
|
||||
cleanup()
|
||||
{
|
||||
pre_cleanup
|
||||
|
@ -8,6 +8,7 @@
|
||||
ALL_TESTS="
|
||||
gre_flat
|
||||
gre_mtu_change
|
||||
gre_flat_remote_change
|
||||
"
|
||||
|
||||
NUM_NETIFS=6
|
||||
@ -44,6 +45,19 @@ gre_mtu_change()
|
||||
test_mtu_change
|
||||
}
|
||||
|
||||
gre_flat_remote_change()
|
||||
{
|
||||
flat_remote_change
|
||||
|
||||
test_traffic_ip4ip6 "GRE flat IPv4-in-IPv6 with key (new remote)"
|
||||
test_traffic_ip6ip6 "GRE flat IPv6-in-IPv6 with key (new remote)"
|
||||
|
||||
flat_remote_restore
|
||||
|
||||
test_traffic_ip4ip6 "GRE flat IPv4-in-IPv6 with key (old remote)"
|
||||
test_traffic_ip6ip6 "GRE flat IPv6-in-IPv6 with key (old remote)"
|
||||
}
|
||||
|
||||
cleanup()
|
||||
{
|
||||
pre_cleanup
|
||||
|
@ -8,6 +8,7 @@
|
||||
ALL_TESTS="
|
||||
gre_flat
|
||||
gre_mtu_change
|
||||
gre_flat_remote_change
|
||||
"
|
||||
|
||||
NUM_NETIFS=6
|
||||
@ -44,6 +45,19 @@ gre_mtu_change()
|
||||
test_mtu_change gre
|
||||
}
|
||||
|
||||
gre_flat_remote_change()
|
||||
{
|
||||
flat_remote_change
|
||||
|
||||
test_traffic_ip4ip6 "GRE flat IPv4-in-IPv6 with ikey/okey (new remote)"
|
||||
test_traffic_ip6ip6 "GRE flat IPv6-in-IPv6 with ikey/okey (new remote)"
|
||||
|
||||
flat_remote_restore
|
||||
|
||||
test_traffic_ip4ip6 "GRE flat IPv4-in-IPv6 with ikey/okey (old remote)"
|
||||
test_traffic_ip6ip6 "GRE flat IPv6-in-IPv6 with ikey/okey (old remote)"
|
||||
}
|
||||
|
||||
cleanup()
|
||||
{
|
||||
pre_cleanup
|
||||
|
@ -8,6 +8,7 @@
|
||||
ALL_TESTS="
|
||||
gre_hier
|
||||
gre_mtu_change
|
||||
gre_hier_remote_change
|
||||
"
|
||||
|
||||
NUM_NETIFS=6
|
||||
@ -44,6 +45,19 @@ gre_mtu_change()
|
||||
test_mtu_change gre
|
||||
}
|
||||
|
||||
gre_hier_remote_change()
|
||||
{
|
||||
hier_remote_change
|
||||
|
||||
test_traffic_ip4ip6 "GRE hierarchical IPv4-in-IPv6 (new remote)"
|
||||
test_traffic_ip6ip6 "GRE hierarchical IPv6-in-IPv6 (new remote)"
|
||||
|
||||
hier_remote_restore
|
||||
|
||||
test_traffic_ip4ip6 "GRE hierarchical IPv4-in-IPv6 (old remote)"
|
||||
test_traffic_ip6ip6 "GRE hierarchical IPv6-in-IPv6 (old remote)"
|
||||
}
|
||||
|
||||
cleanup()
|
||||
{
|
||||
pre_cleanup
|
||||
|
@ -8,6 +8,7 @@
|
||||
ALL_TESTS="
|
||||
gre_hier
|
||||
gre_mtu_change
|
||||
gre_hier_remote_change
|
||||
"
|
||||
|
||||
NUM_NETIFS=6
|
||||
@ -44,6 +45,19 @@ gre_mtu_change()
|
||||
test_mtu_change gre
|
||||
}
|
||||
|
||||
gre_hier_remote_change()
|
||||
{
|
||||
hier_remote_change
|
||||
|
||||
test_traffic_ip4ip6 "GRE hierarchical IPv4-in-IPv6 with key (new remote)"
|
||||
test_traffic_ip6ip6 "GRE hierarchical IPv6-in-IPv6 with key (new remote)"
|
||||
|
||||
hier_remote_restore
|
||||
|
||||
test_traffic_ip4ip6 "GRE hierarchical IPv4-in-IPv6 with key (old remote)"
|
||||
test_traffic_ip6ip6 "GRE hierarchical IPv6-in-IPv6 with key (old remote)"
|
||||
}
|
||||
|
||||
cleanup()
|
||||
{
|
||||
pre_cleanup
|
||||
|
@ -8,6 +8,7 @@
|
||||
ALL_TESTS="
|
||||
gre_hier
|
||||
gre_mtu_change
|
||||
gre_hier_remote_change
|
||||
"
|
||||
|
||||
NUM_NETIFS=6
|
||||
@ -44,6 +45,19 @@ gre_mtu_change()
|
||||
test_mtu_change gre
|
||||
}
|
||||
|
||||
gre_hier_remote_change()
|
||||
{
|
||||
hier_remote_change
|
||||
|
||||
test_traffic_ip4ip6 "GRE hierarchical IPv4-in-IPv6 with ikey/okey (new remote)"
|
||||
test_traffic_ip6ip6 "GRE hierarchical IPv6-in-IPv6 with ikey/okey (new remote)"
|
||||
|
||||
hier_remote_restore
|
||||
|
||||
test_traffic_ip4ip6 "GRE hierarchical IPv4-in-IPv6 with ikey/okey (old remote)"
|
||||
test_traffic_ip6ip6 "GRE hierarchical IPv6-in-IPv6 with ikey/okey (old remote)"
|
||||
}
|
||||
|
||||
cleanup()
|
||||
{
|
||||
pre_cleanup
|
||||
|
@ -436,3 +436,83 @@ test_mtu_change()
|
||||
check_err $?
|
||||
log_test "ping GRE IPv6, packet size 1800 after MTU change"
|
||||
}
|
||||
|
||||
topo_flat_remote_change()
|
||||
{
|
||||
local old1=$1; shift
|
||||
local new1=$1; shift
|
||||
local old2=$1; shift
|
||||
local new2=$1; shift
|
||||
|
||||
ip link set dev g1a type ip6gre local $new1 remote $new2
|
||||
__addr_add_del g1a add "$new1/128"
|
||||
__addr_add_del g1a del "$old1/128"
|
||||
ip -6 route add $new2/128 via 2001:db8:10::2
|
||||
ip -6 route del $old2/128
|
||||
|
||||
ip link set dev g2a type ip6gre local $new2 remote $new1
|
||||
__addr_add_del g2a add "$new2/128"
|
||||
__addr_add_del g2a del "$old2/128"
|
||||
ip -6 route add vrf v$ol2 $new1/128 via 2001:db8:10::1
|
||||
ip -6 route del vrf v$ol2 $old1/128
|
||||
}
|
||||
|
||||
flat_remote_change()
|
||||
{
|
||||
local old1=2001:db8:3::1
|
||||
local new1=2001:db8:3::10
|
||||
local old2=2001:db8:3::2
|
||||
local new2=2001:db8:3::20
|
||||
|
||||
topo_flat_remote_change $old1 $new1 $old2 $new2
|
||||
}
|
||||
|
||||
flat_remote_restore()
|
||||
{
|
||||
local old1=2001:db8:3::10
|
||||
local new1=2001:db8:3::1
|
||||
local old2=2001:db8:3::20
|
||||
local new2=2001:db8:3::2
|
||||
|
||||
topo_flat_remote_change $old1 $new1 $old2 $new2
|
||||
}
|
||||
|
||||
topo_hier_remote_change()
|
||||
{
|
||||
local old1=$1; shift
|
||||
local new1=$1; shift
|
||||
local old2=$1; shift
|
||||
local new2=$1; shift
|
||||
|
||||
__addr_add_del dummy1 del "$old1/64"
|
||||
__addr_add_del dummy1 add "$new1/64"
|
||||
ip link set dev g1a type ip6gre local $new1 remote $new2
|
||||
ip -6 route add vrf v$ul1 $new2/128 via 2001:db8:10::2
|
||||
ip -6 route del vrf v$ul1 $old2/128
|
||||
|
||||
__addr_add_del dummy2 del "$old2/64"
|
||||
__addr_add_del dummy2 add "$new2/64"
|
||||
ip link set dev g2a type ip6gre local $new2 remote $new1
|
||||
ip -6 route add vrf v$ul2 $new1/128 via 2001:db8:10::1
|
||||
ip -6 route del vrf v$ul2 $old1/128
|
||||
}
|
||||
|
||||
hier_remote_change()
|
||||
{
|
||||
local old1=2001:db8:3::1
|
||||
local new1=2001:db8:3::10
|
||||
local old2=2001:db8:3::2
|
||||
local new2=2001:db8:3::20
|
||||
|
||||
topo_hier_remote_change $old1 $new1 $old2 $new2
|
||||
}
|
||||
|
||||
hier_remote_restore()
|
||||
{
|
||||
local old1=2001:db8:3::10
|
||||
local new1=2001:db8:3::1
|
||||
local old2=2001:db8:3::20
|
||||
local new2=2001:db8:3::2
|
||||
|
||||
topo_hier_remote_change $old1 $new1 $old2 $new2
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user