From patchwork Mon Jan 25 08:44:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yufen.Mo" X-Patchwork-Id: 87192 X-Patchwork-Delegate: lijuan.tu@intel.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 90B6AA052A; Mon, 25 Jan 2021 09:51:57 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8BDC7140E10; Mon, 25 Jan 2021 09:51:57 +0100 (CET) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mails.dpdk.org (Postfix) with ESMTP id ED592140DFD for ; Mon, 25 Jan 2021 09:51:55 +0100 (CET) IronPort-SDR: xMTRcKieDmHXPP3+k+hcGEVvUY0yugt2a5c+d66l/0by3Z61cStDNsi4uvZwwrxlQTGn6dk2lv yu8ljpzJovSg== X-IronPort-AV: E=McAfee;i="6000,8403,9874"; a="167366428" X-IronPort-AV: E=Sophos;i="5.79,373,1602572400"; d="scan'208";a="167366428" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jan 2021 00:51:47 -0800 IronPort-SDR: UIW+UZfjUeicl5BxZv3QjzjFNFO4uo6gAbZfxhYA1WesGFjJjxV/O5NZIZybU5i179UtqefGQd dln69MTouBYg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,373,1602572400"; d="scan'208";a="471978506" Received: from dpdk-moyufen06.sh.intel.com ([10.67.116.208]) by fmsmga001.fm.intel.com with ESMTP; 25 Jan 2021 00:51:46 -0800 From: yufengmx To: dts@dpdk.org, lijuan.tu@intel.com Cc: yufengmx Date: Mon, 25 Jan 2021 16:44:03 +0800 Message-Id: <20210125084414.8503-17-yufengx.mo@intel.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20210125084414.8503-1-yufengx.mo@intel.com> References: <20210125084414.8503-1-yufengx.mo@intel.com> MIME-Version: 1.0 Subject: [dts] [PATCH V1 16/27] framework/pktgen: enable ixNetwork X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Sender: "dts" enable pktgen/ixNetwork rfc2544 testing scenario. Signed-off-by: yufengmx --- framework/pktgen_base.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/framework/pktgen_base.py b/framework/pktgen_base.py index 81c8830c..f30785d0 100644 --- a/framework/pktgen_base.py +++ b/framework/pktgen_base.py @@ -39,7 +39,7 @@ from enum import Enum, unique from config import PktgenConf # packet generator name -from settings import PKTGEN_DPDK, PKTGEN_TREX, PKTGEN_IXIA, PKTGEN +from settings import PKTGEN_DPDK, PKTGEN_TREX, PKTGEN_IXIA, PKTGEN_IXIA_NETWORK, PKTGEN # macro definition TRANSMIT_CONT = 'continuous' @@ -355,6 +355,27 @@ class PacketGenerator(object): # In real testing scenario, this method can offer more data than it return list(result.values())[0] + def _measure_rfc2544_ixnet(self, stream_ids=[], options={}): + """ + used for ixNetwork + """ + # main traffic + self._prepare_transmission(stream_ids=stream_ids) + self._start_transmission(stream_ids, options) + self._stop_transmission(None) + # parsing test result + stats = self._retrieve_port_statistic(stream_ids[0], 'rfc2544') + tx_pkts, rx_pkts, pps = stats + lost_p = tx_pkts - rx_pkts + if tx_pkts <= 0: + loss_rate = 0 + else: + loss_rate = float(lost_p) / float(tx_pkts) + if loss_rate < 0: + loss_rate = 0 + result = (loss_rate, tx_pkts, rx_pkts, pps) + return result + def measure_latency(self, stream_ids=[], options={}): """ Measure latency on each tx/rx ports @@ -533,6 +554,9 @@ class PacketGenerator(object): accuracy : dichotomy algorithm accuracy, default 0.001. """ + if self.pktgen_type == PKTGEN_IXIA_NETWORK: + return self._measure_rfc2544_ixnet(stream_ids, options) + max_rate = options.get('max_rate') or 100.0 min_rate = options.get('min_rate') or 0.0 accuracy = options.get('accuracy') or 0.001