From: Ido Schimmel <idosch@nvidia.com>
This patchset adds forwarding selftests for ip6gre. The tests can be run
with veth pairs or with physical loopbacks.
Patch #1 adds a new config option to determine if 'skip_sw' / 'skip_hw'
flags are used when installing tc filters. By default, it is not set
which means the flags are not used. 'skip_sw' is useful to ensure
traffic is forwarded by the hardware data path.
Patch #2 adds a new helper function.
Patches #3-#4 add the forwarding selftests.
Patch #5 adds a mlxsw-specific selftest to validate correct behavior of
the 'decap_error' trap with IPv6 underlay.
Patches #6-#8 align the corresponding IPv4 underlay test to the IPv6
one.
Amit Cohen (8):
testing: selftests: forwarding.config.sample: Add tc flag
testing: selftests: tc_common: Add tc_check_at_least_x_packets()
selftests: forwarding: Add IPv6 GRE flat tests
selftests: forwarding: Add IPv6 GRE hierarchical tests
selftests: mlxsw: devlink_trap_tunnel_ipip6: Add test case for IPv6
decap_error
selftests: mlxsw: devlink_trap_tunnel_ipip: Align topology drawing
correctly
selftests: mlxsw: devlink_trap_tunnel_ipip: Remove code duplication
selftests: mlxsw: devlink_trap_tunnel_ipip: Send a full-length key
.../net/mlxsw/devlink_trap_tunnel_ipip.sh | 50 +-
.../spectrum-2/devlink_trap_tunnel_ipip6.sh | 250 ++++++++++
.../net/forwarding/forwarding.config.sample | 3 +
.../selftests/net/forwarding/ip6gre_flat.sh | 65 +++
.../net/forwarding/ip6gre_flat_key.sh | 65 +++
.../net/forwarding/ip6gre_flat_keys.sh | 65 +++
.../selftests/net/forwarding/ip6gre_hier.sh | 65 +++
.../net/forwarding/ip6gre_hier_key.sh | 65 +++
.../net/forwarding/ip6gre_hier_keys.sh | 65 +++
.../selftests/net/forwarding/ip6gre_lib.sh | 438 ++++++++++++++++++
.../selftests/net/forwarding/tc_common.sh | 10 +
11 files changed, 1109 insertions(+), 32 deletions(-)
create mode 100755 tools/testing/selftests/drivers/net/mlxsw/spectrum-2/devlink_trap_tunnel_ipip6.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_flat.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_flat_key.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_flat_keys.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_hier.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_hier_key.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_hier_keys.sh
create mode 100644 tools/testing/selftests/net/forwarding/ip6gre_lib.sh
--
2.31.1
From: Amit Cohen <redacted>
Add TC_FLAG value to tests topology.
This flag supposed to be skip_sw/skip_hw which means do not filter by
software/hardware.
This can be useful for adding tests to forwarding directory, and be able
to verify that packets go through the hardware.
When the flag is not set or set to 'skip_hw', tests can still be executed
with veth pairs.
Signed-off-by: Amit Cohen <redacted>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
.../testing/selftests/net/forwarding/forwarding.config.sample | 3 +++
1 file changed, 3 insertions(+)
@@ -39,3 +39,6 @@ NETIF_CREATE=yes # Timeout (in seconds) before ping exits regardless of how many packets have # been sent or received PING_TIMEOUT=5+# Flag for tc match, supposed to be skip_sw/skip_hw which means do not process+# filter by software/hardware+TC_FLAG=skip_hw
From: Amit Cohen <redacted>
Add function that checks that at least X packets hit the tc rule.
There are cases that it is not possible to catch only the interesting
packets, so then, it is possible to send many packets and verify that at
least this amount of packets hit the rule.
This function will be used in the next patch for general tc rule that
can be used to test both software and hardware.
Signed-off-by: Amit Cohen <redacted>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
tools/testing/selftests/net/forwarding/tc_common.sh | 10 ++++++++++
1 file changed, 10 insertions(+)
From: Amit Cohen <redacted>
Add tests that check IPv6-in-IPv6, IPv4-in-IPv6 and MTU change of GRE
tunnel. The tests use flat model - overlay and underlay share the same VRF.
These tests can be run with TC_FLAG=skip_sw, so then they will verify
that packets go through hardware as part of enacp and decap phases.
Signed-off-by: Amit Cohen <redacted>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
.../selftests/net/forwarding/ip6gre_flat.sh | 65 +++++
.../net/forwarding/ip6gre_flat_key.sh | 65 +++++
.../net/forwarding/ip6gre_flat_keys.sh | 65 +++++
.../selftests/net/forwarding/ip6gre_lib.sh | 270 ++++++++++++++++++
4 files changed, 465 insertions(+)
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_flat.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_flat_key.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_flat_keys.sh
create mode 100644 tools/testing/selftests/net/forwarding/ip6gre_lib.sh
@@ -0,0 +1,65 @@+#!/bin/bash+# SPDX-License-Identifier: GPL-2.0++# Test IP-in-IP GRE tunnel without key.+# This test uses flat topology for IP tunneling tests. See ip6gre_lib.sh for+# more details.++ALL_TESTS="+gre_flat+gre_mtu_change+"++NUM_NETIFS=6+sourcelib.sh+sourceip6gre_lib.sh++setup_prepare()+{+h1=${NETIFS[p1]}+ol1=${NETIFS[p2]}++ul1=${NETIFS[p3]}+ul2=${NETIFS[p4]}++ol2=${NETIFS[p5]}+h2=${NETIFS[p6]}++forwarding_enable+vrf_prepare+h1_create+h2_create+sw1_flat_create$ol1$ul1+sw2_flat_create$ol2$ul2+}++gre_flat()+{+test_traffic_ip4ip6"GRE flat IPv4-in-IPv6"+test_traffic_ip6ip6"GRE flat IPv6-in-IPv6"+}++gre_mtu_change()+{+test_mtu_change+}++cleanup()+{+pre_cleanup++sw2_flat_destroy$ol2$ul2+sw1_flat_destroy$ol1$ul1+h2_destroy+h1_destroy+vrf_cleanup+forwarding_restore+}++trapcleanupEXIT++setup_prepare+setup_wait+tests_run++exit$EXIT_STATUS
@@ -0,0 +1,65 @@+#!/bin/bash+# SPDX-License-Identifier: GPL-2.0++# Test IP-in-IP GRE tunnel with key.+# This test uses flat topology for IP tunneling tests. See ip6gre_lib.sh for+# more details.++ALL_TESTS="+gre_flat+gre_mtu_change+"++NUM_NETIFS=6+sourcelib.sh+sourceip6gre_lib.sh++setup_prepare()+{+h1=${NETIFS[p1]}+ol1=${NETIFS[p2]}++ul1=${NETIFS[p3]}+ul2=${NETIFS[p4]}++ol2=${NETIFS[p5]}+h2=${NETIFS[p6]}++forwarding_enable+vrf_prepare+h1_create+h2_create+sw1_flat_create$ol1$ul1key233+sw2_flat_create$ol2$ul2key233+}++gre_flat()+{+test_traffic_ip4ip6"GRE flat IPv4-in-IPv6 with key"+test_traffic_ip6ip6"GRE flat IPv6-in-IPv6 with key"+}++gre_mtu_change()+{+test_mtu_change+}++cleanup()+{+pre_cleanup++sw2_flat_destroy$ol2$ul2+sw1_flat_destroy$ol1$ul1+h2_destroy+h1_destroy+vrf_cleanup+forwarding_restore+}++trapcleanupEXIT++setup_prepare+setup_wait+tests_run++exit$EXIT_STATUS
@@ -0,0 +1,65 @@+#!/bin/bash+# SPDX-License-Identifier: GPL-2.0++# Test IP-in-IP GRE tunnel with keys.+# This test uses flat topology for IP tunneling tests. See ip6gre_lib.sh for+# more details.++ALL_TESTS="+gre_flat+gre_mtu_change+"++NUM_NETIFS=6+sourcelib.sh+sourceip6gre_lib.sh++setup_prepare()+{+h1=${NETIFS[p1]}+ol1=${NETIFS[p2]}++ul1=${NETIFS[p3]}+ul2=${NETIFS[p4]}++ol2=${NETIFS[p5]}+h2=${NETIFS[p6]}++forwarding_enable+vrf_prepare+h1_create+h2_create+sw1_flat_create$ol1$ul1ikey111okey222+sw2_flat_create$ol2$ul2ikey222okey111+}++gre_flat()+{+test_traffic_ip4ip6"GRE flat IPv4-in-IPv6 with ikey/okey"+test_traffic_ip6ip6"GRE flat IPv6-in-IPv6 with ikey/okey"+}++gre_mtu_change()+{+test_mtu_changegre+}++cleanup()+{+pre_cleanup++sw2_flat_destroy$ol2$ul2+sw1_flat_destroy$ol1$ul1+h2_destroy+h1_destroy+vrf_cleanup+forwarding_restore+}++trapcleanupEXIT++setup_prepare+setup_wait+tests_run++exit$EXIT_STATUS
From: Amit Cohen <redacted>
Add tests that check IPv6-in-IPv6, IPv4-in-IPv6 and MTU change of GRE
tunnel. The tests use hierarchical model - the tunnel is bound to a device
in a different VRF.
These tests can be run with TC_FLAG=skip_sw, so then they will verify
that packets go through hardware as part of enacp and decap phases.
Signed-off-by: Amit Cohen <redacted>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
.../selftests/net/forwarding/ip6gre_hier.sh | 65 +++++++
.../net/forwarding/ip6gre_hier_key.sh | 65 +++++++
.../net/forwarding/ip6gre_hier_keys.sh | 65 +++++++
.../selftests/net/forwarding/ip6gre_lib.sh | 170 +++++++++++++++++-
4 files changed, 364 insertions(+), 1 deletion(-)
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_hier.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_hier_key.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_hier_keys.sh
@@ -0,0 +1,65 @@+#!/bin/bash+# SPDX-License-Identifier: GPL-2.0++# Test IP-in-IP GRE tunnels without key.+# This test uses hierarchical topology for IP tunneling tests. See+# ip6gre_lib.sh for more details.++ALL_TESTS="+gre_hier+gre_mtu_change+"++NUM_NETIFS=6+sourcelib.sh+sourceip6gre_lib.sh++setup_prepare()+{+h1=${NETIFS[p1]}+ol1=${NETIFS[p2]}++ul1=${NETIFS[p3]}+ul2=${NETIFS[p4]}++ol2=${NETIFS[p5]}+h2=${NETIFS[p6]}++forwarding_enable+vrf_prepare+h1_create+h2_create+sw1_hierarchical_create$ol1$ul1+sw2_hierarchical_create$ol2$ul2+}++gre_hier()+{+test_traffic_ip4ip6"GRE hierarchical IPv4-in-IPv6"+test_traffic_ip6ip6"GRE hierarchical IPv6-in-IPv6"+}++gre_mtu_change()+{+test_mtu_changegre+}++cleanup()+{+pre_cleanup++sw2_hierarchical_destroy$ol2$ul2+sw1_hierarchical_destroy$ol1$ul1+h2_destroy+h1_destroy+vrf_cleanup+forwarding_restore+}++trapcleanupEXIT++setup_prepare+setup_wait+tests_run++exit$EXIT_STATUS
@@ -0,0 +1,65 @@+#!/bin/bash+# SPDX-License-Identifier: GPL-2.0++# Test IP-in-IP GRE tunnels without key.+# This test uses hierarchical topology for IP tunneling tests. See+# ip6gre_lib.sh for more details.++ALL_TESTS="+gre_hier+gre_mtu_change+"++NUM_NETIFS=6+sourcelib.sh+sourceip6gre_lib.sh++setup_prepare()+{+h1=${NETIFS[p1]}+ol1=${NETIFS[p2]}++ul1=${NETIFS[p3]}+ul2=${NETIFS[p4]}++ol2=${NETIFS[p5]}+h2=${NETIFS[p6]}++forwarding_enable+vrf_prepare+h1_create+h2_create+sw1_hierarchical_create$ol1$ul1key22+sw2_hierarchical_create$ol2$ul2key22+}++gre_hier()+{+test_traffic_ip4ip6"GRE hierarchical IPv4-in-IPv6 with key"+test_traffic_ip6ip6"GRE hierarchical IPv6-in-IPv6 with key"+}++gre_mtu_change()+{+test_mtu_changegre+}++cleanup()+{+pre_cleanup++sw2_hierarchical_destroy$ol2$ul2+sw1_hierarchical_destroy$ol1$ul1+h2_destroy+h1_destroy+vrf_cleanup+forwarding_restore+}++trapcleanupEXIT++setup_prepare+setup_wait+tests_run++exit$EXIT_STATUS
@@ -0,0 +1,65 @@+#!/bin/bash+# SPDX-License-Identifier: GPL-2.0++# Test IP-in-IP GRE tunnels without key.+# This test uses hierarchical topology for IP tunneling tests. See+# ip6gre_lib.sh for more details.++ALL_TESTS="+gre_hier+gre_mtu_change+"++NUM_NETIFS=6+sourcelib.sh+sourceip6gre_lib.sh++setup_prepare()+{+h1=${NETIFS[p1]}+ol1=${NETIFS[p2]}++ul1=${NETIFS[p3]}+ul2=${NETIFS[p4]}++ol2=${NETIFS[p5]}+h2=${NETIFS[p6]}++forwarding_enable+vrf_prepare+h1_create+h2_create+sw1_hierarchical_create$ol1$ul1ikey111okey222+sw2_hierarchical_create$ol2$ul2ikey222okey111+}++gre_hier()+{+test_traffic_ip4ip6"GRE hierarchical IPv4-in-IPv6 with ikey/okey"+test_traffic_ip6ip6"GRE hierarchical IPv6-in-IPv6 with ikey/okey"+}++gre_mtu_change()+{+test_mtu_changegre+}++cleanup()+{+pre_cleanup++sw2_hierarchical_destroy$ol2$ul2+sw1_hierarchical_destroy$ol1$ul1+h2_destroy+h1_destroy+vrf_cleanup+forwarding_restore+}++trapcleanupEXIT++setup_prepare+setup_wait+tests_run++exit$EXIT_STATUS
@@ -2,7 +2,7 @@#!/bin/bash# Handles creation and destruction of IP-in-IP or GRE tunnels over the given-# topology.+# topology. Supports both flat and hierarchical models.## Flat Model:# Overlay and underlay share the same VRF.
From: Amit Cohen <redacted>
IPv6 underlay support was added, add test to check that "decap_error" trap
is triggered under the right conditions and that devlink counters increase.
Signed-off-by: Amit Cohen <redacted>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
.../spectrum-2/devlink_trap_tunnel_ipip6.sh | 250 ++++++++++++++++++
1 file changed, 250 insertions(+)
create mode 100755 tools/testing/selftests/drivers/net/mlxsw/spectrum-2/devlink_trap_tunnel_ipip6.sh
@@ -0,0 +1,250 @@+#!/bin/bash+# SPDX-License-Identifier: GPL-2.0+#+# Test devlink-trap tunnel exceptions functionality over mlxsw.+# Check all exception traps to make sure they are triggered under the right+# conditions.++# +-------------------------++# | H1 |+# | $h1 + |+# | 2001:db8:1::1/64 | |+# +-------------------|-----++# |+# +-------------------|-----++# | SW1 | |+# | $swp1 + |+# | 2001:db8:1::2/64 |+# | |+# | + g1 (ip6gre) |+# | loc=2001:db8:3::1 |+# | rem=2001:db8:3::2 |+# | tos=inherit |+# | |+# | + $rp1 |+# | | 2001:db8:10::1/64 |+# +--|----------------------++# |+# +--|----------------------++# | | VRF2 |+# | + $rp2 |+# | 2001:db8:10::2/64 |+# +-------------------------+++lib_dir=$(dirname$0)/../../../../net/forwarding++ALL_TESTS="+decap_error_test+"++NUM_NETIFS=4+source$lib_dir/lib.sh+source$lib_dir/tc_common.sh+source$lib_dir/devlink_lib.sh++h1_create()+{+simple_if_init$h12001:db8:1::1/64+}++h1_destroy()+{+simple_if_fini$h12001:db8:1::1/64+}++vrf2_create()+{+simple_if_init$rp22001:db8:10::2/64+}++vrf2_destroy()+{+simple_if_fini$rp22001:db8:10::2/64+}++switch_create()+{+iplinksetdev$swp1up+__addr_add_del$swp1add2001:db8:1::2/64+tcqdiscadddev$swp1clsact++tunnel_createg1ip6gre2001:db8:3::12001:db8:3::2tosinherit\+ttlinherit+iplinksetdevg1up+__addr_add_delg1add2001:db8:3::1/128++iplinksetdev$rp1up+__addr_add_del$rp1add2001:db8:10::1/64+}++switch_destroy()+{+__addr_add_del$rp1del2001:db8:10::1/64+iplinksetdev$rp1down++__addr_add_delg1del2001:db8:3::1/128+iplinksetdevg1down+tunnel_destroyg1++tcqdiscdeldev$swp1clsact+__addr_add_del$swp1del2001:db8:1::2/64+iplinksetdev$swp1down+}++setup_prepare()+{+h1=${NETIFS[p1]}+swp1=${NETIFS[p2]}++rp1=${NETIFS[p3]}+rp2=${NETIFS[p4]}++forwarding_enable+vrf_prepare+h1_create+switch_create+vrf2_create+}++cleanup()+{+pre_cleanup++vrf2_destroy+switch_destroy+h1_destroy+vrf_cleanup+forwarding_restore+}++ipip_payload_get()+{+localsaddr="20:01:0d:b8:00:02:00:00:00:00:00:00:00:00:00:01"+localdaddr="20:01:0d:b8:00:01:00:00:00:00:00:00:00:00:00:01"+localflags=$1;shift+localkey=$1;shift++p=$(:+)"$flags"$(:GREflags+)"0:00:"$(:Reserved+version+)"86:dd:"$(:ETHprotocoltype+)"$key"$(:Key+)"6"$(:IPversion+)"0:0"$(:Trafficclass+)"0:00:00:"$(:Flowlabel+)"00:00:"$(:Payloadlength+)"3a:"$(:Nextheader+)"04:"$(:Hoplimit+)"$saddr:"$(:IPsaddr+)"$daddr:"$(:IPdaddr+)+echo$p+}++ecn_payload_get()+{+echo$(ipip_payload_get"0")+}++ecn_decap_test()+{+localtrap_name="decap_error"+localdesc=$1;shift+localecn_desc=$1;shift+localouter_tos=$1;shift+localmz_pid++RET=0++tcfilteradddev$swp1egressprotocolipv6pref1handle101\+flowersrc_ip2001:db8:2::1dst_ip2001:db8:1::1skip_sw\+actionpass++rp1_mac=$(mac_get$rp1)+rp2_mac=$(mac_get$rp2)+payload=$(ecn_payload_get)++ipvrfexecv$rp2$MZ-6$rp2-c0-d1msec-a$rp2_mac-b$rp1_mac\+-A2001:db8:3::2-B2001:db8:3::1-tip\+tos=$outer_tos,next=47,p=$payload-q&+mz_pid=$!++devlink_trap_exception_test$trap_name++tc_check_packets"dev $swp1 egress"1010+check_err$?"Packets were not dropped"++log_test"$desc: Inner ECN is not ECT and outer is $ecn_desc"++kill$mz_pid&&wait$mz_pid&>/dev/null+tcfilterdeldev$swp1egressprotocolipv6pref1handle101flower+}++no_matching_tunnel_test()+{+localtrap_name="decap_error"+localdesc=$1;shift+localsip=$1;shift+localmz_pid++RET=0++tcfilteradddev$swp1egressprotocolipv6pref1handle101\+flowersrc_ip2001:db8:2::1dst_ip2001:db8:1::1actionpass++rp1_mac=$(mac_get$rp1)+rp2_mac=$(mac_get$rp2)+payload=$(ipip_payload_get"$@")++ipvrfexecv$rp2$MZ-6$rp2-c0-d1msec-a$rp2_mac-b$rp1_mac\+-A$sip-B2001:db8:3::1-tipnext=47,p=$payload-q&+mz_pid=$!++devlink_trap_exception_test$trap_name++tc_check_packets"dev $swp1 egress"1010+check_err$?"Packets were not dropped"++log_test"$desc"++kill$mz_pid&&wait$mz_pid&>/dev/null+tcfilterdeldev$swp1egressprotocolipv6pref1handle101flower+}++decap_error_test()+{+# Correct source IP - the remote address+localsip=2001:db8:3::2++ecn_decap_test"Decap error""ECT(1)"01+ecn_decap_test"Decap error""ECT(0)"02+ecn_decap_test"Decap error""CE"03++no_matching_tunnel_test"Decap error: Source IP check failed"\+2001:db8:4::2"0"+no_matching_tunnel_test\+"Decap error: Key exists but was not expected"$sip"2"\+"00:00:00:E9:"++# Destroy the tunnel and create new one with key+__addr_add_delg1del2001:db8:3::1/128+tunnel_destroyg1++tunnel_createg1ip6gre2001:db8:3::12001:db8:3::2tosinherit\+ttlinheritkey233+__addr_add_delg1add2001:db8:3::1/128++no_matching_tunnel_test\+"Decap error: Key does not exist but was expected"$sip"0"+no_matching_tunnel_test\+"Decap error: Packet has a wrong key field"$sip"2"\+"00:00:00:E8:"+}++trapcleanupEXIT++setup_prepare+setup_wait+tests_run++exit$EXIT_STATUS
From: Amit Cohen <redacted>
As part of adding same test for GRE tunnel with IPv6 underlay, wrong
alignments were found, fix them.
Signed-off-by: Amit Cohen <redacted>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
.../selftests/drivers/net/mlxsw/devlink_trap_tunnel_ipip.sh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
From: Amit Cohen <redacted>
As part of adding same test for GRE tunnel with IPv6 underlay, an
optional improvement was found - call ipip_payload_get from
ecn_payload_get, so do not duplicate the code which creates the payload.
Signed-off-by: Amit Cohen <redacted>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
.../net/mlxsw/devlink_trap_tunnel_ipip.sh | 38 ++++++-------------
1 file changed, 11 insertions(+), 27 deletions(-)
From: Amit Cohen <redacted>
As part of adding same test for GRE tunnel with IPv6 underlay, missing
bytes for key were found.
mausezahn does not fill zeros between two colons, so send them
explicitly. For example, use "00:00:00:E9:" instead of ":E9:"
Signed-off-by: Amit Cohen <redacted>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
.../selftests/drivers/net/mlxsw/devlink_trap_tunnel_ipip.sh | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
@@ -223,7 +223,8 @@ decap_error_test()no_matching_tunnel_test"Decap error: Source IP check failed"\192.0.2.68"0"no_matching_tunnel_test\-"Decap error: Key exists but was not expected"$sip"2"":E9:"+"Decap error: Key exists but was not expected"$sip"2"\+"00:00:00:E9:"# Destroy the tunnel and create new one with key__addr_add_delg1del192.0.2.65/32
@@ -235,7 +236,8 @@ decap_error_test()no_matching_tunnel_test\"Decap error: Key does not exist but was expected"$sip"0"no_matching_tunnel_test\-"Decap error: Packet has a wrong key field"$sip"2""E8:"+"Decap error: Packet has a wrong key field"$sip"2"\+"00:00:00:E8:"}trapcleanupEXIT
Hello:
This series was applied to netdev/net-next.git (master)
by David S. Miller [off-list ref]:
On Fri, 8 Oct 2021 16:12:33 +0300 you wrote:
From: Ido Schimmel <idosch@nvidia.com>
This patchset adds forwarding selftests for ip6gre. The tests can be run
with veth pairs or with physical loopbacks.
Patch #1 adds a new config option to determine if 'skip_sw' / 'skip_hw'
flags are used when installing tc filters. By default, it is not set
which means the flags are not used. 'skip_sw' is useful to ensure
traffic is forwarded by the hardware data path.
[...]