From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (usa-sjc-mx-foss1.foss.arm.com [217.140.101.70]) by dpdk.org (Postfix) with ESMTP id C8EB91B21E for ; Thu, 21 Dec 2017 06:50:21 +0100 (CET) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id ECC7480D; Wed, 20 Dec 2017 21:50:20 -0800 (PST) Received: from lenovo-a010984.shanghai.arm.com (lenovo-a010984.shanghai.arm.com [10.169.40.44]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 7CA6C3F41F; Wed, 20 Dec 2017 21:50:20 -0800 (PST) From: Herbert Guan To: dts@dpdk.org Cc: Herbert Guan Date: Thu, 21 Dec 2017 13:50:13 +0800 Message-Id: <1513835413-13101-1-git-send-email-herbert.guan@arm.com> X-Mailer: git-send-email 1.8.3.1 Subject: [dts] [PATCH] framework: enhance check_random_pkts by src/dst port filtering X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Dec 2017 05:50:22 -0000 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 --- 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