From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 055671AEF3 for ; Sat, 30 Sep 2017 10:48:15 +0200 (CEST) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 30 Sep 2017 01:48:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,457,1500966000"; d="scan'208";a="1225458235" Received: from dpdk-test47.sh.intel.com ([10.67.118.152]) by fmsmga002.fm.intel.com with ESMTP; 30 Sep 2017 01:48:13 -0700 From: wang fei To: dts@dpdk.org Cc: wang fei Date: Sat, 30 Sep 2017 19:20:29 +0800 Message-Id: <1506770429-2941-1-git-send-email-feix.y.wang@intel.com> X-Mailer: git-send-email 2.7.4 Subject: [dts] [patch v4] enable ixia send_number_packet function 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: Sat, 30 Sep 2017 08:48:16 -0000 framework/etgen.py: add a function to enable ixia to send designatednumber of packets, this function is set for test suite nic_single_core_perf test Signed-off-by: wang fei --- framework/etgen.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/framework/etgen.py b/framework/etgen.py index b3a5931..b19ae84 100644 --- a/framework/etgen.py +++ b/framework/etgen.py @@ -868,3 +868,46 @@ class IxiaPacketGenerator(SSHConnection): retrieved capture buffer. Call packetGroupStats get before. """ return self._packetgroup_cget_value('averageLatency') + + def _transmission_pre_config(self, port_list, rate_percent, latency=False): + """ + Prepare and configure IXIA ports for performance test. And remove the transmission step in this config sequence. + This function is set only for function send_number_packets for nic_single_core_perf test case use + """ + rxPortlist, txPortlist = self.prepare_port_list(port_list, rate_percent, latency) + self.prepare_ixia_for_transmission(txPortlist, rxPortlist) + self.start_transmission() + self.clear_tcl_commands() + return rxPortlist, txPortlist + + def send_number_packets(self, portList, ratePercent, packetNum): + """ + Configure ixia to send fixed number of packets + Note that this function is only set for test_suite nic_single_core_perf, + Not for common use + """ + rxPortlist, txPortlist = self._transmission_pre_config(portList, ratePercent) + + self.send_expect("stream config -numFrames %s" % packetNum, "%", 5) + self.send_expect("stream config -dma stopStream", "%", 5) + for txPort in txPortlist: + port = self.pci_to_port(self.tester.get_pci(txPort)) + self.send_expect("stream set %d %d %d 1" % (self.chasId, port['card'], port['port']), "%", 5) + + self.send_expect("ixWritePortsToHardware portList", "%", 5) + self.send_expect("ixClearStats portList", "%", 5) + self.send_expect("ixStartTransmit portList", "%", 5) + time.sleep(10) + + rxPackets = 0 + for port in txPortlist: + self.stat_get_stat_all_stats(port) + txPackets = self.get_frames_sent() + while txPackets != packetNum: + time.sleep(10) + self.stat_get_stat_all_stats(port) + txPackets = self.get_frames_sent() + rxPackets += self.get_frames_received() + self.logger.info("Received packets :%s" % rxPackets) + + return rxPackets -- 2.7.4