Skip to content

Commit

Permalink
selftests: forwarding: Add a test for basic IPv4 and IPv6 routing
Browse files Browse the repository at this point in the history
Configure two hosts which are directly connected to the same router and
test IPv4 and IPv6 ping. Use a large MTU and check that ping is
unaffected.

Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Ido Schimmel authored and David S. Miller committed Feb 28, 2018
1 parent 236dd50 commit 7b7bc87
Show file tree
Hide file tree
Showing 2 changed files with 140 additions and 0 deletions.
15 changes: 15 additions & 0 deletions tools/testing/selftests/net/forwarding/lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,21 @@ bridge_ageing_time_get()
echo $((ageing_time / 100))
}

forwarding_enable()
{
ipv4_fwd=$(sysctl -n net.ipv4.conf.all.forwarding)
ipv6_fwd=$(sysctl -n net.ipv6.conf.all.forwarding)

sysctl -q -w net.ipv4.conf.all.forwarding=1
sysctl -q -w net.ipv6.conf.all.forwarding=1
}

forwarding_restore()
{
sysctl -q -w net.ipv6.conf.all.forwarding=$ipv6_fwd
sysctl -q -w net.ipv4.conf.all.forwarding=$ipv4_fwd
}

##############################################################################
# Tests

Expand Down
125 changes: 125 additions & 0 deletions tools/testing/selftests/net/forwarding/router.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0

NUM_NETIFS=4
source lib.sh

h1_create()
{
vrf_create "vrf-h1"
ip link set dev $h1 master vrf-h1

ip link set dev vrf-h1 up
ip link set dev $h1 up

ip address add 192.0.2.2/24 dev $h1
ip address add 2001:db8:1::2/64 dev $h1

ip route add 198.51.100.0/24 vrf vrf-h1 nexthop via 192.0.2.1
ip route add 2001:db8:2::/64 vrf vrf-h1 nexthop via 2001:db8:1::1
}

h1_destroy()
{
ip route del 2001:db8:2::/64 vrf vrf-h1
ip route del 198.51.100.0/24 vrf vrf-h1

ip address del 2001:db8:1::2/64 dev $h1
ip address del 192.0.2.2/24 dev $h1

ip link set dev $h1 down
vrf_destroy "vrf-h1"
}

h2_create()
{
vrf_create "vrf-h2"
ip link set dev $h2 master vrf-h2

ip link set dev vrf-h2 up
ip link set dev $h2 up

ip address add 198.51.100.2/24 dev $h2
ip address add 2001:db8:2::2/64 dev $h2

ip route add 192.0.2.0/24 vrf vrf-h2 nexthop via 198.51.100.1
ip route add 2001:db8:1::/64 vrf vrf-h2 nexthop via 2001:db8:2::1
}

h2_destroy()
{
ip route del 2001:db8:1::/64 vrf vrf-h2
ip route del 192.0.2.0/24 vrf vrf-h2

ip address del 2001:db8:2::2/64 dev $h2
ip address del 198.51.100.2/24 dev $h2

ip link set dev $h2 down
vrf_destroy "vrf-h2"
}

router_create()
{
ip link set dev $rp1 up
ip link set dev $rp2 up

ip address add 192.0.2.1/24 dev $rp1
ip address add 2001:db8:1::1/64 dev $rp1

ip address add 198.51.100.1/24 dev $rp2
ip address add 2001:db8:2::1/64 dev $rp2
}

router_destroy()
{
ip address del 2001:db8:2::1/64 dev $rp2
ip address del 198.51.100.1/24 dev $rp2

ip address del 2001:db8:1::1/64 dev $rp1
ip address del 192.0.2.1/24 dev $rp1

ip link set dev $rp2 down
ip link set dev $rp1 down
}

setup_prepare()
{
h1=${NETIFS[p1]}
rp1=${NETIFS[p2]}

rp2=${NETIFS[p3]}
h2=${NETIFS[p4]}

vrf_prepare

h1_create
h2_create

router_create

forwarding_enable
}

cleanup()
{
pre_cleanup

forwarding_restore

router_destroy

h2_destroy
h1_destroy

vrf_cleanup
}

trap cleanup EXIT

setup_prepare
setup_wait

ping_test $h1 198.51.100.2
ping6_test $h1 2001:db8:2::2

exit $EXIT_STATUS

0 comments on commit 7b7bc87

Please sign in to comment.