mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-27 04:22:58 +00:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Several conflicts here. NFP driver bug fix adding nfp_netdev_is_nfp_repr() check to nfp_fl_output() needed some adjustments because the code block is in an else block now. Parallel additions to net/pkt_cls.h and net/sch_generic.h A bug fix in __tcp_retransmit_skb() conflicted with some of the rbtree changes in net-next. The tc action RCU callback fixes in 'net' had some overlap with some of the recent tcf_block reworking. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -17,5 +17,26 @@
|
||||
"teardown": [
|
||||
"$TC qdisc del dev $DEV1 ingress"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "d052",
|
||||
"name": "Add 1M filters with the same action",
|
||||
"category": [
|
||||
"filter",
|
||||
"flower"
|
||||
],
|
||||
"setup": [
|
||||
"$TC qdisc add dev $DEV2 ingress",
|
||||
"./tdc_batch.py $DEV2 $BATCH_FILE --share_action -n 1000000"
|
||||
],
|
||||
"cmdUnderTest": "$TC -b $BATCH_FILE",
|
||||
"expExitCode": "0",
|
||||
"verifyCmd": "$TC actions list action gact",
|
||||
"matchPattern": "action order 0: gact action drop.*index 1 ref 1000000 bind 1000000",
|
||||
"matchCount": "1",
|
||||
"teardown": [
|
||||
"$TC qdisc del dev $DEV2 ingress",
|
||||
"/bin/rm $BATCH_FILE"
|
||||
]
|
||||
}
|
||||
]
|
||||
]
|
||||
|
||||
@@ -88,7 +88,7 @@ def prepare_env(cmdlist):
|
||||
exit(1)
|
||||
|
||||
|
||||
def test_runner(filtered_tests):
|
||||
def test_runner(filtered_tests, args):
|
||||
"""
|
||||
Driver function for the unit tests.
|
||||
|
||||
@@ -105,6 +105,8 @@ def test_runner(filtered_tests):
|
||||
for tidx in testlist:
|
||||
result = True
|
||||
tresult = ""
|
||||
if "flower" in tidx["category"] and args.device == None:
|
||||
continue
|
||||
print("Test " + tidx["id"] + ": " + tidx["name"])
|
||||
prepare_env(tidx["setup"])
|
||||
(p, procout) = exec_cmd(tidx["cmdUnderTest"])
|
||||
@@ -152,6 +154,10 @@ def ns_create():
|
||||
exec_cmd(cmd, False)
|
||||
cmd = 'ip -s $NS link set $DEV1 up'
|
||||
exec_cmd(cmd, False)
|
||||
cmd = 'ip link set $DEV2 netns $NS'
|
||||
exec_cmd(cmd, False)
|
||||
cmd = 'ip -s $NS link set $DEV2 up'
|
||||
exec_cmd(cmd, False)
|
||||
|
||||
|
||||
def ns_destroy():
|
||||
@@ -211,7 +217,8 @@ def set_args(parser):
|
||||
help='Execute the single test case with specified ID')
|
||||
parser.add_argument('-i', '--id', action='store_true', dest='gen_id',
|
||||
help='Generate ID numbers for new test cases')
|
||||
return parser
|
||||
parser.add_argument('-d', '--device',
|
||||
help='Execute the test case in flower category')
|
||||
return parser
|
||||
|
||||
|
||||
@@ -225,6 +232,8 @@ def check_default_settings(args):
|
||||
|
||||
if args.path != None:
|
||||
NAMES['TC'] = args.path
|
||||
if args.device != None:
|
||||
NAMES['DEV2'] = args.device
|
||||
if not os.path.isfile(NAMES['TC']):
|
||||
print("The specified tc path " + NAMES['TC'] + " does not exist.")
|
||||
exit(1)
|
||||
@@ -381,14 +390,17 @@ def set_operation_mode(args):
|
||||
if (len(alltests) == 0):
|
||||
print("Cannot find a test case with ID matching " + target_id)
|
||||
exit(1)
|
||||
catresults = test_runner(alltests)
|
||||
catresults = test_runner(alltests, args)
|
||||
print("All test results: " + "\n\n" + catresults)
|
||||
elif (len(target_category) > 0):
|
||||
if (target_category == "flower") and args.device == None:
|
||||
print("Please specify a NIC device (-d) to run category flower")
|
||||
exit(1)
|
||||
if (target_category not in ucat):
|
||||
print("Specified category is not present in this file.")
|
||||
exit(1)
|
||||
else:
|
||||
catresults = test_runner(testcases[target_category])
|
||||
catresults = test_runner(testcases[target_category], args)
|
||||
print("Category " + target_category + "\n\n" + catresults)
|
||||
|
||||
ns_destroy()
|
||||
|
||||
62
tools/testing/selftests/tc-testing/tdc_batch.py
Executable file
62
tools/testing/selftests/tc-testing/tdc_batch.py
Executable file
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
"""
|
||||
tdc_batch.py - a script to generate TC batch file
|
||||
|
||||
Copyright (C) 2017 Chris Mi <chrism@mellanox.com>
|
||||
"""
|
||||
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser(description='TC batch file generator')
|
||||
parser.add_argument("device", help="device name")
|
||||
parser.add_argument("file", help="batch file name")
|
||||
parser.add_argument("-n", "--number", type=int,
|
||||
help="how many lines in batch file")
|
||||
parser.add_argument("-o", "--skip_sw",
|
||||
help="skip_sw (offload), by default skip_hw",
|
||||
action="store_true")
|
||||
parser.add_argument("-s", "--share_action",
|
||||
help="all filters share the same action",
|
||||
action="store_true")
|
||||
parser.add_argument("-p", "--prio",
|
||||
help="all filters have different prio",
|
||||
action="store_true")
|
||||
args = parser.parse_args()
|
||||
|
||||
device = args.device
|
||||
file = open(args.file, 'w')
|
||||
|
||||
number = 1
|
||||
if args.number:
|
||||
number = args.number
|
||||
|
||||
skip = "skip_hw"
|
||||
if args.skip_sw:
|
||||
skip = "skip_sw"
|
||||
|
||||
share_action = ""
|
||||
if args.share_action:
|
||||
share_action = "index 1"
|
||||
|
||||
prio = "prio 1"
|
||||
if args.prio:
|
||||
prio = ""
|
||||
if number > 0x4000:
|
||||
number = 0x4000
|
||||
|
||||
index = 0
|
||||
for i in range(0x100):
|
||||
for j in range(0x100):
|
||||
for k in range(0x100):
|
||||
mac = ("%02x:%02x:%02x" % (i, j, k))
|
||||
src_mac = "e4:11:00:" + mac
|
||||
dst_mac = "e4:12:00:" + mac
|
||||
cmd = ("filter add dev %s %s protocol ip parent ffff: flower %s "
|
||||
"src_mac %s dst_mac %s action drop %s" %
|
||||
(device, prio, skip, src_mac, dst_mac, share_action))
|
||||
file.write("%s\n" % cmd)
|
||||
index += 1
|
||||
if index >= number:
|
||||
file.close()
|
||||
exit(0)
|
||||
@@ -12,6 +12,8 @@ NAMES = {
|
||||
# Name of veth devices to be created for the namespace
|
||||
'DEV0': 'v0p0',
|
||||
'DEV1': 'v0p1',
|
||||
'DEV2': '',
|
||||
'BATCH_FILE': './batch.txt',
|
||||
# Name of the namespace to use
|
||||
'NS': 'tcut'
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user