make -C tools/testing/selftests TARGETS=net TEST_PROGS=fcnal-test.sh TEST__GEN_PROGS="" run_tests make: Entering directory '/home/virtme/testing-1/tools/testing/selftests' make[1]: Entering directory '/home/virtme/testing-1/tools/testing/selftests/net' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/virtme/testing-1/tools/testing/selftests/net' make[1]: Entering directory '/home/virtme/testing-1/tools/testing/selftests/net' TAP version 13 1..1 # timeout set to 3600 # selftests: net: fcnal-test.sh # # ########################################################################### # IPv4 ping # ########################################################################### # # # ################################################################# # No VRF # # SYSCTL: net.ipv4.raw_l3mdev_accept=0 # # TEST: ping out - ns-B IP [ OK ] # TEST: ping out, device bind - ns-B IP [ OK ] # TEST: ping out, address bind - ns-B IP [ OK ] # TEST: ping out - ns-B loopback IP [ OK ] # TEST: ping out, device bind - ns-B loopback IP [ OK ] # TEST: ping out, address bind - ns-B loopback IP [ OK ] # TEST: ping out (don't route), peer on link - ns-B IP [ OK ] # TEST: ping out (don't route), peer not on link - ns-B loopback IP [ OK ] # TEST: ping in - ns-A IP [ OK ] # TEST: ping in - ns-A loopback IP [ OK ] # TEST: ping local - ns-A IP [ OK ] # TEST: ping local - ns-A loopback IP [ OK ] # TEST: ping local - loopback [ OK ] # TEST: ping local, device bind - ns-A IP [ OK ] # TEST: ping local, device bind - ns-A loopback IP [ OK ] # TEST: ping local, device bind - loopback [ OK ] # TEST: ping out, blocked by rule - ns-B loopback IP [ OK ] # TEST: ping in, blocked by rule - ns-A loopback IP [ OK ] # TEST: ping out, blocked by route - ns-B loopback IP [ OK ] # TEST: ping in, blocked by route - ns-A loopback IP [ OK ] # TEST: ping out, unreachable default route - ns-B loopback IP [ OK ] # SYSCTL: net.ipv4.raw_l3mdev_accept=1 # # TEST: ping out - ns-B IP [ OK ] # TEST: ping out, device bind - ns-B IP [ OK ] # TEST: ping out, address bind - ns-B IP [ OK ] # TEST: ping out - ns-B loopback IP [ OK ] # TEST: ping out, device bind - ns-B loopback IP [ OK ] # TEST: ping out, address bind - ns-B loopback IP [ OK ] # TEST: ping out (don't route), peer on link - ns-B IP [ OK ] # TEST: ping out (don't route), peer not on link - ns-B loopback IP [ OK ] # TEST: ping in - ns-A IP [ OK ] # TEST: ping in - ns-A loopback IP [ OK ] # TEST: ping local - ns-A IP [ OK ] # TEST: ping local - ns-A loopback IP [ OK ] # TEST: ping local - loopback [ OK ] # TEST: ping local, device bind - ns-A IP [ OK ] # TEST: ping local, device bind - ns-A loopback IP [ OK ] # TEST: ping local, device bind - loopback [ OK ] # TEST: ping out, blocked by rule - ns-B loopback IP [ OK ] # TEST: ping in, blocked by rule - ns-A loopback IP [ OK ] # TEST: ping out, blocked by route - ns-B loopback IP [ OK ] # TEST: ping in, blocked by route - ns-A loopback IP [ OK ] # TEST: ping out, unreachable default route - ns-B loopback IP [ OK ] # TEST: ping out - ns-B IP [ OK ] # TEST: ping out, device bind - ns-B IP [ OK ] # TEST: ping out, address bind - ns-B IP [ OK ] # TEST: ping out - ns-B loopback IP [ OK ] # TEST: ping out, device bind - ns-B loopback IP [ OK ] # TEST: ping out, address bind - ns-B loopback IP [ OK ] # TEST: ping out (don't route), peer on link - ns-B IP [ OK ] # TEST: ping out (don't route), peer not on link - ns-B loopback IP [ OK ] # TEST: ping in - ns-A IP [ OK ] # TEST: ping in - ns-A loopback IP [ OK ] # TEST: ping local - ns-A IP [ OK ] # TEST: ping local - ns-A loopback IP [ OK ] # TEST: ping local - loopback [ OK ] # TEST: ping local, device bind - ns-A IP [ OK ] # TEST: ping local, device bind - ns-A loopback IP [ OK ] # TEST: ping local, device bind - loopback [ OK ] # TEST: ping out, blocked by rule - ns-B loopback IP [ OK ] # TEST: ping in, blocked by rule - ns-A loopback IP [ OK ] # TEST: ping out, blocked by route - ns-B loopback IP [ OK ] # TEST: ping in, blocked by route - ns-A loopback IP [ OK ] # TEST: ping out, unreachable default route - ns-B loopback IP [ OK ] # # ################################################################# # With VRF # # SYSCTL: net.ipv4.raw_l3mdev_accept=1 # # TEST: ping out, VRF bind - ns-B IP [ OK ] # TEST: ping out, device bind - ns-B IP [ OK ] # TEST: ping out, vrf device + dev address bind - ns-B IP [ OK ] # TEST: ping out, vrf device + vrf address bind - ns-B IP [ OK ] # TEST: ping out, VRF bind - ns-B loopback IP [ OK ] # TEST: ping out, device bind - ns-B loopback IP [ OK ] # TEST: ping out, vrf device + dev address bind - ns-B loopback IP [ OK ] # TEST: ping out, vrf device + vrf address bind - ns-B loopback IP [ OK ] # TEST: ping in - ns-A IP [ OK ] # TEST: ping in - VRF IP [ OK ] # TEST: ping local, VRF bind - ns-A IP [ OK ] # TEST: ping local, VRF bind - VRF IP [ OK ] # TEST: ping local, VRF bind - loopback [ OK ] # TEST: ping local, device bind - ns-A IP [ OK ] # TEST: ping local, device bind - VRF IP [ OK ] # TEST: ping local, device bind - loopback [ OK ] # TEST: ping out, vrf bind, blocked by rule - ns-B loopback IP [ OK ] # TEST: ping out, device bind, blocked by rule - ns-B loopback IP [ OK ] # TEST: ping in, blocked by rule - ns-A loopback IP [ OK ] # TEST: ping out, vrf bind, unreachable route - ns-B loopback IP [ OK ] # TEST: ping out, device bind, unreachable route - ns-B loopback IP [ OK ] # TEST: ping in, unreachable route - ns-A loopback IP [ OK ] # SYSCTL: net.ipv4.raw_l3mdev_accept=1 # # TEST: ping out, VRF bind - ns-B IP [ OK ] # TEST: ping out, device bind - ns-B IP [ OK ] # TEST: ping out, vrf device + dev address bind - ns-B IP [ OK ] # TEST: ping out, vrf device + vrf address bind - ns-B IP [ OK ] # TEST: ping out, VRF bind - ns-B loopback IP [ OK ] # TEST: ping out, device bind - ns-B loopback IP [ OK ] # TEST: ping out, vrf device + dev address bind - ns-B loopback IP [ OK ] # TEST: ping out, vrf device + vrf address bind - ns-B loopback IP [ OK ] # TEST: ping in - ns-A IP [ OK ] # TEST: ping in - VRF IP [ OK ] # TEST: ping local, VRF bind - ns-A IP [ OK ] # TEST: ping local, VRF bind - VRF IP [ OK ] # TEST: ping local, VRF bind - loopback [ OK ] # TEST: ping local, device bind - ns-A IP [ OK ] # TEST: ping local, device bind - VRF IP [ OK ] # TEST: ping local, device bind - loopback [ OK ] # TEST: ping out, vrf bind, blocked by rule - ns-B loopback IP [ OK ] # TEST: ping out, device bind, blocked by rule - ns-B loopback IP [ OK ] # TEST: ping in, blocked by rule - ns-A loopback IP [ OK ] # TEST: ping out, vrf bind, unreachable route - ns-B loopback IP [ OK ] # TEST: ping out, device bind, unreachable route - ns-B loopback IP [ OK ] # TEST: ping in, unreachable route - ns-A loopback IP [ OK ] # # ########################################################################### # IPv4/TCP # ########################################################################### # # # ################################################################# # No VRF # # # ################################################################# # tcp_l3mdev_accept disabled # # SYSCTL: net.ipv4.tcp_l3mdev_accept=0 # # TEST: Global server - ns-A IP [ OK ] # TEST: Global server - ns-A loopback IP [ OK ] # TEST: Device server - ns-A IP [ OK ] # TEST: No server - ns-A IP [ OK ] # TEST: No server - ns-A loopback IP [ OK ] # TEST: Client - ns-B IP [ OK ] # TEST: Client, device bind - ns-B IP [ OK ] # TEST: No server, unbound client - ns-B IP [ OK ] # TEST: No server, device client - ns-B IP [ OK ] # TEST: Client - ns-B loopback IP [ OK ] # TEST: Client, device bind - ns-B loopback IP [ OK ] # TEST: No server, unbound client - ns-B loopback IP [ OK ] # TEST: No server, device client - ns-B loopback IP [ OK ] # TEST: Global server, local connection - ns-A IP [ OK ] # TEST: Global server, local connection - ns-A loopback IP [ OK ] # TEST: Global server, local connection - loopback [ OK ] # TEST: Device server, unbound client, local connection - ns-A IP [ OK ] # TEST: Device server, unbound client, local connection - ns-A loopback IP [ OK ] # TEST: Device server, unbound client, local connection - loopback [ OK ] # TEST: Global server, device client, local connection - ns-A IP [ OK ] # TEST: Global server, device client, local connection - ns-A loopback IP [ OK ] # TEST: Global server, device client, local connection - loopback [ OK ] # TEST: Device server, device client, local connection - ns-A IP [ OK ] # TEST: No server, device client, local conn - ns-A IP [ OK ] # TEST: MD5: Single address config [ OK ] # TEST: MD5: Server no config, client uses password [ OK ] # TEST: MD5: Client uses wrong password [ OK ] # TEST: MD5: Client address does not match address configured with password [ OK ] # TEST: MD5: Prefix config [ OK ] # TEST: MD5: Prefix config, client uses wrong password [ OK ] # TEST: MD5: Prefix config, client address not in configured prefix [ OK ] # TEST: SO_DONTROUTE client, syncookies=0 - ns-B IP [ OK ] # TEST: SO_DONTROUTE server, syncookies=0 - ns-B IP [ OK ] # TEST: SO_DONTROUTE client, syncookies=0 - ns-B loopback IP [ OK ] # TEST: SO_DONTROUTE server, syncookies=0 - ns-B loopback IP [ OK ] # TEST: SO_DONTROUTE client, syncookies=2 - ns-B IP [ OK ] # TEST: SO_DONTROUTE server, syncookies=2 - ns-B IP [ OK ] # TEST: SO_DONTROUTE client, syncookies=2 - ns-B loopback IP [ OK ] # TEST: SO_DONTROUTE server, syncookies=2 - ns-B loopback IP [ OK ] # # ################################################################# # tcp_l3mdev_accept enabled # # SYSCTL: net.ipv4.tcp_l3mdev_accept=1 # # TEST: Global server - ns-A IP [ OK ] # TEST: Global server - ns-A loopback IP [ OK ] # TEST: Device server - ns-A IP [ OK ] # TEST: No server - ns-A IP [ OK ] # TEST: No server - ns-A loopback IP [ OK ] # TEST: Client - ns-B IP [ OK ] # TEST: Client, device bind - ns-B IP [ OK ] # TEST: No server, unbound client - ns-B IP [ OK ] # TEST: No server, device client - ns-B IP [ OK ] # TEST: Client - ns-B loopback IP [ OK ] # TEST: Client, device bind - ns-B loopback IP [ OK ] # TEST: No server, unbound client - ns-B loopback IP [ OK ] # TEST: No server, device client - ns-B loopback IP [ OK ] # TEST: Global server, local connection - ns-A IP [ OK ] # TEST: Global server, local connection - ns-A loopback IP [ OK ] # TEST: Global server, local connection - loopback [ OK ] # TEST: Device server, unbound client, local connection - ns-A IP [ OK ] # TEST: Device server, unbound client, local connection - ns-A loopback IP [ OK ] # TEST: Device server, unbound client, local connection - loopback [ OK ] # TEST: Global server, device client, local connection - ns-A IP [ OK ] # TEST: Global server, device client, local connection - ns-A loopback IP [ OK ] # TEST: Global server, device client, local connection - loopback [ OK ] # TEST: Device server, device client, local connection - ns-A IP [ OK ] # TEST: No server, device client, local conn - ns-A IP [ OK ] # TEST: MD5: Single address config [ OK ] # TEST: MD5: Server no config, client uses password [ OK ] # TEST: MD5: Client uses wrong password [ OK ] # TEST: MD5: Client address does not match address configured with password [ OK ] # TEST: MD5: Prefix config [ OK ] # TEST: MD5: Prefix config, client uses wrong password [ OK ] # TEST: MD5: Prefix config, client address not in configured prefix [ OK ] # TEST: SO_DONTROUTE client, syncookies=0 - ns-B IP [ OK ] # TEST: SO_DONTROUTE server, syncookies=0 - ns-B IP [ OK ] # TEST: SO_DONTROUTE client, syncookies=0 - ns-B loopback IP [ OK ] # TEST: SO_DONTROUTE server, syncookies=0 - ns-B loopback IP [ OK ] # TEST: SO_DONTROUTE client, syncookies=2 - ns-B IP [ OK ] # TEST: SO_DONTROUTE server, syncookies=2 - ns-B IP [ OK ] # TEST: SO_DONTROUTE client, syncookies=2 - ns-B loopback IP [ OK ] # TEST: SO_DONTROUTE server, syncookies=2 - ns-B loopback IP [ OK ] # # ################################################################# # With VRF # # # ################################################################# # Global server disabled # # SYSCTL: net.ipv4.tcp_l3mdev_accept=0 # # TEST: Global server - ns-A IP [ OK ] # TEST: VRF server - ns-A IP [ OK ] # TEST: Device server - ns-A IP [ OK ] # TEST: No server - ns-A IP [ OK ] # TEST: Global server - VRF IP [ OK ] # TEST: VRF server - VRF IP [ OK ] # TEST: Device server - VRF IP [ OK ] # TEST: No server - VRF IP [ OK ] # TEST: Global server, local connection - ns-A IP [ OK ] # TEST: MD5: VRF: Single address config [ OK ] # TEST: MD5: VRF: Server no config, client uses password [ OK ] # TEST: MD5: VRF: Client uses wrong password [ OK ] # TEST: MD5: VRF: Client address does not match address configured with password [ OK ] # TEST: MD5: VRF: Prefix config [ OK ] # TEST: MD5: VRF: Prefix config, client uses wrong password [ OK ] # TEST: MD5: VRF: Prefix config, client address not in configured prefix [ OK ] # TEST: MD5: VRF: Single address config in default VRF and VRF, conn in VRF [ OK ] # TEST: MD5: VRF: Single address config in default VRF and VRF, conn in default VRF [ OK ] # TEST: MD5: VRF: Single address config in default VRF and VRF, conn in default VRF with VRF pw [ OK ] # TEST: MD5: VRF: Single address config in default VRF and VRF, conn in VRF with default VRF pw [ OK ] # TEST: MD5: VRF: Prefix config in default VRF and VRF, conn in VRF [ OK ] # TEST: MD5: VRF: Prefix config in default VRF and VRF, conn in default VRF [ OK ] # TEST: MD5: VRF: Prefix config in default VRF and VRF, conn in default VRF with VRF pw [ OK ] # TEST: MD5: VRF: Prefix config in default VRF and VRF, conn in VRF with default VRF pw [ OK ] # TEST: MD5: VRF: Device must be a VRF - single address [ OK ] # TEST: MD5: VRF: Device must be a VRF - prefix [ OK ] # TEST: MD5: VRF: VRF-bound server, unbound key accepts connection [ OK ] # TEST: MD5: VRF: VRF-bound server, bound key accepts connection [ OK ] # SYSCTL: net.ipv4.tcp_l3mdev_accept=1 # # TEST: MD5: VRF: Global server, Key bound to ifindex=0 rejects VRF connection [ OK ] # TEST: MD5: VRF: Global server, key bound to ifindex=0 accepts non-VRF connection [ OK ] # TEST: MD5: VRF: Global server, key not bound to ifindex accepts VRF connection [ OK ] # TEST: MD5: VRF: Global server, key not bound to ifindex accepts non-VRF connection [ OK ] # SYSCTL: net.ipv4.tcp_l3mdev_accept=0 # # # ################################################################# # VRF Global server enabled # # SYSCTL: net.ipv4.tcp_l3mdev_accept=1 # # TEST: Global server - ns-A IP [ OK ] # TEST: VRF server - ns-A IP [ OK ] # TEST: No server - ns-A IP [ OK ] # TEST: Global server - VRF IP [ OK ] # TEST: VRF server - VRF IP [ OK ] # TEST: No server - VRF IP [ OK ] # TEST: Device server - ns-A IP [ OK ] # TEST: Global server, local connection - ns-A IP [ OK ] # TEST: Global server, local connection - VRF IP [ OK ] # TEST: Client, VRF bind - ns-B IP [ OK ] # TEST: Client, device bind - ns-B IP [ OK ] # TEST: No server, VRF client - ns-B IP [ OK ] # TEST: No server, device client - ns-B IP [ OK ] # TEST: Client, VRF bind - ns-B loopback IP [ OK ] # TEST: Client, device bind - ns-B loopback IP [ OK ] # TEST: No server, VRF client - ns-B loopback IP [ OK ] # TEST: No server, device client - ns-B loopback IP [ OK ] # TEST: VRF server, VRF client, local connection - ns-A IP [ OK ] # TEST: VRF server, VRF client, local connection - VRF IP [ OK ] # TEST: VRF server, VRF client, local connection - loopback [ OK ] # TEST: VRF server, device client, local connection - ns-A IP [ OK ] # TEST: VRF server, unbound client, local connection - ns-A IP [ OK ] # TEST: Device server, VRF client, local connection - ns-A IP [ OK ] # TEST: Device server, device client, local connection - ns-A IP [ OK ] # # ########################################################################### # IPv4/UDP # ########################################################################### # # # ################################################################# # No VRF # # # ################################################################# # udp_l3mdev_accept disabled # # SYSCTL: net.ipv4.udp_l3mdev_accept=0 # # TEST: Global server - ns-A IP [ OK ] # TEST: No server - ns-A IP [ OK ] # TEST: Global server - ns-A loopback IP [ OK ] # TEST: No server - ns-A loopback IP [ OK ] # TEST: Device server - ns-A IP [ OK ] # TEST: Client - ns-B IP [ OK ] # TEST: Client, device bind - ns-B IP [ OK ] # TEST: Client, device send via cmsg - ns-B IP [ OK ] # TEST: Client, device bind via IP_UNICAST_IF - ns-B IP [ OK ] # TEST: Client, device bind via IP_UNICAST_IF, with connect() - ns-B IP [ OK ] # TEST: No server, unbound client - ns-B IP [ OK ] # TEST: No server, device client - ns-B IP [ OK ] # TEST: Client - ns-B loopback IP [ OK ] # TEST: Client, device bind - ns-B loopback IP [ OK ] # TEST: Client, device send via cmsg - ns-B loopback IP [ OK ] # TEST: Client, device bind via IP_UNICAST_IF - ns-B loopback IP [ OK ] # TEST: Client, device bind via IP_UNICAST_IF, with connect() - ns-B loopback IP [ OK ] # TEST: No server, unbound client - ns-B loopback IP [ OK ] # TEST: No server, device client - ns-B loopback IP [ OK ] # TEST: Global server, local connection - ns-A IP [ OK ] # TEST: Global server, local connection - ns-A loopback IP [ OK ] # TEST: Global server, local connection - loopback [ OK ] # TEST: Device server, unbound client, local connection - ns-A IP [ OK ] # TEST: Device server, unbound client, local connection - ns-A loopback IP [ OK ] # TEST: Device server, unbound client, local connection - loopback [ OK ] # TEST: Global server, device client, local connection - ns-A IP [ OK ] # TEST: Global server, device send via cmsg, local connection - ns-A IP [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection - ns-A IP [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection, with connect() - ns-A IP [ OK ] # TEST: Global server, device client, local connection - ns-A loopback IP [ OK ] # TEST: Global server, device send via cmsg, local connection - ns-A loopback IP [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection - ns-A loopback IP [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection, with connect() - ns-A loopback IP [ OK ] # TEST: Global server, device client, local connection - loopback [ OK ] # TEST: Global server, device send via cmsg, local connection - loopback [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection - loopback [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection, with connect() - loopback [ OK ] # TEST: Device server, device client, local conn - ns-A IP [ OK ] # TEST: No server, device client, local conn - ns-A IP [ OK ] # TEST: SO_DONTROUTE client - ns-B IP [ OK ] # TEST: SO_DONTROUTE client - ns-B loopback IP [ OK ] # # ################################################################# # udp_l3mdev_accept enabled # # SYSCTL: net.ipv4.udp_l3mdev_accept=1 # # TEST: Global server - ns-A IP [ OK ] # TEST: No server - ns-A IP [ OK ] # TEST: Global server - ns-A loopback IP [ OK ] # TEST: No server - ns-A loopback IP [ OK ] # TEST: Device server - ns-A IP [ OK ] # TEST: Client - ns-B IP [ OK ] # TEST: Client, device bind - ns-B IP [ OK ] # TEST: Client, device send via cmsg - ns-B IP [ OK ] # TEST: Client, device bind via IP_UNICAST_IF - ns-B IP [ OK ] # TEST: Client, device bind via IP_UNICAST_IF, with connect() - ns-B IP [ OK ] # TEST: No server, unbound client - ns-B IP [ OK ] # TEST: No server, device client - ns-B IP [ OK ] # TEST: Client - ns-B loopback IP [ OK ] # TEST: Client, device bind - ns-B loopback IP [ OK ] # TEST: Client, device send via cmsg - ns-B loopback IP [ OK ] # TEST: Client, device bind via IP_UNICAST_IF - ns-B loopback IP [ OK ] # TEST: Client, device bind via IP_UNICAST_IF, with connect() - ns-B loopback IP [ OK ] # TEST: No server, unbound client - ns-B loopback IP [ OK ] # TEST: No server, device client - ns-B loopback IP [ OK ] # TEST: Global server, local connection - ns-A IP [ OK ] # TEST: Global server, local connection - ns-A loopback IP [ OK ] # TEST: Global server, local connection - loopback [ OK ] # TEST: Device server, unbound client, local connection - ns-A IP [ OK ] # TEST: Device server, unbound client, local connection - ns-A loopback IP [ OK ] # TEST: Device server, unbound client, local connection - loopback [ OK ] # TEST: Global server, device client, local connection - ns-A IP [ OK ] # TEST: Global server, device send via cmsg, local connection - ns-A IP [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection - ns-A IP [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection, with connect() - ns-A IP [ OK ] # TEST: Global server, device client, local connection - ns-A loopback IP [ OK ] # TEST: Global server, device send via cmsg, local connection - ns-A loopback IP [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection - ns-A loopback IP [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection, with connect() - ns-A loopback IP [ OK ] # TEST: Global server, device client, local connection - loopback [ OK ] # TEST: Global server, device send via cmsg, local connection - loopback [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection - loopback [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection, with connect() - loopback [ OK ] # TEST: Device server, device client, local conn - ns-A IP [ OK ] # TEST: No server, device client, local conn - ns-A IP [ OK ] # TEST: SO_DONTROUTE client - ns-B IP [ OK ] # TEST: SO_DONTROUTE client - ns-B loopback IP [ OK ] # # ################################################################# # With VRF # # # ################################################################# # Global server disabled # # SYSCTL: net.ipv4.udp_l3mdev_accept=0 # # TEST: Global server - ns-A IP [ OK ] # TEST: VRF server - ns-A IP [ OK ] # TEST: Enslaved device server - ns-A IP [ OK ] # TEST: No server - ns-A IP [ OK ] # TEST: Global server, VRF client, local connection - ns-A IP [ OK ] # TEST: Global server - VRF IP [ OK ] # TEST: VRF server - VRF IP [ OK ] # TEST: Enslaved device server - VRF IP [ OK ] # TEST: No server - VRF IP [ OK ] # TEST: Global server, VRF client, local connection - VRF IP [ OK ] # TEST: VRF server, VRF client, local conn - ns-A IP [ OK ] # TEST: VRF server, enslaved device client, local connection - ns-A IP [ OK ] # TEST: Enslaved device server, VRF client, local conn - ns-A IP [ OK ] # TEST: Enslaved device server, device client, local conn - ns-A IP [ OK ] # # ################################################################# # Global server enabled # # SYSCTL: net.ipv4.udp_l3mdev_accept=1 # # TEST: Global server - ns-A IP [ OK ] # TEST: VRF server - ns-A IP [ OK ] # TEST: Enslaved device server - ns-A IP [ OK ] # TEST: No server - ns-A IP [ OK ] # TEST: Global server - VRF IP [ OK ] # TEST: VRF server - VRF IP [ OK ] # TEST: Enslaved device server - VRF IP [ OK ] # TEST: No server - VRF IP [ OK ] # TEST: VRF client [ OK ] # TEST: Enslaved device client [ OK ] # TEST: No server, VRF client [ OK ] # TEST: No server, enslaved device client [ OK ] # TEST: Global server, VRF client, local conn - ns-A IP [ OK ] # TEST: VRF server, VRF client, local conn - ns-A IP [ OK ] # TEST: VRF server, device client, local conn - ns-A IP [ OK ] # TEST: Enslaved device server, VRF client, local conn - ns-A IP [ OK ] # TEST: Enslaved device server, device client, local conn - ns-A IP [ OK ] # TEST: Global server, VRF client, local conn - VRF IP [ OK ] # TEST: Global server, VRF client, local conn - loopback [ OK ] # TEST: VRF server, VRF client, local conn - VRF IP [ OK ] # TEST: VRF server, VRF client, local conn - loopback [ OK ] # TEST: No server, VRF client, local conn - ns-A IP [ OK ] # TEST: No server, VRF client, local conn - VRF IP [ OK ] # TEST: No server, VRF client, local conn - loopback [ OK ] # # ########################################################################### # IPv4 address binds # ########################################################################### # # # ################################################################# # No VRF # # TEST: Raw socket bind to local address - ns-A IP [ OK ] # TEST: Raw socket bind to local address after device bind - ns-A IP [ OK ] # TEST: Raw socket bind to local address - ns-A loopback IP [ OK ] # TEST: Raw socket bind to local address after device bind - ns-A loopback IP [ OK ] # TEST: Raw socket bind to nonlocal address - nonlocal IP [ OK ] # TEST: TCP socket bind to nonlocal address - nonlocal IP [ OK ] # TEST: ICMP socket bind to nonlocal address - nonlocal IP [ OK ] # TEST: ICMP socket bind to broadcast address - broadcast [ OK ] # TEST: ICMP socket bind to multicast address - multicast [ OK ] # TEST: TCP socket bind to local address - ns-A IP [ OK ] # TEST: TCP socket bind to local address after device bind - ns-A IP [ OK ] # # ################################################################# # With VRF # # TEST: Raw socket bind to local address - ns-A IP [ OK ] # TEST: Raw socket bind to local address after device bind - ns-A IP [ OK ] # TEST: Raw socket bind to local address after VRF bind - ns-A IP [ OK ] # TEST: Raw socket bind to local address - VRF IP [ OK ] # TEST: Raw socket bind to local address after device bind - VRF IP [ OK ] # TEST: Raw socket bind to local address after VRF bind - VRF IP [ OK ] # TEST: Raw socket bind to out of scope address after VRF bind - ns-A loopback IP [ OK ] # TEST: Raw socket bind to nonlocal address after VRF bind - nonlocal IP [ OK ] # TEST: TCP socket bind to nonlocal address after VRF bind - nonlocal IP [ OK ] # TEST: ICMP socket bind to nonlocal address after VRF bind - nonlocal IP [ OK ] # TEST: ICMP socket bind to broadcast address after VRF bind - broadcast [ OK ] # TEST: ICMP socket bind to multicast address after VRF bind - multicast [ OK ] # TEST: TCP socket bind to local address - ns-A IP [ OK ] # TEST: TCP socket bind to local address after device bind - ns-A IP [ OK ] # TEST: TCP socket bind to local address - VRF IP [ OK ] # TEST: TCP socket bind to local address after device bind - VRF IP [ OK ] # TEST: TCP socket bind to invalid local address for VRF - ns-A loopback IP [ OK ] # TEST: TCP socket bind to invalid local address for device bind - ns-A loopback IP [ OK ] # # ########################################################################### # Run time tests - ipv4 # ########################################################################### # # TEST: Device delete with active traffic - ping in - ns-A IP [ OK ] # TEST: Device delete with active traffic - ping in - VRF IP [ OK ] # TEST: Device delete with active traffic - ping out - ns-B IP [ OK ] # TEST: TCP active socket, global server - ns-A IP [ OK ] # TEST: TCP active socket, global server - VRF IP [ OK ] # TEST: TCP active socket, VRF server - ns-A IP [ OK ] # TEST: TCP active socket, VRF server - VRF IP [ OK ] # TEST: TCP active socket, enslaved device server - ns-A IP [ OK ] # TEST: TCP active socket, VRF client - ns-A IP [ OK ] # TEST: TCP active socket, enslaved device client - ns-A IP [ OK ] # TEST: TCP active socket, global server, VRF client, local - ns-A IP [ OK ] # TEST: TCP active socket, global server, VRF client, local - VRF IP [ OK ] # TEST: TCP active socket, VRF server and client, local - ns-A IP [ OK ] # TEST: TCP active socket, VRF server and client, local - VRF IP [ OK ] # TEST: TCP active socket, global server, enslaved device client, local - ns-A IP [ OK ] # TEST: TCP active socket, VRF server, enslaved device client, local - ns-A IP [ OK ] # TEST: TCP active socket, enslaved device server and client, local - ns-A IP [ OK ] # TEST: TCP passive socket, global server - ns-A IP [ OK ] # TEST: TCP passive socket, global server - VRF IP [ OK ] # TEST: TCP passive socket, VRF server - ns-A IP [ OK ] # TEST: TCP passive socket, VRF server - VRF IP [ OK ] # TEST: TCP passive socket, enslaved device server - ns-A IP [ OK ] # TEST: TCP passive socket, VRF client - ns-A IP [ OK ] # TEST: TCP passive socket, enslaved device client - ns-A IP [ OK ] # TEST: TCP passive socket, global server, VRF client, local - ns-A IP [ OK ] # TEST: TCP passive socket, global server, VRF client, local - VRF IP [ OK ] # TEST: TCP passive socket, VRF server and client, local - ns-A IP [ OK ] # TEST: TCP passive socket, VRF server and client, local - VRF IP [ OK ] # TEST: TCP passive socket, global server, enslaved device client, local - ns-A IP [ OK ] # TEST: TCP passive socket, VRF server, enslaved device client, local - ns-A IP [ OK ] # TEST: TCP passive socket, enslaved device server and client, local - ns-A IP [ OK ] # # ########################################################################### # IPv4 Netfilter # ########################################################################### # # # ################################################################# # TCP reset # # TEST: Global server, reject with TCP-reset on Rx - ns-A IP [ OK ] # TEST: Global server, reject with TCP-reset on Rx - VRF IP [ OK ] # # ################################################################# # ICMP unreachable # # TEST: Global TCP server, Rx reject icmp-port-unreach - ns-A IP [ OK ] # TEST: Global TCP server, Rx reject icmp-port-unreach - VRF IP [ OK ] # TEST: Global UDP server, Rx reject icmp-port-unreach - ns-A IP [ OK ] # TEST: Global UDP server, Rx reject icmp-port-unreach - VRF IP [ OK ] # # ########################################################################### # IPv6 ping # ########################################################################### # # # ################################################################# # No VRF # # SYSCTL: net.ipv4.raw_l3mdev_accept=0 # # TEST: ping out - ns-B IPv6 [ OK ] # TEST: ping out - ns-B loopback IPv6 [ OK ] # TEST: ping out - ns-B IPv6 LLA [ OK ] # TEST: ping out - multicast IP [ OK ] # TEST: ping out, device bind - ns-B IPv6 [ OK ] # TEST: ping out, loopback address bind - ns-B IPv6 [ OK ] # TEST: ping out, device bind - ns-B loopback IPv6 [ OK ] # TEST: ping out, loopback address bind - ns-B loopback IPv6 [ OK ] # TEST: ping in - ns-A IPv6 [ OK ] # TEST: ping in - ns-A loopback IPv6 [ OK ] # TEST: ping in - ns-A IPv6 LLA [ OK ] # TEST: ping in - multicast IP [ OK ] # TEST: ping local, no bind - ns-A IPv6 [ OK ] # TEST: ping local, no bind - ns-A loopback IPv6 [ OK ] # TEST: ping local, no bind - IPv6 loopback [ OK ] # TEST: ping local, no bind - ns-A IPv6 LLA [ OK ] # TEST: ping local, no bind - multicast IP [ OK ] # TEST: ping local, device bind - ns-A IPv6 [ OK ] # TEST: ping local, device bind - ns-A IPv6 LLA [ OK ] # TEST: ping local, device bind - multicast IP [ OK ] # TEST: ping local, device bind - ns-A loopback IPv6 [ OK ] # TEST: ping local, device bind - IPv6 loopback [ OK ] # TEST: ping out, blocked by rule - ns-B loopback IPv6 [ OK ] # TEST: ping out, device bind, blocked by rule - ns-B loopback IPv6 [ OK ] # TEST: ping in, blocked by rule - ns-A loopback IPv6 [ OK ] # TEST: ping out, blocked by route - ns-B loopback IPv6 [ OK ] # TEST: ping out, device bind, blocked by route - ns-B loopback IPv6 [ OK ] # TEST: ping in, blocked by route - ns-A loopback IPv6 [ OK ] # TEST: ping out, unreachable route - ns-B loopback IPv6 [ OK ] # TEST: ping out, device bind, unreachable route - ns-B loopback IPv6 [ OK ] # SYSCTL: net.ipv4.raw_l3mdev_accept=0 # # TEST: ping out - ns-B IPv6 [ OK ] # TEST: ping out - ns-B loopback IPv6 [ OK ] # TEST: ping out - ns-B IPv6 LLA [ OK ] # TEST: ping out - multicast IP [ OK ] # TEST: ping out, device bind - ns-B IPv6 [ OK ] # TEST: ping out, loopback address bind - ns-B IPv6 [ OK ] # TEST: ping out, device bind - ns-B loopback IPv6 [ OK ] # TEST: ping out, loopback address bind - ns-B loopback IPv6 [ OK ] # TEST: ping in - ns-A IPv6 [ OK ] # TEST: ping in - ns-A loopback IPv6 [ OK ] # TEST: ping in - ns-A IPv6 LLA [ OK ] # TEST: ping in - multicast IP [ OK ] # TEST: ping local, no bind - ns-A IPv6 [ OK ] # TEST: ping local, no bind - ns-A loopback IPv6 [ OK ] # TEST: ping local, no bind - IPv6 loopback [ OK ] # TEST: ping local, no bind - ns-A IPv6 LLA [ OK ] # TEST: ping local, no bind - multicast IP [ OK ] # TEST: ping local, device bind - ns-A IPv6 [ OK ] # TEST: ping local, device bind - ns-A IPv6 LLA [ OK ] # TEST: ping local, device bind - multicast IP [ OK ] # TEST: ping local, device bind - ns-A loopback IPv6 [ OK ] # TEST: ping local, device bind - IPv6 loopback [ OK ] # TEST: ping out, blocked by rule - ns-B loopback IPv6 [ OK ] # TEST: ping out, device bind, blocked by rule - ns-B loopback IPv6 [ OK ] # TEST: ping in, blocked by rule - ns-A loopback IPv6 [ OK ] # TEST: ping out, blocked by route - ns-B loopback IPv6 [ OK ] # TEST: ping out, device bind, blocked by route - ns-B loopback IPv6 [ OK ] # TEST: ping in, blocked by route - ns-A loopback IPv6 [ OK ] # TEST: ping out, unreachable route - ns-B loopback IPv6 [ OK ] # TEST: ping out, device bind, unreachable route - ns-B loopback IPv6 [ OK ] # # ################################################################# # With VRF # # SYSCTL: net.ipv4.raw_l3mdev_accept=1 # # TEST: ping out, VRF bind - ns-B IPv6 [ OK ] # TEST: ping out, VRF bind - ns-B loopback IPv6 [ OK ] # TEST: ping out, VRF bind - ns-B IPv6 LLA [ OK ] # TEST: ping out, VRF bind - multicast IP [ OK ] # TEST: ping out, device bind - ns-B IPv6 [ OK ] # TEST: ping out, device bind - ns-B loopback IPv6 [ OK ] # TEST: ping out, device bind - ns-B IPv6 LLA [ OK ] # TEST: ping out, device bind - multicast IP [ OK ] # TEST: ping out, vrf device+address bind - ns-B IPv6 [ OK ] # TEST: ping out, vrf device+address bind - ns-B loopback IPv6 [ OK ] # TEST: ping out, vrf device+address bind - ns-B IPv6 LLA [ OK ] # TEST: ping in - ns-A IPv6 [ OK ] # TEST: ping in - VRF IPv6 [ OK ] # TEST: ping in - ns-A IPv6 LLA [ OK ] # TEST: ping in - multicast IP [ OK ] # TEST: ping in - ns-A loopback IPv6 [ OK ] # TEST: ping local, VRF bind - ns-A IPv6 [ OK ] # TEST: ping local, VRF bind - VRF IPv6 [ OK ] # TEST: ping local, VRF bind - IPv6 loopback [ OK ] # TEST: ping local, device bind - ns-A IPv6 [ OK ] # TEST: ping local, device bind - ns-A IPv6 LLA [ OK ] # TEST: ping local, device bind - multicast IP [ OK ] # TEST: ping in, LLA to GUA - ns-A IPv6 [ OK ] # TEST: ping in, LLA to GUA - VRF IPv6 [ OK ] # TEST: ping out, blocked by rule - ns-B loopback IPv6 [ OK ] # TEST: ping out, device bind, blocked by rule - ns-B loopback IPv6 [ OK ] # TEST: ping in, blocked by rule - ns-A loopback IPv6 [ OK ] # TEST: ping out, unreachable route - ns-B loopback IPv6 [ OK ] # TEST: ping out, device bind, unreachable route - ns-B loopback IPv6 [ OK ] # TEST: ping in, unreachable route - ns-A loopback IPv6 [ OK ] # SYSCTL: net.ipv4.raw_l3mdev_accept=1 # # TEST: ping out, VRF bind - ns-B IPv6 [ OK ] # TEST: ping out, VRF bind - ns-B loopback IPv6 [ OK ] # TEST: ping out, VRF bind - ns-B IPv6 LLA [ OK ] # TEST: ping out, VRF bind - multicast IP [ OK ] # TEST: ping out, device bind - ns-B IPv6 [ OK ] # TEST: ping out, device bind - ns-B loopback IPv6 [ OK ] # TEST: ping out, device bind - ns-B IPv6 LLA [ OK ] # TEST: ping out, device bind - multicast IP [ OK ] # TEST: ping out, vrf device+address bind - ns-B IPv6 [ OK ] # TEST: ping out, vrf device+address bind - ns-B loopback IPv6 [ OK ] # TEST: ping out, vrf device+address bind - ns-B IPv6 LLA [ OK ] # TEST: ping in - ns-A IPv6 [ OK ] # TEST: ping in - VRF IPv6 [ OK ] # TEST: ping in - ns-A IPv6 LLA [ OK ] # TEST: ping in - multicast IP [ OK ] # TEST: ping in - ns-A loopback IPv6 [ OK ] # TEST: ping local, VRF bind - ns-A IPv6 [ OK ] # TEST: ping local, VRF bind - VRF IPv6 [ OK ] # TEST: ping local, VRF bind - IPv6 loopback [ OK ] # TEST: ping local, device bind - ns-A IPv6 [ OK ] # TEST: ping local, device bind - ns-A IPv6 LLA [ OK ] # TEST: ping local, device bind - multicast IP [ OK ] # TEST: ping in, LLA to GUA - ns-A IPv6 [ OK ] # TEST: ping in, LLA to GUA - VRF IPv6 [ OK ] # TEST: ping out, blocked by rule - ns-B loopback IPv6 [ OK ] # TEST: ping out, device bind, blocked by rule - ns-B loopback IPv6 [ OK ] # TEST: ping in, blocked by rule - ns-A loopback IPv6 [ OK ] # TEST: ping out, unreachable route - ns-B loopback IPv6 [ OK ] # TEST: ping out, device bind, unreachable route - ns-B loopback IPv6 [ OK ] # TEST: ping in, unreachable route - ns-A loopback IPv6 [ OK ] # # ########################################################################### # IPv6/TCP # ########################################################################### # # # ################################################################# # No VRF # # # ################################################################# # tcp_l3mdev_accept disabled # # SYSCTL: net.ipv4.tcp_l3mdev_accept=0 # # TEST: Global server - ns-A IPv6 [ OK ] # TEST: Global server - ns-A loopback IPv6 [ OK ] # TEST: Global server - ns-A IPv6 LLA [ OK ] # TEST: No server - ns-A IPv6 [ OK ] # TEST: No server - ns-A loopback IPv6 [ OK ] # TEST: No server - ns-A IPv6 LLA [ OK ] # TEST: Client - ns-B IPv6 [ OK ] # TEST: Client - ns-B loopback IPv6 [ OK ] # TEST: Client - ns-B IPv6 LLA [ OK ] # TEST: Client, device bind - ns-B IPv6 [ OK ] # TEST: Client, device bind - ns-B loopback IPv6 [ OK ] # TEST: Client, device bind - ns-B IPv6 LLA [ OK ] # TEST: No server, device client - ns-B IPv6 [ OK ] # TEST: No server, device client - ns-B loopback IPv6 [ OK ] # TEST: No server, device client - ns-B IPv6 LLA [ OK ] # TEST: Global server, local connection - ns-A IPv6 [ OK ] # TEST: Global server, local connection - ns-A loopback IPv6 [ OK ] # TEST: Global server, local connection - IPv6 loopback [ OK ] # TEST: Device server, unbound client, local connection - ns-A IPv6 [ OK ] # TEST: Device server, unbound client, local connection - ns-A loopback IPv6 [ OK ] # TEST: Device server, unbound client, local connection - IPv6 loopback [ OK ] # TEST: Global server, device client, local connection - ns-A IPv6 [ OK ] # TEST: Global server, device client, local connection - ns-A loopback IPv6 [ OK ] # TEST: Global server, device client, local connection - IPv6 loopback [ OK ] # TEST: Device server, device client, local conn - ns-A IPv6 [ OK ] # TEST: Device server, device client, local conn - ns-A IPv6 LLA [ OK ] # TEST: No server, device client, local conn - ns-A IPv6 [ OK ] # TEST: No server, device client, local conn - ns-A IPv6 LLA [ OK ] # TEST: MD5: Single address config [ OK ] # TEST: MD5: Server no config, client uses password [ OK ] # TEST: MD5: Client uses wrong password [ OK ] # TEST: MD5: Client address does not match address configured with password [ OK ] # TEST: MD5: Prefix config [ OK ] # TEST: MD5: Prefix config, client uses wrong password [ OK ] # TEST: MD5: Prefix config, client address not in configured prefix [ OK ] # # ################################################################# # tcp_l3mdev_accept enabled # # SYSCTL: net.ipv4.tcp_l3mdev_accept=1 # # TEST: Global server - ns-A IPv6 [ OK ] # TEST: Global server - ns-A loopback IPv6 [ OK ] # TEST: Global server - ns-A IPv6 LLA [ OK ] # TEST: No server - ns-A IPv6 [ OK ] # TEST: No server - ns-A loopback IPv6 [ OK ] # TEST: No server - ns-A IPv6 LLA [ OK ] # TEST: Client - ns-B IPv6 [ OK ] # TEST: Client - ns-B loopback IPv6 [ OK ] # TEST: Client - ns-B IPv6 LLA [ OK ] # TEST: Client, device bind - ns-B IPv6 [ OK ] # TEST: Client, device bind - ns-B loopback IPv6 [ OK ] # TEST: Client, device bind - ns-B IPv6 LLA [ OK ] # TEST: No server, device client - ns-B IPv6 [ OK ] # TEST: No server, device client - ns-B loopback IPv6 [ OK ] # TEST: No server, device client - ns-B IPv6 LLA [ OK ] # TEST: Global server, local connection - ns-A IPv6 [ OK ] # TEST: Global server, local connection - ns-A loopback IPv6 [ OK ] # TEST: Global server, local connection - IPv6 loopback [ OK ] # TEST: Device server, unbound client, local connection - ns-A IPv6 [ OK ] # TEST: Device server, unbound client, local connection - ns-A loopback IPv6 [ OK ] # TEST: Device server, unbound client, local connection - IPv6 loopback [ OK ] # TEST: Global server, device client, local connection - ns-A IPv6 [ OK ] # TEST: Global server, device client, local connection - ns-A loopback IPv6 [ OK ] # TEST: Global server, device client, local connection - IPv6 loopback [ OK ] # TEST: Device server, device client, local conn - ns-A IPv6 [ OK ] # TEST: Device server, device client, local conn - ns-A IPv6 LLA [ OK ] # TEST: No server, device client, local conn - ns-A IPv6 [ OK ] # TEST: No server, device client, local conn - ns-A IPv6 LLA [ OK ] # TEST: MD5: Single address config [ OK ] # TEST: MD5: Server no config, client uses password [ OK ] # TEST: MD5: Client uses wrong password [ OK ] # TEST: MD5: Client address does not match address configured with password [ OK ] # TEST: MD5: Prefix config [ OK ] # TEST: MD5: Prefix config, client uses wrong password [ OK ] # TEST: MD5: Prefix config, client address not in configured prefix [ OK ] # # ################################################################# # With VRF # # # ################################################################# # Global server disabled # # SYSCTL: net.ipv4.tcp_l3mdev_accept=0 # # TEST: Global server - ns-A IPv6 [ OK ] # TEST: Global server - VRF IPv6 [ OK ] # TEST: Global server - ns-A IPv6 LLA [ OK ] # TEST: VRF server - ns-A IPv6 [ OK ] # TEST: VRF server - VRF IPv6 [ OK ] # TEST: VRF server - ns-A IPv6 LLA [ OK ] # TEST: Device server - ns-A IPv6 [ OK ] # TEST: Device server - VRF IPv6 [ OK ] # TEST: Device server - ns-A IPv6 LLA [ OK ] # TEST: No server - ns-A IPv6 [ OK ] # TEST: No server - VRF IPv6 [ OK ] # TEST: No server - ns-A IPv6 LLA [ OK ] # TEST: Global server, local connection - ns-A IPv6 [ OK ] # TEST: MD5: VRF: Single address config [ OK ] # TEST: MD5: VRF: Server no config, client uses password [ OK ] # TEST: MD5: VRF: Client uses wrong password [ OK ] # TEST: MD5: VRF: Client address does not match address configured with password [ OK ] # TEST: MD5: VRF: Prefix config [ OK ] # TEST: MD5: VRF: Prefix config, client uses wrong password [ OK ] # TEST: MD5: VRF: Prefix config, client address not in configured prefix [ OK ] # TEST: MD5: VRF: Single address config in default VRF and VRF, conn in VRF [ OK ] # TEST: MD5: VRF: Single address config in default VRF and VRF, conn in default VRF [ OK ] # TEST: MD5: VRF: Single address config in default VRF and VRF, conn in default VRF with VRF pw [ OK ] # TEST: MD5: VRF: Single address config in default VRF and VRF, conn in VRF with default VRF pw [ OK ] # TEST: MD5: VRF: Prefix config in default VRF and VRF, conn in VRF [ OK ] # TEST: MD5: VRF: Prefix config in default VRF and VRF, conn in default VRF [ OK ] # TEST: MD5: VRF: Prefix config in default VRF and VRF, conn in default VRF with VRF pw [ OK ] # TEST: MD5: VRF: Prefix config in default VRF and VRF, conn in VRF with default VRF pw [ OK ] # TEST: MD5: VRF: Device must be a VRF - single address [ OK ] # TEST: MD5: VRF: Device must be a VRF - prefix [ OK ] # # ################################################################# # VRF Global server enabled # # SYSCTL: net.ipv4.tcp_l3mdev_accept=1 # # TEST: Global server - ns-A IPv6 [ OK ] # TEST: Global server - VRF IPv6 [ OK ] # TEST: VRF server - ns-A IPv6 [ OK ] # TEST: VRF server - VRF IPv6 [ OK ] # TEST: Global server - ns-A IPv6 LLA [ OK ] # TEST: VRF server - ns-A IPv6 LLA [ OK ] # TEST: Device server - ns-A IPv6 [ OK ] # TEST: Device server - ns-A IPv6 LLA [ OK ] # TEST: No server - ns-A IPv6 [ OK ] # TEST: No server - VRF IPv6 [ OK ] # TEST: No server - ns-A IPv6 LLA [ OK ] # TEST: Global server, local connection - ns-A IPv6 [ OK ] # TEST: Global server, local connection - VRF IPv6 [ OK ] # TEST: Client, VRF bind - ns-B IPv6 [ OK ] # TEST: Client, VRF bind - ns-B loopback IPv6 [ OK ] # TEST: Client, VRF bind - ns-B IPv6 LLA [ OK ] # TEST: Client, device bind - ns-B IPv6 [ OK ] # TEST: Client, device bind - ns-B loopback IPv6 [ OK ] # TEST: Client, device bind - ns-B IPv6 LLA [ OK ] # TEST: No server, VRF client - ns-B IPv6 [ OK ] # TEST: No server, VRF client - ns-B loopback IPv6 [ OK ] # TEST: No server, device client - ns-B IPv6 [ OK ] # TEST: No server, device client - ns-B loopback IPv6 [ OK ] # TEST: No server, device client - ns-B IPv6 LLA [ OK ] # TEST: VRF server, VRF client, local connection - ns-A IPv6 [ OK ] # TEST: VRF server, VRF client, local connection - VRF IPv6 [ OK ] # TEST: VRF server, VRF client, local connection - IPv6 loopback [ OK ] # TEST: VRF server, device client, local connection - ns-A IPv6 [ OK ] # TEST: VRF server, unbound client, local connection - ns-A IPv6 [ OK ] # TEST: Device server, VRF client, local connection - ns-A IPv6 [ OK ] # TEST: Device server, device client, local connection - ns-A IPv6 [ OK ] # TEST: Device server, device client, local connection - ns-A IPv6 LLA [ OK ] # SYSCTL: net.ipv4.udp_early_demux=1 # # # ########################################################################### # IPv6/UDP # ########################################################################### # # # ################################################################# # No VRF # # # ################################################################# # udp_l3mdev_accept disabled # # SYSCTL: net.ipv4.udp_l3mdev_accept=0 # # TEST: Global server - ns-A IPv6 [ OK ] # TEST: Device server - ns-A IPv6 [ OK ] # TEST: Global server - ns-A IPv6 LLA [ OK ] # TEST: Device server - ns-A IPv6 LLA [ OK ] # TEST: Global server - ns-A loopback IPv6 [ OK ] # TEST: No server - ns-A IPv6 [ OK ] # TEST: No server - ns-A loopback IPv6 [ OK ] # TEST: No server - ns-A IPv6 LLA [ OK ] # TEST: Client - ns-B IPv6 [ OK ] # TEST: Client, device bind - ns-B IPv6 [ OK ] # TEST: Client, device send via cmsg - ns-B IPv6 [ OK ] # TEST: Client, device bind via IPV6_UNICAST_IF - ns-B IPv6 [ OK ] # TEST: No server, unbound client - ns-B IPv6 [ OK ] # TEST: No server, device client - ns-B IPv6 [ OK ] # TEST: Client - ns-B loopback IPv6 [ OK ] # TEST: Client, device bind - ns-B loopback IPv6 [ OK ] # TEST: Client, device send via cmsg - ns-B loopback IPv6 [ OK ] # TEST: Client, device bind via IPV6_UNICAST_IF - ns-B loopback IPv6 [ OK ] # TEST: No server, unbound client - ns-B loopback IPv6 [ OK ] # TEST: No server, device client - ns-B loopback IPv6 [ OK ] # TEST: Client - ns-B IPv6 LLA [ OK ] # TEST: Client, device bind - ns-B IPv6 LLA [ OK ] # TEST: Client, device send via cmsg - ns-B IPv6 LLA [ OK ] # TEST: Client, device bind via IPV6_UNICAST_IF - ns-B IPv6 LLA [ OK ] # TEST: No server, unbound client - ns-B IPv6 LLA [ OK ] # TEST: No server, device client - ns-B IPv6 LLA [ OK ] # TEST: Global server, local connection - ns-A IPv6 [ OK ] # TEST: Global server, local connection - ns-A loopback IPv6 [ OK ] # TEST: Global server, local connection - IPv6 loopback [ OK ] # TEST: Device server, unbound client, local connection - ns-A IPv6 [ OK ] # TEST: Device server, local connection - ns-A loopback IPv6 [ OK ] # TEST: Device server, local connection - IPv6 loopback [ OK ] # TEST: Global server, device client, local connection - ns-A IPv6 [ OK ] # TEST: Global server, device send via cmsg, local connection - ns-A IPv6 [ OK ] # TEST: Global server, device client via IPV6_UNICAST_IF, local connection - ns-A IPv6 [ OK ] # TEST: Global server, device client, local connection - ns-A loopback IPv6 [ OK ] # TEST: Global server, device send via cmsg, local connection - ns-A loopback IPv6 [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection - ns-A loopback IPv6 [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection, with connect() - ns-A loopback IPv6 [ OK ] # TEST: Global server, device client, local connection - IPv6 loopback [ OK ] # TEST: Global server, device send via cmsg, local connection - IPv6 loopback [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection - IPv6 loopback [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection, with connect() - IPv6 loopback [ OK ] # TEST: Device server, device client, local conn - ns-A IPv6 [ OK ] # TEST: No server, device client, local conn - ns-A IPv6 [ OK ] # TEST: UDP in - LLA to GUA [ OK ] # # ################################################################# # udp_l3mdev_accept enabled # # SYSCTL: net.ipv4.udp_l3mdev_accept=1 # # TEST: Global server - ns-A IPv6 [ OK ] # TEST: Device server - ns-A IPv6 [ OK ] # TEST: Global server - ns-A IPv6 LLA [ OK ] # TEST: Device server - ns-A IPv6 LLA [ OK ] # TEST: Global server - ns-A loopback IPv6 [ OK ] # TEST: No server - ns-A IPv6 [ OK ] # TEST: No server - ns-A loopback IPv6 [ OK ] # TEST: No server - ns-A IPv6 LLA [ OK ] # TEST: Client - ns-B IPv6 [ OK ] # TEST: Client, device bind - ns-B IPv6 [ OK ] # TEST: Client, device send via cmsg - ns-B IPv6 [ OK ] # TEST: Client, device bind via IPV6_UNICAST_IF - ns-B IPv6 [ OK ] # TEST: No server, unbound client - ns-B IPv6 [ OK ] # TEST: No server, device client - ns-B IPv6 [ OK ] # TEST: Client - ns-B loopback IPv6 [ OK ] # TEST: Client, device bind - ns-B loopback IPv6 [ OK ] # TEST: Client, device send via cmsg - ns-B loopback IPv6 [ OK ] # TEST: Client, device bind via IPV6_UNICAST_IF - ns-B loopback IPv6 [ OK ] # TEST: No server, unbound client - ns-B loopback IPv6 [ OK ] # TEST: No server, device client - ns-B loopback IPv6 [ OK ] # TEST: Client - ns-B IPv6 LLA [ OK ] # TEST: Client, device bind - ns-B IPv6 LLA [ OK ] # TEST: Client, device send via cmsg - ns-B IPv6 LLA [ OK ] # TEST: Client, device bind via IPV6_UNICAST_IF - ns-B IPv6 LLA [ OK ] # TEST: No server, unbound client - ns-B IPv6 LLA [ OK ] # TEST: No server, device client - ns-B IPv6 LLA [ OK ] # TEST: Global server, local connection - ns-A IPv6 [ OK ] # TEST: Global server, local connection - ns-A loopback IPv6 [ OK ] # TEST: Global server, local connection - IPv6 loopback [ OK ] # TEST: Device server, unbound client, local connection - ns-A IPv6 [ OK ] # TEST: Device server, local connection - ns-A loopback IPv6 [ OK ] # TEST: Device server, local connection - IPv6 loopback [ OK ] # TEST: Global server, device client, local connection - ns-A IPv6 [ OK ] # TEST: Global server, device send via cmsg, local connection - ns-A IPv6 [ OK ] # TEST: Global server, device client via IPV6_UNICAST_IF, local connection - ns-A IPv6 [ OK ] # TEST: Global server, device client, local connection - ns-A loopback IPv6 [ OK ] # TEST: Global server, device send via cmsg, local connection - ns-A loopback IPv6 [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection - ns-A loopback IPv6 [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection, with connect() - ns-A loopback IPv6 [ OK ] # TEST: Global server, device client, local connection - IPv6 loopback [ OK ] # TEST: Global server, device send via cmsg, local connection - IPv6 loopback [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection - IPv6 loopback [ OK ] # TEST: Global server, device client via IP_UNICAST_IF, local connection, with connect() - IPv6 loopback [ OK ] # TEST: Device server, device client, local conn - ns-A IPv6 [ OK ] # TEST: No server, device client, local conn - ns-A IPv6 [ OK ] # TEST: UDP in - LLA to GUA [ OK ] # # ################################################################# # With VRF # # # ################################################################# # Global server disabled # # SYSCTL: net.ipv4.udp_l3mdev_accept=0 # # TEST: Global server - ns-A IPv6 [ OK ] # TEST: Global server - VRF IPv6 [ OK ] # TEST: VRF server - ns-A IPv6 [ OK ] # TEST: VRF server - VRF IPv6 [ OK ] # TEST: Enslaved device server - ns-A IPv6 [ OK ] # TEST: Enslaved device server - VRF IPv6 [ OK ] # TEST: No server - ns-A IPv6 [ OK ] # TEST: No server - VRF IPv6 [ OK ] # TEST: Global server, VRF client, local conn - ns-A IPv6 [ OK ] # TEST: Global server, VRF client, local conn - VRF IPv6 [ OK ] # TEST: VRF server, VRF client, local conn - ns-A IPv6 [ OK ] # TEST: VRF server, VRF client, local conn - VRF IPv6 [ OK ] # TEST: Global server, device client, local conn - ns-A IPv6 [ OK ] # TEST: VRF server, device client, local conn - ns-A IPv6 [ OK ] # TEST: Enslaved device server, VRF client, local conn - ns-A IPv6 [ OK ] # TEST: Enslaved device server, device client, local conn - ns-A IPv6 [ OK ] # # ################################################################# # Global server enabled # # SYSCTL: net.ipv4.udp_l3mdev_accept=1 # # TEST: Global server - ns-A IPv6 [ OK ] # TEST: Global server - VRF IPv6 [ OK ] # TEST: VRF server - ns-A IPv6 [ OK ] # TEST: VRF server - VRF IPv6 [ OK ] # TEST: Enslaved device server - ns-A IPv6 [ OK ] # TEST: Enslaved device server - VRF IPv6 [ OK ] # TEST: No server - ns-A IPv6 [ OK ] # TEST: No server - VRF IPv6 [ OK ] # TEST: VRF client [ OK ] # TEST: No server, VRF client [ OK ] # TEST: Enslaved device client [ OK ] # TEST: No server, enslaved device client [ OK ] # TEST: Global server, VRF client, local conn - ns-A IPv6 [ OK ] # TEST: VRF server, VRF client, local conn - ns-A IPv6 [ OK ] # TEST: Global server, VRF client, local conn - VRF IPv6 [ OK ] # TEST: VRF server, VRF client, local conn - VRF IPv6 [ OK ] # TEST: No server, VRF client, local conn - ns-A IPv6 [ OK ] # TEST: No server, VRF client, local conn - VRF IPv6 [ OK ] # TEST: Global server, device client, local conn - ns-A IPv6 [ OK ] # TEST: VRF server, device client, local conn - ns-A IPv6 [ OK ] # TEST: Device server, VRF client, local conn - ns-A IPv6 [ OK ] # TEST: Device server, device client, local conn - ns-A IPv6 [ OK ] # TEST: No server, device client, local conn - ns-A IPv6 [ OK ] # TEST: Global server, linklocal IP [ OK ] # TEST: No server, linklocal IP [ OK ] # TEST: Enslaved device client, linklocal IP [ OK ] # TEST: No server, device client, peer linklocal IP [ OK ] # TEST: Enslaved device client, local conn - linklocal IP [ OK ] # TEST: No server, device client, local conn - linklocal IP [ OK ] # TEST: UDP in - LLA to GUA [ OK ] # # ########################################################################### # IPv6 address binds # ########################################################################### # # # ################################################################# # No VRF # # TEST: Raw socket bind to local address - ns-A IPv6 [ OK ] # TEST: Raw socket bind to local address after device bind - ns-A IPv6 [ OK ] # TEST: Raw socket bind to local address - ns-A loopback IPv6 [ OK ] # TEST: Raw socket bind to local address after device bind - ns-A loopback IPv6 [ OK ] # TEST: Raw socket bind to nonlocal address - nonlocal IPv6 [ OK ] # TEST: TCP socket bind to local address - ns-A IPv6 [ OK ] # TEST: TCP socket bind to local address after device bind - ns-A IPv6 [ OK ] # TEST: TCP socket bind to out of scope local address - ns-A loopback IPv6 [ OK ] # # ################################################################# # With VRF # # TEST: Raw socket bind to local address after vrf bind - ns-A IPv6 [ OK ] # TEST: Raw socket bind to local address after device bind - ns-A IPv6 [ OK ] # TEST: Raw socket bind to local address after vrf bind - VRF IPv6 [ OK ] # TEST: Raw socket bind to local address after device bind - VRF IPv6 [ OK ] # TEST: Raw socket bind to invalid local address after vrf bind - ns-A loopback IPv6 [ OK ] # TEST: Raw socket bind to nonlocal address after VRF bind - nonlocal IPv6 [ OK ] # TEST: TCP socket bind to local address with VRF bind - ns-A IPv6 [ OK ] # TEST: TCP socket bind to local address with VRF bind - VRF IPv6 [ OK ] # TEST: TCP socket bind to local address with device bind - ns-A IPv6 [ OK ] # TEST: TCP socket bind to VRF address with device bind - VRF IPv6 [ OK ] # TEST: TCP socket bind to invalid local address for VRF - ns-A loopback IPv6 [ OK ] # TEST: TCP socket bind to invalid local address for device bind - ns-A loopback IPv6 [ OK ] # # ########################################################################### # Run time tests - ipv6 # ########################################################################### # # TEST: Device delete with active traffic - ping in - ns-A IPv6 [ OK ] # TEST: Device delete with active traffic - ping out - ns-A IPv6 [ OK ] # TEST: TCP active socket, global server - ns-A IPv6 [ OK ] # TEST: TCP active socket, global server - VRF IPv6 [ OK ] # TEST: TCP active socket, VRF server - ns-A IPv6 [ OK ] # TEST: TCP active socket, VRF server - VRF IPv6 [ OK ] # TEST: TCP active socket, enslaved device server - ns-A IPv6 [ OK ] # TEST: TCP active socket, enslaved device server - VRF IPv6 [ OK ] # TEST: TCP active socket, VRF client [ OK ] # TEST: TCP active socket, enslaved device client [ OK ] # TEST: TCP active socket, global server, VRF client - ns-A IPv6 [ OK ] # TEST: TCP active socket, global server, VRF client - VRF IPv6 [ OK ] # TEST: TCP active socket, VRF server and client - ns-A IPv6 [ OK ] # TEST: TCP active socket, VRF server and client - VRF IPv6 [ OK ] # TEST: TCP active socket, global server, device client - ns-A IPv6 [ OK ] # TEST: TCP active socket, VRF server, device client - ns-A IPv6 [ OK ] # TEST: TCP active socket, device server, device client - ns-A IPv6 [ OK ] # TEST: TCP passive socket, global server - ns-A IPv6 [ OK ] # TEST: TCP passive socket, global server - VRF IPv6 [ OK ] # TEST: TCP passive socket, VRF server - ns-A IPv6 [ OK ] # TEST: TCP passive socket, VRF server - VRF IPv6 [ OK ] # TEST: TCP passive socket, enslaved device server - ns-A IPv6 [ OK ] # TEST: TCP passive socket, enslaved device server - VRF IPv6 [ OK ] # TEST: TCP passive socket, VRF client [ OK ] # TEST: TCP passive socket, enslaved device client [ OK ] # TEST: TCP passive socket, global server, VRF client - ns-A IPv6 [ OK ] # TEST: TCP passive socket, global server, VRF client - VRF IPv6 [ OK ] # TEST: TCP passive socket, VRF server and client - ns-A IPv6 [ OK ] # TEST: TCP passive socket, VRF server and client - VRF IPv6 [ OK ] # TEST: TCP passive socket, global server, device client - ns-A IPv6 [ OK ] # TEST: TCP passive socket, VRF server, device client - ns-A IPv6 [ OK ] # TEST: TCP passive socket, device server, device client - ns-A IPv6 [ OK ] # TEST: UDP active socket, global server - ns-A IPv6 [ OK ] # TEST: UDP active socket, global server - VRF IPv6 [ OK ] # TEST: UDP active socket, VRF server - ns-A IPv6 [ OK ] # TEST: UDP active socket, VRF server - VRF IPv6 [ OK ] # TEST: UDP active socket, enslaved device server - ns-A IPv6 [ OK ] # TEST: UDP active socket, enslaved device server - VRF IPv6 [ OK ] # TEST: UDP active socket, VRF client [ OK ] # TEST: UDP active socket, enslaved device client [ OK ] # TEST: UDP active socket, global server, VRF client - ns-A IPv6 [ OK ] # TEST: UDP active socket, global server, VRF client - VRF IPv6 [ OK ] # TEST: UDP active socket, VRF server and client - ns-A IPv6 [ OK ] # TEST: UDP active socket, VRF server and client - VRF IPv6 [ OK ] # TEST: UDP active socket, global server, device client - ns-A IPv6 [ OK ] # TEST: UDP active socket, VRF server, device client - ns-A IPv6 [ OK ] # TEST: UDP active socket, device server, device client - ns-A IPv6 [ OK ] # # ########################################################################### # IPv6 Netfilter # ########################################################################### # # # ################################################################# # TCP reset # # TEST: Global server, reject with TCP-reset on Rx - ns-A IPv6 [ OK ] # TEST: Global server, reject with TCP-reset on Rx - VRF IPv6 [ OK ] # # ################################################################# # ICMP unreachable # # TEST: Global TCP server, Rx reject icmp-port-unreach - ns-A IPv6 [ OK ] # TEST: Global TCP server, Rx reject icmp-port-unreach - VRF IPv6 [ OK ] # TEST: Global UDP server, Rx reject icmp-port-unreach - ns-A IPv6 [ OK ] # TEST: Global UDP server, Rx reject icmp-port-unreach - VRF IPv6 [ OK ] # # ########################################################################### # Use cases # ########################################################################### # # # ################################################################# # Device enslaved to bridge # # TEST: Bridge into VRF - IPv4 ping out [ OK ] # TEST: Bridge into VRF - IPv6 ping out [ OK ] # TEST: Bridge into VRF - IPv4 ping in [ OK ] # TEST: Bridge into VRF - IPv6 ping in [ OK ] # modprobe: FATAL: Module br_netfilter not found in directory /lib/modules/6.8.0-rc6-virtme # TEST: Bridge vlan into VRF - IPv4 ping out [ OK ] # TEST: Bridge vlan into VRF - IPv6 ping out [ OK ] # TEST: Bridge vlan into VRF - IPv4 ping in [ OK ] # TEST: Bridge vlan into VRF - IPv6 ping in [ OK ] # modprobe: FATAL: Module br_netfilter not found in directory /lib/modules/6.8.0-rc6-virtme # # ################################################################# # Ping LLA with multiple interfaces # # TEST: Pre cycle, ping out ns-B - multicast IP [ OK ] # TEST: Pre cycle, ping out ns-C - multicast IP [ OK ] # TEST: Post cycle nsa-0noZp4 eth1, ping out ns-B - multicast IP [FAIL] # expected rc 0; actual rc 1 # TEST: Post cycle nsa-0noZp4 eth1, ping out ns-C - multicast IP [ OK ] # TEST: Post cycle nsa-0noZp4 eth2, ping out ns-B - multicast IP [ OK ] # TEST: Post cycle nsa-0noZp4 eth2, ping out ns-C - multicast IP [ OK ] # # ################################################################# # SNAT on VRF # # TEST: IPv4 TCP connection over VRF with SNAT [ OK ] # TEST: IPv6 TCP connection over VRF with SNAT [ OK ] # # Tests passed: 905 # Tests failed: 1 not ok 1 selftests: net: fcnal-test.sh # exit=1 make[1]: Leaving directory '/home/virtme/testing-1/tools/testing/selftests/net' make: Leaving directory '/home/virtme/testing-1/tools/testing/selftests' xx__-> echo $? 0 xx__->