[dts] [PATCH] framework: enhance check_random_pkts by src/dst port filtering
Herbert Guan
herbert.guan at arm.com
Thu Dec 21 06:50:13 CET 2017
There might be undesried packets captured when doing check_random_pkts,
such as dhcp packets, etc. Since check_random_pkts is setting src/dst
ports to 65535, src/dst port filter option can be added to avoiding
unwanted packets being captured and thus fail the test case.
Signed-off-by: Herbert Guan <herbert.guan at arm.com>
---
framework/packet.py | 10 ++++++++++
framework/tester.py | 4 +++-
2 files changed, 13 insertions(+), 1 deletion(-)
mode change 100644 => 100755 framework/tester.py
diff --git a/framework/packet.py b/framework/packet.py
index fc9c9cc..2aa2188 100755
--- a/framework/packet.py
+++ b/framework/packet.py
@@ -772,6 +772,16 @@ def get_filter_cmd(filters=[]):
filter_cmd = 'ether[12:2] = %s' % type_hex
elif m.group(1) == 'not':
filter_cmd = 'ether[12:2] != %s' % type_hex
+ elif pktfilter['layer'] == 'network':
+ if pktfilter['config'].keys()[0] == 'srcport':
+ sport = pktfilter['config']['srcport']
+ filter_cmd = "src port %s" % sport
+ elif pktfilter['config'].keys()[0] == 'dstport':
+ dport = pktfilter['config']['dstport']
+ filter_cmd = "dst port %s" % dport
+ elif pktfilter['layer'] == 'userdefined':
+ if pktfilter['config'].keys()[0] == 'pcap-filter':
+ filter_cmd = pktfilter['config']['pcap-filter']
if len(filter_cmds):
if len(filter_cmd):
diff --git a/framework/tester.py b/framework/tester.py
old mode 100644
new mode 100755
index 1c854d7..cca4276
--- a/framework/tester.py
+++ b/framework/tester.py
@@ -606,7 +606,9 @@ class Tester(Crb):
# send and sniff packets
save_f(pkts=pkts, filename="/tmp/%s_tx.pcap" % txIntf)
- inst = sniff_f(intf=rxIntf, count=pktnum, timeout=timeout)
+ inst = sniff_f(intf=rxIntf, count=pktnum, timeout=timeout, filters=
+ [{'layer': 'network', 'config': {'srcport': '65535'}},
+ {'layer': 'network', 'config': {'dstport': '65535'}}])
rx_inst[rxport] = inst
# Transmit packet simultaneously
--
1.8.3.1
More information about the dts
mailing list