Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/tests/net Add some tests for sysctl net.inet.ip.*



details:   https://anonhg.NetBSD.org/src/rev/027e4eac10e1
branches:  trunk
changeset: 812645:027e4eac10e1
user:      ozaki-r <ozaki-r%NetBSD.org@localhost>
date:      Fri Dec 25 08:22:28 2015 +0000

description:
Add some tests for sysctl net.inet.ip.*

- net.inet.ip.redirect
- net.inet.ip.directed-broadcast (and net.inet.icmp.bmcastecho)
- net.inet.ip.ttl

>From suzu-ken@IIJ (with tweaks by me)

diffstat:

 tests/net/icmp/t_icmp_redirect.sh |  125 +++++++++++++++++++++++++++++++++++++-
 tests/net/net/t_forwarding.sh     |  101 +++++++++++++++++++++++++++++-
 2 files changed, 222 insertions(+), 4 deletions(-)

diffs (truncated from 323 to 300 lines):

diff -r 0a74dd41e6c7 -r 027e4eac10e1 tests/net/icmp/t_icmp_redirect.sh
--- a/tests/net/icmp/t_icmp_redirect.sh Fri Dec 25 06:47:56 2015 +0000
+++ b/tests/net/icmp/t_icmp_redirect.sh Fri Dec 25 08:22:28 2015 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: t_icmp_redirect.sh,v 1.1 2015/08/31 06:16:08 ozaki-r Exp $
+#      $NetBSD: t_icmp_redirect.sh,v 1.2 2015/12/25 08:22:28 ozaki-r Exp $
 #
 # Copyright (c) 2015 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -209,8 +209,131 @@
        cleanup
 }
 
+atf_test_case icmp_redirect cleanup
+
+icmp_redirect_head()
+{
+
+       atf_set "descr" "Tests for icmp redirect";
+       atf_set "require.progs" "rump_server";
+}
+
+setup_redirect()
+{
+       atf_check -s exit:0 -o ignore rump.sysctl -w \
+           net.inet.ip.redirect=1
+}
+
+teardown_redirect()
+{
+       atf_check -s exit:0 -o ignore rump.sysctl -w \
+           net.inet.ip.redirect=0
+}
+
+icmp_redirect_body()
+{
+
+       $DEBUG && ulimit -c unlimited
+
+       setup_local
+       setup_peer
+
+       #
+       # Setup a gateway 10.0.0.254. 10.0.2.1 is behind it.
+       #
+       setup_gw
+
+       #
+       # Teach the peer that 10.0.2.* is behind 10.0.0.254
+       #
+       export RUMP_SERVER=$SOCK_PEER
+       atf_check -s exit:0 -o ignore rump.route add -net 10.0.2.0/24 10.0.0.254
+       # Up, Gateway, Static
+       check_entry_flags 10.0.2/24 UGS
+
+       #
+       # Setup the default gateway to the peer, 10.0.0.1
+       #
+       export RUMP_SERVER=$SOCK_LOCAL
+       atf_check -s exit:0 -o ignore rump.route add default 10.0.0.1
+       # Up, Gateway, Static
+       check_entry_flags default UGS
+
+
+       ### ICMP redirects are NOT sent by the peer ###
+
+       #
+       # Disable net.inet.ip.redirect
+       #
+       export RUMP_SERVER=$SOCK_PEER
+       teardown_redirect
+
+       # Try ping 10.0.2.1
+       export RUMP_SERVER=$SOCK_LOCAL
+       atf_check -s exit:0 -o ignore rump.ping -n -w 1 -c 1 10.0.2.1
+       $DEBUG && rump.netstat -rn -f inet
+
+       # A direct route shouldn't be created
+       check_entry_fail 10.0.2.1
+
+
+       ### ICMP redirects are sent by the peer ###
+
+       #
+       # Enable net.inet.ip.redirect
+       #
+       export RUMP_SERVER=$SOCK_PEER
+       setup_redirect
+
+       # Try ping 10.0.2.1
+       export RUMP_SERVER=$SOCK_LOCAL
+       atf_check -s exit:0 -o ignore rump.ping -n -w 1 -c 1 10.0.2.1
+       $DEBUG && rump.netstat -rn -f inet
+
+       # Up, Gateway, Host, Dynamic
+       check_entry_flags 10.0.2.1 UGHD
+       check_entry_gw 10.0.2.1 10.0.0.254
+
+       export RUMP_SERVER=$SOCK_PEER
+       $DEBUG && rump.netstat -rn -f inet
+
+
+       # cleanup
+       export RUMP_SERVER=$SOCK_LOCAL
+       atf_check -s exit:0 -o ignore rump.route delete 10.0.2.1
+       check_entry_fail 10.0.2.1
+
+
+       ### ICMP redirects are NOT sent by the peer (again) ###
+
+       #
+       # Disable net.inet.ip.redirect
+       #
+       export RUMP_SERVER=$SOCK_PEER
+       teardown_redirect
+
+       # Try ping 10.0.2.1
+       export RUMP_SERVER=$SOCK_LOCAL
+       atf_check -s exit:0 -o ignore rump.ping -n -w 1 -c 1 10.0.2.1
+       $DEBUG && rump.netstat -rn -f inet
+
+       # A direct route shouldn't be created
+       check_entry_fail 10.0.2.1
+
+
+       teardown_gw
+}
+
+icmp_redirect_cleanup()
+{
+
+       $DEBUG && dump
+       cleanup
+}
+
 atf_init_test_cases()
 {
 
+       atf_add_test_case icmp_redirect
        atf_add_test_case icmp_redirect_timeout
 }
