netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stephen Suryaputra <ssuryaextr@gmail.com>
To: David Ahern <dsahern@gmail.com>
Cc: netdev@vger.kernel.org
Subject: Re: VRF NS for lladdr sent on the wrong interface
Date: Thu, 3 Dec 2020 08:01:09 -0500	[thread overview]
Message-ID: <20201203130109.GA26743@vmserver> (raw)
In-Reply-To: <70557d4f-cf35-ddba-391c-c66aa8ca242a@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 867 bytes --]

On Tue, Dec 01, 2020 at 06:06:53PM -0700, David Ahern wrote:
> >>
> >> With your patch does ping from both hosts work?
> > 
> > Yes, it does.
> > 
> >> What about all of the tests in
> >> tools/testing/selftests/net/fcnal-test.sh? specifically curious about
> >> the 'LLA to GUA' tests (link local to global). Perhaps those tests need
> >> a second interface (e.g., a dummy) that is brought up first to cause the
> >> ordering to be different.
> > 
> > The script needs nettest to be in the path...
> > 
> 
> nettest is in the same directory. Build it and then run the script -
> with your patch applied. We need to see if it affects existing tests.

The tests in fcnal-test.sh passed. There are two failures that are
expected, I think. Attached is the output.

If you agree that my patch is the right solution, I can send the patch
out for review.

Thanks,
Stephen.

[-- Attachment #2: fcnal-test-output.txt --]
[-- Type: text/plain, Size: 66029 bytes --]


###########################################################################
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 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 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 ]

###########################################################################
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 ]

#################################################################
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 ]

#################################################################
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 ]

#################################################################
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: 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: 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, 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, 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: Device server, device client, local conn - ns-A IP                      [ OK ]
TEST: No server, device client, local conn - ns-A 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: 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: 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, 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, 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: Device server, device client, local conn - ns-A IP                      [ OK ]
TEST: No server, device client, local conn - ns-A 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 ]

###########################################################################
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 ]

#################################################################
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                                      [FAIL]
TEST: ping out, VRF bind - multicast IP                                       [FAIL]
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, 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: 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, 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: 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 ]

###########################################################################
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
###########################################################################

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 ]
TEST: Bridge into VRF with br_netfilter - IPv4 ping out                       [ OK ]
TEST: Bridge into VRF with br_netfilter - IPv6 ping out                       [ OK ]
TEST: Bridge into VRF with br_netfilter - IPv4 ping in                        [ OK ]
TEST: Bridge into VRF with br_netfilter - IPv6 ping in                        [ OK ]
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 ]
TEST: Bridge vlan into VRF with br_netfilter - IPv4 ping out                  [ OK ]
TEST: Bridge vlan into VRF with br_netfilter - IPv6 ping out                  [ OK ]
TEST: Bridge vlan into VRF - IPv4 ping in                                     [ OK ]
TEST: Bridge vlan into VRF - IPv6 ping in                                     [ OK ]

Tests passed: 708
Tests failed:   2

  reply	other threads:[~2020-12-03 13:02 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-24  0:23 VRF NS for lladdr sent on the wrong interface Stephen Suryaputra
2020-11-24 20:43 ` David Ahern
2020-11-24 20:57   ` Stephen Suryaputra
2020-11-25 15:10     ` Stephen Suryaputra
2020-12-01  1:15 ` David Ahern
2020-12-01 19:00   ` Stephen Suryaputra
2020-12-02  1:06     ` David Ahern
2020-12-03 13:01       ` Stephen Suryaputra [this message]
2020-12-03 15:53         ` David Ahern

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201203130109.GA26743@vmserver \
    --to=ssuryaextr@gmail.com \
    --cc=dsahern@gmail.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).