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 D76415599 for ; Mon, 25 Sep 2017 12:01:26 +0200 (CEST) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Sep 2017 03:01:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,435,1500966000"; d="scan'208";a="315825121" Received: from dpdk-test47.sh.intel.com ([10.67.118.152]) by fmsmga004.fm.intel.com with ESMTP; 25 Sep 2017 03:01:24 -0700 From: wang fei To: dts@dpdk.org Cc: wang fei Date: Mon, 25 Sep 2017 20:33:52 +0800 Message-Id: <1506342832-55784-1-git-send-email-feix.y.wang@intel.com> X-Mailer: git-send-email 2.7.4 Subject: [dts] [patch v2] framework/etgen.py : add in two functions which will be used for nic_single_core_perf test_suite, thest two function will work together to send fixed number of packets for ixia ports and return all received packets on total ixia rx ports 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: Mon, 25 Sep 2017 10:01:27 -0000 Signed-off-by: wang fei --- framework/etgen.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/framework/etgen.py b/framework/etgen.py index b3a5931..85c9814 100644 --- a/framework/etgen.py +++ b/framework/etgen.py @@ -868,3 +868,47 @@ class IxiaPacketGenerator(SSHConnection): retrieved capture buffer. Call packetGroupStats get before. """ return self._packetgroup_cget_value('averageLatency') + + def _configure_everything2(self, port_list, rate_percent, latency=False): + """ + Renew _configure_everyething() function,and pop configure_transmission() in the configuration sequence, + And do the traffic start action in later configuration in function send_packets() + """ + 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_packets(self,portList,ratePercent,packetNum,delay=5,runTime=60): + """ + configure ixia to send fixed number of packets for each tx port + and returns the throughput for rx ports + note that this funcion is only set for test_suite nic_single_core_perf, + not for common use + """ + rxPortlist, txPortlist = self._configure_everything2(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