diff -r 0a74dd41e6c7 -r 027e4eac10e1 tests/net/net/t_forwarding.sh
--- a/tests/net/net/t_forwarding.sh     Fri Dec 25 06:47:56 2015 +0000
+++ b/tests/net/net/t_forwarding.sh     Fri Dec 25 08:22:28 2015 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: t_forwarding.sh,v 1.10 2015/11/24 02:37:33 ozaki-r Exp $
+#      $NetBSD: t_forwarding.sh,v 1.11 2015/12/25 08:22:28 ozaki-r Exp $
 #
 # Copyright (c) 2015 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -35,6 +35,7 @@
 IP4SRCGW=10.0.1.1
 IP4DSTGW=10.0.2.1
 IP4DST=10.0.2.2
+IP4DST_BCAST=10.0.2.255
 IP6SRC=fc00:0:0:1::2
 IP6SRCGW=fc00:0:0:1::1
 IP6DSTGW=fc00:0:0:2::1
@@ -49,6 +50,7 @@
 atf_test_case basic6 cleanup
 atf_test_case fastforward cleanup
 atf_test_case fastforward6 cleanup
+atf_test_case misc cleanup
 
 basic_head()
 {
@@ -62,6 +64,12 @@
        atf_set "require.progs" "rump_server"
 }
 
+misc_head()
+{
+       atf_set "descr" "Does IPv4 forwarding tests"
+       atf_set "require.progs" "rump_server"
+}
+
 setup_endpoint()
 {
        sock=${1}
@@ -224,6 +232,18 @@
        atf_check -s exit:0 -o ignore rump.sysctl -w net.inet6.ip6.forwarding=1
 }
 
+setup_directed_broadcast()
+{
+       export RUMP_SERVER=$SOCKFWD
+       atf_check -s exit:0 -o ignore rump.sysctl -w net.inet.ip.directed-broadcast=1
+}
+
+setup_icmp_bmcastecho()
+{
+       export RUMP_SERVER=$SOCKDST
+       atf_check -s exit:0 -o ignore rump.sysctl -w net.inet.icmp.bmcastecho=1
+}
+
 teardown_forwarding()
 {
        export RUMP_SERVER=$SOCKFWD
@@ -236,6 +256,18 @@
        atf_check -s exit:0 -o ignore rump.sysctl -w net.inet6.ip6.forwarding=0
 }
 
+teardown_directed_broadcast()
+{
+       export RUMP_SERVER=$SOCKFWD
+       atf_check -s exit:0 -o ignore rump.sysctl -w net.inet.ip.directed-broadcast=0
+}
+
+teardown_icmp_bmcastecho()
+{
+       export RUMP_SERVER=$SOCKDST
+       atf_check -s exit:0 -o ignore rump.sysctl -w net.inet.icmp.bmcastecho=0
+}
+
 test_setup_forwarding()
 {
        export RUMP_SERVER=$SOCKFWD
@@ -321,7 +353,7 @@
        $DEBUG && rump.netstat -nr
 }
 
-test_ttl()
+test_ping_ttl()
 {
        export RUMP_SERVER=$SOCKSRC
        $DEBUG && rump.ifconfig -v shmif0
@@ -332,6 +364,44 @@
        $DEBUG && rump.ifconfig -v shmif0
 }
 
+test_sysctl_ttl()
+{
+       local ip=$1
+
+       export RUMP_SERVER=$SOCKSRC
+       $DEBUG && rump.ifconfig -v shmif0
+
+       atf_check -s exit:0 -o ignore rump.sysctl -w net.inet.ip.ttl=1
+       # get the webpage
+       atf_check -s not-exit:0 -e match:'timed out' \
+               env LD_PRELOAD=/usr/lib/librumphijack.so        \
+               ftp -q $TIMEOUT -o out http://$ip/$HTML_FILE
+
+
+       atf_check -s exit:0 -o ignore rump.sysctl -w net.inet.ip.ttl=2
+       # get the webpage
+       atf_check -s exit:0 env LD_PRELOAD=/usr/lib/librumphijack.so    \
+               ftp -q $TIMEOUT -o out http://$ip/$HTML_FILE
+
+       atf_check -s exit:0 -o ignore rump.sysctl -w net.inet.ip.ttl=64
+       $DEBUG && rump.ifconfig -v shmif0
+}
+
+test_directed_broadcast()
+{
+       setup_icmp_bmcastecho
+
+       setup_directed_broadcast
+       export RUMP_SERVER=$SOCKSRC
+       atf_check -s exit:0 -o ignore rump.ping -q -n -w $TIMEOUT -c 1 $IP4DST_BCAST
+
+       teardown_directed_broadcast
+       export RUMP_SERVER=$SOCKSRC
+       atf_check -s not-exit:0 -o ignore rump.ping -q -n -w $TIMEOUT -c 1 $IP4DST_BCAST
+
+       teardown_icmp_bmcastecho
+}
+
 test_ping6_failure()
 {
        export RUMP_SERVER=$SOCKSRC
@@ -383,7 +453,6 @@
        setup_forwarding
        test_setup_forwarding
        test_ping_success
-       test_ttl
 
        teardown_forwarding
        test_teardown_forwarding
@@ -429,6 +498,24 @@
        test_http_get "[$IP6DST]"
 }
 
+misc_body()
+{
+       setup
+       test_setup
+
+       setup_forwarding
+       test_setup_forwarding
+
+       test_ping_ttl
+
+       test_directed_broadcast
+
+       setup_bozo $IP4DST
+       test_sysctl_ttl $IP4DST
+
+       return 0
+}



Home | Main Index | Thread Index | Old Index