Skip to content

Commit

Permalink
Merge branch 'Add-selftests-for-pedit-ex-munge-ip6-dsfield'
Browse files Browse the repository at this point in the history
Petr Machata says:

====================
Add selftests for pedit ex munge ip6 dsfield

Patch #1 extends the existing generic forwarding selftests to cover pedit
ex munge ip6 traffic_class as well. Patch #2 adds TDC test coverage.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
David S. Miller committed Apr 23, 2020
2 parents ec403d8 + f132ccc commit 250562a
Show file tree
Hide file tree
Showing 2 changed files with 91 additions and 0 deletions.
66 changes: 66 additions & 0 deletions tools/testing/selftests/net/forwarding/pedit_dsfield.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,14 @@

ALL_TESTS="
ping_ipv4
ping_ipv6
test_ip_dsfield
test_ip_dscp
test_ip_ecn
test_ip_dscp_ecn
test_ip6_dsfield
test_ip6_dscp
test_ip6_ecn
"

NUM_NETIFS=4
Expand Down Expand Up @@ -107,6 +111,11 @@ ping_ipv4()
ping_test $h1 192.0.2.2
}

ping_ipv6()
{
ping6_test $h1 2001:db8:1::2
}

do_test_pedit_dsfield_common()
{
local pedit_locus=$1; shift
Expand Down Expand Up @@ -228,6 +237,63 @@ test_ip_dscp_ecn()
do_test_ip_dscp_ecn "dev $swp2 egress"
}

do_test_ip6_dsfield()
{
local locus=$1; shift
local dsfield

for dsfield in 0 1 2 3 128 252 253 254 255; do
do_test_pedit_dsfield "$locus" \
"ip6 traffic_class set $dsfield" \
ipv6 "ip_tos $dsfield" \
"-6 -A 2001:db8:1::1 -B 2001:db8:1::2"
done
}

test_ip6_dsfield()
{
do_test_ip6_dsfield "dev $swp1 ingress"
do_test_ip6_dsfield "dev $swp2 egress"
}

do_test_ip6_dscp()
{
local locus=$1; shift
local dscp

for dscp in 0 1 2 3 32 61 62 63; do
do_test_pedit_dsfield "$locus" \
"ip6 traffic_class set $((dscp << 2)) retain 0xfc" \
ipv6 "ip_tos $(((dscp << 2) | 1))" \
"-6 -A 2001:db8:1::1 -B 2001:db8:1::2"
done
}

test_ip6_dscp()
{
do_test_ip6_dscp "dev $swp1 ingress"
do_test_ip6_dscp "dev $swp2 egress"
}

do_test_ip6_ecn()
{
local locus=$1; shift
local ecn

for ecn in 0 1 2 3; do
do_test_pedit_dsfield "$locus" \
"ip6 traffic_class set $ecn retain 0x3" \
ipv6 "ip_tos $((124 | $ecn))" \
"-6 -A 2001:db8:1::1 -B 2001:db8:1::2"
done
}

test_ip6_ecn()
{
do_test_ip6_ecn "dev $swp1 ingress"
do_test_ip6_ecn "dev $swp2 egress"
}

trap cleanup EXIT

setup_prepare
Expand Down
25 changes: 25 additions & 0 deletions tools/testing/selftests/tc-testing/tc-tests/actions/pedit.json
Original file line number Diff line number Diff line change
Expand Up @@ -1471,6 +1471,31 @@
"$TC actions flush action pedit"
]
},
{
"id": "94bb",
"name": "Add pedit action with LAYERED_OP ip6 traffic_class",
"category": [
"actions",
"pedit",
"layered_op"
],
"setup": [
[
"$TC actions flush action pedit",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action pedit ex munge ip6 traffic_class set 0x40 continue",
"expExitCode": "0",
"verifyCmd": "$TC actions list action pedit",
"matchPattern": "ipv6\\+0: val 04000000 mask f00fffff",
"matchCount": "1",
"teardown": [
"$TC actions flush action pedit"
]
},
{
"id": "6f5e",
"name": "Add pedit action with LAYERED_OP ip6 flow_lbl",
Expand Down

0 comments on commit 250562a

Please sign in to comment.