# set -e
 
 devdummy="test-dummy0"
-ret=0
 
 # Kselftest framework requirement - SKIP code is 4.
 ksft_skip=4
        devbr="test-br0"
        vlandev="testbr-vlan1"
 
-       ret=0
+       local ret=0
        ip link add name "$devbr" type bridge
        check_err $?
 
        rem=10.42.42.1
        loc=10.0.0.1
 
-       ret=0
+       local ret=0
        ip tunnel add $gredev mode gre remote $rem local $loc ttl 1
        check_err $?
        ip link set $gredev up
 kci_test_tc()
 {
        dev=lo
-       ret=0
+       local ret=0
 
        tc qdisc add dev "$dev" root handle 1: htb
        check_err $?
 
 kci_test_polrouting()
 {
-       ret=0
+       local ret=0
        ip rule add fwmark 1 lookup 100
        check_err $?
        ip route add local 0.0.0.0/0 dev lo table 100
 {
        local hash_policy=$(sysctl -n net.ipv4.fib_multipath_hash_policy)
 
-       ret=0
+       local ret=0
 
        ip route get 127.0.0.1 > /dev/null
        check_err $?
 
 kci_test_addrlabel()
 {
-       ret=0
+       local ret=0
 
        ip addrlabel add prefix dead::/64 dev lo label 1
        check_err $?
 
 kci_test_ifalias()
 {
-       ret=0
+       local ret=0
        namewant=$(uuidgen)
        syspathname="/sys/class/net/$devdummy/ifalias"
 
 kci_test_vrf()
 {
        vrfname="test-vrf"
-       ret=0
+       local ret=0
 
        ip link show type vrf 2>/dev/null
        if [ $? -ne 0 ]; then
 
 kci_test_encap_vxlan()
 {
-       ret=0
+       local ret=0
        vxlan="test-vxlan0"
        vlan="test-vlan0"
        testns="$1"
 
 kci_test_encap_fou()
 {
-       ret=0
+       local ret=0
        name="test-fou"
        testns="$1"
 
 kci_test_encap()
 {
        testns="testns"
-       ret=0
+       local ret=0
 
        ip netns add "$testns"
        if [ $? -ne 0 ]; then
 kci_test_macsec()
 {
        msname="test_macsec0"
-       ret=0
+       local ret=0
 
        ip macsec help 2>&1 | grep -q "^Usage: ip macsec"
        if [ $? -ne 0 ]; then
 #-------------------------------------------------------------------
 kci_test_ipsec()
 {
-       ret=0
+       local ret=0
        algo="aead rfc4106(gcm(aes)) 0x3132333435363738393031323334353664636261 128"
        srcip=192.168.123.1
        dstip=192.168.123.2
 #-------------------------------------------------------------------
 kci_test_ipsec_offload()
 {
-       ret=0
+       local ret=0
        algo="aead rfc4106(gcm(aes)) 0x3132333435363738393031323334353664636261 128"
        srcip=192.168.123.3
        dstip=192.168.123.4
 {
        testns="testns"
        DEV_NS=gretap00
-       ret=0
+       local ret=0
 
        ip netns add "$testns"
        if [ $? -ne 0 ]; then
 {
        testns="testns"
        DEV_NS=ip6gretap00
-       ret=0
+       local ret=0
 
        ip netns add "$testns"
        if [ $? -ne 0 ]; then
 {
        testns="testns"
        DEV_NS=erspan00
-       ret=0
+       local ret=0
 
        ip link help erspan 2>&1 | grep -q "^Usage:"
        if [ $? -ne 0 ];then
 {
        testns="testns"
        DEV_NS=ip6erspan00
-       ret=0
+       local ret=0
 
        ip link help ip6erspan 2>&1 | grep -q "^Usage:"
        if [ $? -ne 0 ];then
        test_mac=de:ad:be:ef:13:37
        localip="10.0.2.2"
        dstip="10.0.2.3"
-       ret=0
+       local ret=0
 
        bridge fdb help 2>&1 |grep -q 'bridge fdb get'
        if [ $? -ne 0 ];then
        dstmac=de:ad:be:ef:13:37
        dstip=10.0.2.4
        dstip6=dead::2
-       ret=0
+       local ret=0
 
        ip neigh help 2>&1 |grep -q 'ip neigh get'
        if [ $? -ne 0 ];then
 
 kci_test_rtnl()
 {
+       local ret=0
        kci_add_dummy
        if [ $ret -ne 0 ];then
                echo "FAIL: cannot add dummy interface"
        fi
 
        kci_test_polrouting
+       check_err $?
        kci_test_route_get
+       check_err $?
        kci_test_addrlft
+       check_err $?
        kci_test_promote_secondaries
+       check_err $?
        kci_test_tc
+       check_err $?
        kci_test_gre
+       check_err $?
        kci_test_gretap
+       check_err $?
        kci_test_ip6gretap
+       check_err $?
        kci_test_erspan
+       check_err $?
        kci_test_ip6erspan
+       check_err $?
        kci_test_bridge
+       check_err $?
        kci_test_addrlabel
+       check_err $?
        kci_test_ifalias
+       check_err $?
        kci_test_vrf
+       check_err $?
        kci_test_encap
+       check_err $?
        kci_test_macsec
+       check_err $?
        kci_test_ipsec
+       check_err $?
        kci_test_ipsec_offload
+       check_err $?
        kci_test_fdb_get
+       check_err $?
        kci_test_neigh_get
+       check_err $?
 
        kci_del_dummy
+       return $ret
 }
 
 #check for needed privileges
 
 kci_test_rtnl
 
-exit $ret
+exit $?