testsuite: remove gre kmods if the test loads them
The tunnel test leaves behind link devices created by the GRE kernel modules: $ ip -br link ... gre0@NONE DOWN 0.0.0.0 <NOARP> gretap0@NONE DOWN 00:00:00:00:00:00 <BROADCAST,MULTICAST> erspan0@NONE DOWN 00:00:00:00:00:00 <BROADCAST,MULTICAST> ip6tnl0@NONE DOWN :: <NOARP> ip6gre0@NONE DOWN 00:00:00:00: $ lsmod | grep gre ip6_gre 40960 0 ip6_tunnel 40960 1 ip6_gre ip_gre 32768 0 ip_tunnel 24576 1 ip_gre gre 16384 2 ip6_gre,ip_gre Check beforehand if the gre kernel module is loaded, and if not unload them all at the end of the test. This should avoid causing problems if a user is already using GRE for other purposes. Signed-off-by: Luca Boccassi <bluca@debian.org> Reviewed-by: Petr Vorel <pvorel@suse.cz> Tested-by: Petr Vorel <pvorel@suse.cz> Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
This commit is contained in:
parent
eaed928b64
commit
85bcb524a2
|
|
@ -3,6 +3,16 @@
|
|||
. lib/generic.sh
|
||||
|
||||
TUNNEL_NAME="tunnel_test_ip"
|
||||
KMODS="ip6_gre ip6_tunnel ip_gre ip_tunnel gre"
|
||||
|
||||
# unload kernel modules to remove dummy interfaces only if they were not in use beforehand
|
||||
kmods_remove=
|
||||
# note that checkbashism reports command -v, but dash supports it and it's POSIX 2008 compliant
|
||||
if command -v lsmod >/dev/null 2>&1 && command -v rmmod >/dev/null 2>&1; then
|
||||
for i in $KMODS; do
|
||||
lsmod | grep -q "^$i" || kmods_remove="$kmods_remove $i";
|
||||
done
|
||||
fi
|
||||
|
||||
ts_log "[Testing add/del tunnels]"
|
||||
|
||||
|
|
@ -12,3 +22,6 @@ ts_ip "$0" "Del GRE tunnel over IPv4" tunnel del $TUNNEL_NAME
|
|||
ts_ip "$0" "Add GRE tunnel over IPv6" tunnel add name $TUNNEL_NAME mode ip6gre local dead:beef::1 remote dead:beef::2
|
||||
ts_ip "$0" "Del GRE tunnel over IPv6" tunnel del $TUNNEL_NAME
|
||||
|
||||
for mod in $kmods_remove; do
|
||||
sudo rmmod "$mod"
|
||||
done
|
||||
|
|
|
|||
Loading…
Reference in New Issue