From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 3917B2BC9 for ; Thu, 24 Aug 2017 11:49:50 +0200 (CEST) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Aug 2017 02:49:49 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.41,420,1498546800"; d="scan'208";a="1209846132" Received: from unknown (HELO dpdk-fedora20.icx.intel.com) ([10.240.176.135]) by fmsmga002.fm.intel.com with ESMTP; 24 Aug 2017 02:49:45 -0700 From: "xu,gang" To: dts@dpdk.org Cc: "xu,gang" Date: Thu, 24 Aug 2017 17:51:02 +0800 Message-Id: <1503568262-88226-1-git-send-email-gangx.xu@intel.com> X-Mailer: git-send-email 1.9.3 Subject: [dts] [PATCH V2] fix ieee1588 Ether type is not PTP 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, 24 Aug 2017 09:49:51 -0000 use tcpdump replace sniff and use packet module Signed-off-by: xu,gang --- tests/TestSuite_ieee1588.py | 50 +++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/tests/TestSuite_ieee1588.py b/tests/TestSuite_ieee1588.py index 58d9a10..d9a7b3a 100644 --- a/tests/TestSuite_ieee1588.py +++ b/tests/TestSuite_ieee1588.py @@ -39,6 +39,8 @@ import time import re from test_case import TestCase from pmd_output import PmdOutput +from packet import Packet + class TestIeee1588(TestCase): @@ -51,7 +53,8 @@ class TestIeee1588(TestCase): self.verify(len(dutPorts) > 0, "No ports found for " + self.nic) # Change the config file to support IEEE1588 and recompile the package. - self.dut.send_expect("sed -i -e 's/IEEE1588=n$/IEEE1588=y/' config/common_base", "# ", 30) + self.dut.send_expect( + "sed -i -e 's/IEEE1588=n$/IEEE1588=y/' config/common_base", "# ", 30) self.dut.skip_setup = False self.dut.build_install_dpdk(self.target) @@ -69,32 +72,32 @@ class TestIeee1588(TestCase): IEEE1588 Enable test case. """ self.dut.send_expect("set fwd ieee1588", "testpmd> ", 10) - # Waiting for 'testpmd> ' Fails due to log messages, "Received non PTP packet", in the output - self.dut.send_expect("start", ">", 10) - # Allow the output from the "start" command to finish before looking for a regexp in expect + # Waiting for 'testpmd> ' Fails due to log messages, "Received non PTP + # packet", in the output + self.dut.send_expect("start", ">", 10) + # Allow the output from the "start" command to finish before looking + # for a regexp in expect time.sleep(1) # use the first port on that self.nic dutPorts = self.dut.get_ports() - mac = self.dut.get_mac_address(dutPorts[0]) + mac = self.dut.get_mac_address(dutPorts[0]) port = self.tester.get_local_port(dutPorts[0]) itf = self.tester.get_interface(port) - self.tester.scapy_background() - self.tester.scapy_append('p = sniff(iface="%s", count=2)' % itf) - self.tester.scapy_append('RESULT = p[1].summary()') + self.tester.send_expect( + "tcpdump -i %s -e ether src %s" % (itf, mac), "tcpdump", 20) - # this is the output of sniff - # [>] - self.tester.scapy_foreground() - self.tester.scapy_append('nutmac="%s"' % mac) - self.tester.scapy_append('sendp([Ether(dst=nutmac,type=0x88f7)/"\\x00\\x02"], iface="%s")' % itf) - self.tester.scapy_append('time.sleep(1)') + pkt = Packet(pkt_type='TIMESYNC') + pkt.config_layer('ether', {'dst': mac, }) + pkt.send_pkt(tx_port=itf) + + time.sleep(1) + out = self.tester.get_session_output(timeout=20) + + self.tester.send_expect("^C", "# ", 20) - self.tester.scapy_execute() - out = self.tester.scapy_get_result() self.verify("0x88f7" in out, "Ether type is not PTP") - # self.verify("\\x00\\x02" in out, "Payload wrong in PTP") time.sleep(1) out = self.dut.get_session_output() @@ -102,7 +105,7 @@ class TestIeee1588(TestCase): text = utils.regexp(out, "(.*) by hardware") self.verify("IEEE1588 PTP V2 SYNC" in text, "Not filtered " + text) - + pattern_rx = re.compile("RX timestamp value (\d+) s (\d+) ns") pattern_tx = re.compile("TX timestamp value (\d+) s (\d+) ns") @@ -126,17 +129,19 @@ class TestIeee1588(TestCase): # use the first port on that self.nic dutPorts = self.dut.get_ports() - mac = self.dut.get_mac_address(dutPorts[0]) + mac = self.dut.get_mac_address(dutPorts[0]) port = self.tester.get_local_port(dutPorts[0]) itf = self.tester.get_interface(port) self.tester.scapy_background() - self.tester.scapy_append('p = sniff(iface="%s", count=2, timeout=1)' % itf) + self.tester.scapy_append( + 'p = sniff(iface="%s", count=2, timeout=1)' % itf) self.tester.scapy_append('RESULT = p[1].summary()') self.tester.scapy_foreground() self.tester.scapy_append('nutmac="%s"' % mac) - self.tester.scapy_append('sendp([Ether(dst=nutmac,type=0x88f7)/"\\x00\\x02"], iface="%s")' % itf) + self.tester.scapy_append( + 'sendp([Ether(dst=nutmac,type=0x88f7)/"\\x00\\x02"], iface="%s")' % itf) self.tester.scapy_execute() time.sleep(2) @@ -157,5 +162,6 @@ class TestIeee1588(TestCase): self.dut.send_expect("quit", "# ", 30) # Restore the config file and recompile the package. - self.dut.send_expect("sed -i -e 's/IEEE1588=y$/IEEE1588=n/' config/common_base", "# ", 30) + self.dut.send_expect( + "sed -i -e 's/IEEE1588=y$/IEEE1588=n/' config/common_base", "# ", 30) self.dut.build_install_dpdk(self.target) -- 1.9.3