From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C8E74A0558; Fri, 10 Jun 2022 07:08:23 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C38E340689; Fri, 10 Jun 2022 07:08:23 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id EF01D40221 for ; Fri, 10 Jun 2022 07:08:21 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654837702; x=1686373702; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=TYAryuovkpfu2HHcebGaLA+0JDRRuWAaTunuyJguPnM=; b=XuJ7tJlvM9JjM/mZ4xoTfQwGjvPY3Y04yvCBTbc8UCUKl/lUD0Cfqhiq 0lyqGm+3rlNF7Fz2ddkJxf46lOZU5t4dMoWoDBlPkfDoB+vyxUTjdtR3x r7aoE7wsewd0zxlVLUMn5wEYP/Pt08IwdME4dYjBAK6WmVN4mvpi9TuJA fWFDTv+QMtc8IUk87/wPkfYth7ylHlqr2HV2fIU526i8ViJ2nZyKeKtsn k5m+ZfHdS++D0V7ZVs4FLcJR7U+uvBq9StT/EQX7b+ri30KNPSl/7cppD GpCahcZtD66o/stv2XpU2SiEIuyrNvwXBo+Ad6hMddzCt+oOaTMhI8+PL w==; X-IronPort-AV: E=McAfee;i="6400,9594,10373"; a="278320105" X-IronPort-AV: E=Sophos;i="5.91,288,1647327600"; d="scan'208";a="278320105" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Jun 2022 22:08:21 -0700 X-IronPort-AV: E=Sophos;i="5.91,288,1647327600"; d="scan'208";a="908715120" Received: from shwdenpg197.ccr.corp.intel.com ([10.253.109.70]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Jun 2022 22:08:19 -0700 From: Jun Dong To: dts@dpdk.org Cc: lijuan.tu@intel.com, qingx.sun@intel.com, junx.dong@intel.com, =?UTF-8?q?Juraj=20Linke=C5=A1?= Subject: [V3 1/5] rename base classes 1 Date: Fri, 10 Jun 2022 13:08:06 +0800 Message-Id: <20220610050810.1531-2-junx.dong@intel.com> X-Mailer: git-send-email 2.33.1.windows.1 In-Reply-To: <20220610050810.1531-1-junx.dong@intel.com> References: <20220610050810.1531-1-junx.dong@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 From: Juraj Linkeš conf/* doc/* execution/* execution.cfg removed output/ Signed-off-by: Juraj Linkeš Signed-off-by: Jun Dong --- conf/crbs.cfg | 42 ----- conf/l3fwd.cfg | 2 +- conf/performance_thread.cfg | 2 +- conf/ports.cfg | 18 +-- conf/power_bidirection_channel.cfg | 2 +- conf/power_branch_ratio.cfg | 2 +- conf/power_negative.cfg | 2 +- conf/scene/dpdk_vf_passthrough.cfg | 16 +- conf/scene/pf_passthrough.cfg | 14 +- conf/scene/vf_passthrough.cfg | 14 +- conf/scene/vf_passthrough_1.cfg | 14 +- conf/testpmd_perf.cfg | 2 +- conf/topology.cfg | 42 +++++ conf/{pktgen.cfg => traffic_generator.cfg} | 24 +-- conf/vhost_peer_conf.cfg | 2 +- conf/vm_power_manager.cfg | 2 +- conf/vm_pw_mgmt_policy.cfg | 2 +- doc/dts_gsg/image/virt_flow.svg | 28 ++-- doc/dts_gsg/quick_start.rst | 122 ++++++++------- doc/dts_gsg/usr_guide/igb_uio.rst | 2 +- doc/dts_gsg/usr_guide/index.rst | 2 +- doc/dts_gsg/usr_guide/intro.rst | 18 ++- doc/dts_gsg/usr_guide/ixia.rst | 144 +++++++++--------- doc/dts_gsg/usr_guide/results.rst | 12 +- .../{setup_dut.rst => setup_sut.rst} | 8 +- doc/dts_gsg/usr_guide/sys_reqs.rst | 18 +-- doc/dts_gsg/usr_guide/trex.rst | 104 ++++++------- doc/dts_gsg/usr_guide/usage.rst | 110 ++++++------- execution.cfg | 2 +- executions/execution.cfg | 4 +- executions/execution_FVL.cfg | 4 +- executions/execution_fm10k.cfg | 4 +- executions/execution_rxmode.cfg | 6 +- executions/execution_smoke.cfg | 2 +- output/Readme.txt | 2 - 35 files changed, 403 insertions(+), 391 deletions(-) delete mode 100644 conf/crbs.cfg create mode 100644 conf/topology.cfg rename conf/{pktgen.cfg => traffic_generator.cfg} (81%) rename doc/dts_gsg/usr_guide/{setup_dut.rst => setup_sut.rst} (97%) delete mode 100644 output/Readme.txt diff --git a/conf/crbs.cfg b/conf/crbs.cfg deleted file mode 100644 index a12e60a4..00000000 --- a/conf/crbs.cfg +++ /dev/null @@ -1,42 +0,0 @@ -#DUT crbs Configuration -#[DUT IP] -# dut_ip: DUT ip address -# dut_user: Login DUT username -# dut_passwd: [INSECURE] Login DUT password, leaving this blank will force using SSH keys -# os: operation system type linux or freebsd -# tester_ip: Tester ip address -# tester_passwd: [INSECURE] Tester password, leaving this blank will force using SSH keys -# pktgen_group: packet generator group name: ixia/trex/ixia_network -# channels: Board channel number -# bypass_core0: Whether by pass core0 -# dut_cores: DUT core list, eg: 1,2,3,4,5,18-22 -# snapshot_load_side: tester/dut, specify the dpdk.tar.gz on side -# if value is dut, should combine the params --snapshot to use. -# eg: ./dts --snapshot /root/tester/dpdk.tar.gz -[DUT IP1] -dut_ip=xxx.xxx.xxx.xxx -dut_user=root -dut_passwd= -os=linux -dut_arch= -tester_ip=xxx.xxx.xxx.xxx -tester_passwd= -ixia_group= -pktgen_group= -channels=4 -bypass_core0=True -dut_cores= -snapshot_load_side=tester -[DUT IP2] -dut_ip=yyy.yyy.yyy.yyy -dut_user=root -dut_passwd= -os=linux -dut_arch= -tester_ip=yyy.yyy.yyy.yyy -tester_passwd= -pktgen_group= -channels=4 -bypass_core0=True -dut_cores= -snapshot_load_side=tester diff --git a/conf/l3fwd.cfg b/conf/l3fwd.cfg index 62cd6814..5e6ab34d 100644 --- a/conf/l3fwd.cfg +++ b/conf/l3fwd.cfg @@ -2,7 +2,7 @@ # Users could change these configuration on demand: # # - port_list defines which ports are used to run testing If not set this key, -# use default dut port list of dts framework. +# use default SUT port list of dts framework. # port_list=[1,2,...] # - test_parameters defines the combination of frame size and descriptor # numbers, and the pattern is diff --git a/conf/performance_thread.cfg b/conf/performance_thread.cfg index 2bc76eac..fdcba5ca 100644 --- a/conf/performance_thread.cfg +++ b/conf/performance_thread.cfg @@ -1,4 +1,4 @@ [suite] -# specify cores to test based on dut cpu specification. +# specify cores to test based on SUT cpu specification. frame_size=[64, 128, 256, 512, 1024, 2000] cores=[2, 4, 8, 16] diff --git a/conf/ports.cfg b/conf/ports.cfg index 11023755..9a6948e1 100644 --- a/conf/ports.cfg +++ b/conf/ports.cfg @@ -1,20 +1,20 @@ -# DUT Port Configuration -# [DUT IP] +# SUT Port Configuration +# [SUT IP] # ports= # pci=Pci BDF,intf=Kernel interface; -# pci=Pci BDF,mac=Mac address,peer=Tester Pci BDF,numa=Port Numa -# pci=Pci BDF,peer=IXIA:card.port +# pci=Pci BDF,mac=Mac address,peer=TG Pci BDF,numa=Port Numa +# pci=Pci BDF,peer=IXEXPLORER:card.port # pci=Pci BDF,peer=TREX:port -# pci=Pci BDF,peer=Tester Pci BDF,tp_ip=$(IP),tp_path=$({PERL_PATH); -# pci=Pci BDF,peer=Tester Pci BDF,sec_port=yes,first_port=Pci BDF; +# pci=Pci BDF,peer=TG Pci BDF,tp_ip=$(IP),tp_path=$({PERL_PATH); +# pci=Pci BDF,peer=TG Pci BDF,sec_port=yes,first_port=Pci BDF; # [VM NAME] virtual machine name; This section is for virutal scenario # ports = -# dev_idx=device index of ports info, peer=Tester Pci BDF -[DUT IP] +# dev_idx=device index of ports info, peer=TG Pci BDF +[SUT IP] ports = pci=XX:XX.X,intf=eth0; pci=YY:YY.Y,mac=XX:XX:XX:XX:XX:XX,peer=ZZ:ZZ.Z,numa=0; - pci=ZZ:ZZ.Y,peer=IXIA:X.Y; + pci=ZZ:ZZ.Y,peer=IXEXPLORER:X.Y; pci=ZZ:ZZ.Y,peer=TREX:X; pci=0000:XX:XX.X,peer=0000:ZZ:ZZ.Z,tp_ip=127.0.0.1,tp_path=/home/libertyTrailTP_322291/perl; pci=0000:YY:YY.Y,peer=0000:ZZ:ZZ.Z,sec_port=yes,first_port=XX:XX.X; diff --git a/conf/power_bidirection_channel.cfg b/conf/power_bidirection_channel.cfg index bb13bdf8..8fa59620 100644 --- a/conf/power_bidirection_channel.cfg +++ b/conf/power_bidirection_channel.cfg @@ -12,7 +12,7 @@ # user: user name to login into VM # password: passwork to login into VM # device -# pf_idx: pass-through device index of DUT ports +# pf_idx: pass-through device index of SUT ports # guestpci: hardcode value of guest pci address # virtio_serial_channel # path: virtio unix socket absolute path diff --git a/conf/power_branch_ratio.cfg b/conf/power_branch_ratio.cfg index fd4a9b0e..ac83d6eb 100644 --- a/conf/power_branch_ratio.cfg +++ b/conf/power_branch_ratio.cfg @@ -12,7 +12,7 @@ # user: user name to login into VM # password: passwork to login into VM # device -# pf_idx: pass-through device index of DUT ports +# pf_idx: pass-through device index of SUT ports # guestpci: hardcode value of guest pci address # virtio_serial_channel # path: virtio unix socket absolute path diff --git a/conf/power_negative.cfg b/conf/power_negative.cfg index 8512e1b7..385004c1 100644 --- a/conf/power_negative.cfg +++ b/conf/power_negative.cfg @@ -12,7 +12,7 @@ # user: user name to login into VM # password: passwork to login into VM # device -# pf_idx: pass-through device index of DUT ports +# pf_idx: pass-through device index of SUT ports # guestpci: hardcode value of guest pci address # virtio_serial_channel # path: virtio unix socket absolute path diff --git a/conf/scene/dpdk_vf_passthrough.cfg b/conf/scene/dpdk_vf_passthrough.cfg index 2f3c008a..988691af 100644 --- a/conf/scene/dpdk_vf_passthrough.cfg +++ b/conf/scene/dpdk_vf_passthrough.cfg @@ -3,22 +3,22 @@ # default target will be x86_64-native-linuxapp-gcc # numa 0,1,yes yes mean cpu numa match the first port # skipcores list mean those core will not used by vm -# dut=vm_dut; mean vm_dut act as dut -# dut=dut; mean host dut act as dut -# portmap=cfg; mean vm_dut port map will be load from cfg -# portmap=auto; mean vm_dut will create portmap automatically +# sut=vm_sut; mean vm_sut act as SUT +# sut=sut; mean host sut act as SUT +# portmap=cfg; mean vm_sut port map will be load from cfg +# portmap=auto; mean vm_sut will create portmap automatically # devices = dev_gen/host/dev_gen+host not useful now [scene] suite = - dut=vm_dut,portmap=cfg; + sut=vm_sut,portmap=cfg; tester=tester; type=kvm; -host = +host = dpdk=testpmd,cores=0 1 2 3,target=x86_64-native-linuxapp-gcc; [vm0] cpu = model=host,number=4,numa=auto,skipcores=0 1 2 3; -mem = +mem = size=2048,hugepage=no; disk = file=/storage/vm-image/vm0.img; @@ -28,5 +28,5 @@ dev_gen = device = vf_idx=0,pf_dev=0,guestpci=auto; vf_idx=0,pf_dev=1,guestpci=auto; -vnc = +vnc = displayNum=1; diff --git a/conf/scene/pf_passthrough.cfg b/conf/scene/pf_passthrough.cfg index 91b5eaf4..0de81834 100644 --- a/conf/scene/pf_passthrough.cfg +++ b/conf/scene/pf_passthrough.cfg @@ -1,25 +1,25 @@ # vm configuration for pf passthrough cases # numa 0,1,yes yes mean cpu numa match the first port # skipcores list mean those core will not used by vm -# dut=vm_dut; mean vm_dut act as dut -# dut=dut; mean host dut act as dut -# portmap=cfg; mean vm_dut port map will be load from cfg -# portmap=auto; mean vm_dut will create portmap automatically +# sut=vm_sut; mean vm_sut act as SUT +# sut=sut; mean host sut act as SUT +# portmap=cfg; mean vm_sut port map will be load from cfg +# portmap=auto; mean vm_sut will create portmap automatically # devices = dev_gen/host/dev_gen+host not useful now [scene] suite = - dut=vm_dut,portmap=auto; + sut=vm_sut,portmap=auto; tester=tester; type=kvm; [vm] cpu = model=host,number=4,numa_aware=yes; -mem = +mem = size=2048,hugepage=no; disk = file=/storage/vm-image/vm0.img; device = pf_idx=0,guestpci=auto; pf_idx=1,guestpci=auto; -vnc = +vnc = displayNum=1; diff --git a/conf/scene/vf_passthrough.cfg b/conf/scene/vf_passthrough.cfg index 19f41c1c..4f9e3b64 100644 --- a/conf/scene/vf_passthrough.cfg +++ b/conf/scene/vf_passthrough.cfg @@ -1,20 +1,20 @@ # vm configuration for vf passthrough cases # numa 0,1,yes yes mean cpu numa match the first port # skipcores list mean those core will not used by vm -# dut=vm_dut; mean vm_dut act as dut -# dut=dut; mean host dut act as dut -# portmap=cfg; mean vm_dut port map will be load from cfg -# portmap=auto; mean vm_dut will create portmap automatically +# sut=vm_sut; mean vm_sut act as SUT +# sut=sut; mean host sut act as SUT +# portmap=cfg; mean vm_sut port map will be load from cfg +# portmap=auto; mean vm_sut will create portmap automatically # devices = dev_gen/host/dev_gen+host not useful now [scene] suite = - dut=vm_dut,portmap=auto; + sut=vm_sut,portmap=auto; tester=tester; type=kvm; [vm0] cpu = model=host,number=4,numa=auto,skipcores=0 1 2 3; -mem = +mem = size=2048,hugepage=no; disk = file=/storage/vm-image/vm0.img; @@ -26,5 +26,5 @@ dev_gen = device = vf_idx=0,pf_dev=0,guestpci=auto,mac=00:00:00:00:01:01; vf_idx=0,pf_dev=1,guestpci=auto,mac=00:00:00:00:01:02; -vnc = +vnc = displayNum=1; diff --git a/conf/scene/vf_passthrough_1.cfg b/conf/scene/vf_passthrough_1.cfg index afd760a0..f2c66dbd 100644 --- a/conf/scene/vf_passthrough_1.cfg +++ b/conf/scene/vf_passthrough_1.cfg @@ -1,20 +1,20 @@ # vm configuration for vf passthrough cases # numa 0,1,yes yes mean cpu numa match the first port # skipcores list mean those core will not used by vm -# dut=vm_dut; mean vm_dut act as dut -# dut=dut; mean host dut act as dut -# portmap=cfg; mean vm_dut port map will be load from cfg -# portmap=auto; mean vm_dut will create portmap automatically +# sut=vm_sut; mean vm_sut act as SUT +# sut=sut; mean host sut act as SUT +# portmap=cfg; mean vm_sut port map will be load from cfg +# portmap=auto; mean vm_sut will create portmap automatically # devices = dev_gen/host/dev_gen+host not useful now [scene] suite = - dut=vm_dut,portmap=auto; + sut=vm_sut,portmap=auto; tester=tester; type=kvm; [vm0] cpu = model=host,number=4,numa=auto,skipcores=0 1 2 3; -mem = +mem = size=2048,hugepage=no; disk = file=/storage/vm-image/vm0.img; @@ -23,5 +23,5 @@ dev_gen = device = vf_idx=0,pf_dev=0,guestpci=auto; vf_idx=1,pf_dev=0,guestpci=auto; -vnc = +vnc = displayNum=1; diff --git a/conf/testpmd_perf.cfg b/conf/testpmd_perf.cfg index e974fc84..93ec8d59 100644 --- a/conf/testpmd_perf.cfg +++ b/conf/testpmd_perf.cfg @@ -28,7 +28,7 @@ # cores_for_all=True # # - port_list -# defines which ports are used to run testing If not set this key, use default dut port list of dts framework. +# defines which ports are used to run testing If not set this key, use default SUT port list of dts framework. # # e.g. # port_list=[0,1,...] diff --git a/conf/topology.cfg b/conf/topology.cfg new file mode 100644 index 00000000..57ddf042 --- /dev/null +++ b/conf/topology.cfg @@ -0,0 +1,42 @@ +#Topology Configuration +#[SUT IP] +# sut_ip: SUT ip address +# sut_user: SUT username +# sut_passwd: [INSECURE] Login SUT password, leaving this blank will force using SSH keys +# os: operation system type linux or freebsd +# tg_ip: TG ip address +# tg_passwd: [INSECURE] TG password, leaving this blank will force using SSH keys +# perf_tg: the type of the traffic generator used in performance testcases: ixexplorer/trex/ixnetwork +# channels: Board channel number +# bypass_core0: Whether by pass core0 +# sut_cores: sut core list, eg: 1,2,3,4,5,18-22 +# snapshot_load_side: tg/sut, specify the dpdk.tar.gz on side +# if value is sut, should combine the params --snapshot to use. +# eg: ./dts --snapshot /root/tg/dpdk.tar.gz +[SUT IP1] +sut_ip=xxx.xxx.xxx.xxx +sut_user=root +sut_passwd= +os=linux +sut_arch= +tg_ip=xxx.xxx.xxx.xxx +tg_passwd= +ixia_group= +perf_tg= +channels=4 +bypass_core0=True +sut_cores= +snapshot_load_side=tg +[SUT IP2] +sut_ip=yyy.yyy.yyy.yyy +sut_user=root +sut_passwd= +os=linux +sut_arch= +tg_ip=yyy.yyy.yyy.yyy +tg_passwd= +perf_tg= +channels=4 +bypass_core0=True +sut_cores= +snapshot_load_side=tg diff --git a/conf/pktgen.cfg b/conf/traffic_generator.cfg similarity index 81% rename from conf/pktgen.cfg rename to conf/traffic_generator.cfg index 3176f496..7bce7033 100644 --- a/conf/pktgen.cfg +++ b/conf/traffic_generator.cfg @@ -1,11 +1,11 @@ -#PkTGEN configuration -#[PKTGEN DPDK] +#Traffic generator configuration +#[TREX] # trex_root_path: trex tar package decompression directory # trex server binary file is under this directory. # trex_lib_path(optional): trex stateless client libs directory, it is optional. # If it is not set, use a default relative directory. # coremask: -# 1. a list of masks (one core mask per port), sort sequence as +# 1. a list of masks (one core mask per port), sort sequence as # , # example: core_mask=0x3,0x5 # 2. CORE_MASK_PIN @@ -30,13 +30,13 @@ pcap_file=/opt/trex-core-2.26/scripts/stl/sample.pcap core_mask=0x3,0x5 start_trex=yes -# IXIA port Configuration -# IxiaGroup: Group name for IXIA ports -# Version : IXIA TCL server version -# IP : IXIA server IP address -# Ports : [IXIA port list] -# ixia_force100g: We need to set this to enable if we need IXIA port work in 100G mode. -[IXIA] +# IXEXPLORER port Configuration +# IxiaGroup: Group name for IXEXPLORER ports +# Version : IXEXPLORER TCL server version +# IP : IXEXPLORER server IP address +# Ports : [IXEXPLORER port list] +# ixia_force100g: We need to set this to enable if we need IXEXPLORER port work in 100G mode. +[IXEXPLORER] ixia_version=6.62 ixia_ip=xxx.xxx.xxx.xxx ixia_ports= @@ -45,10 +45,10 @@ ixia_ports= card=1,port=3; card=1,port=4; ixia_force100g=disable -[IXIA_NETWORK] +[IXNETWORK] ixia_version=9.0 ixia_ip=xxx.xxx.xxx.xxx -# ixia network REST server ip address +# ixnetwork REST server ip address ixnet_api_server_ip=xxx.xxx.xxx.xxx # maximum re-run traffic times, default is 5 times. (optional) #max_retry=5 diff --git a/conf/vhost_peer_conf.cfg b/conf/vhost_peer_conf.cfg index 020d3756..e9831435 100644 --- a/conf/vhost_peer_conf.cfg +++ b/conf/vhost_peer_conf.cfg @@ -1,4 +1,4 @@ -# Connect two Intel® Ethernet Converged Network Adapter XL710-QDA2 nic port directly on DUT +# Connect two Intel® Ethernet Converged Network Adapter XL710-QDA2 nic port directly on SUT [peerconf] # pci of Port0 pci= diff --git a/conf/vm_power_manager.cfg b/conf/vm_power_manager.cfg index fab8aaed..9e08b8fb 100644 --- a/conf/vm_power_manager.cfg +++ b/conf/vm_power_manager.cfg @@ -15,7 +15,7 @@ # user: user name to login into VM # password: passwork to login into VM # device -# pf_idx: pass-through device index of DUT ports +# pf_idx: pass-through device index of SUT ports # guestpci: hardcode value of guest pci address # virtio_serial_channel # path: virtio unix socket absolute path diff --git a/conf/vm_pw_mgmt_policy.cfg b/conf/vm_pw_mgmt_policy.cfg index bc080fe4..38557f74 100644 --- a/conf/vm_pw_mgmt_policy.cfg +++ b/conf/vm_pw_mgmt_policy.cfg @@ -12,7 +12,7 @@ # user: user name to login into VM # password: passwork to login into VM # device -# pf_idx: pass-through device index of DUT ports +# pf_idx: pass-through device index of SUT ports # guestpci: hardcode value of guest pci address # virtio_serial_channel # path: virtio unix socket absolute path diff --git a/doc/dts_gsg/image/virt_flow.svg b/doc/dts_gsg/image/virt_flow.svg index f8148054..a7728739 100644 --- a/doc/dts_gsg/image/virt_flow.svg +++ b/doc/dts_gsg/image/virt_flow.svg @@ -156,7 +156,7 @@ Object lifeline.21 - vm_dut:Virutal DUT + vm_sut:Virtual SUT Sheet.22 @@ -176,7 +176,7 @@ - vm_dut:Virutal DUT + vm_sut:Virtual SUT Activation @@ -250,14 +250,14 @@ Object lifeline.44 - host:DUT CRB + host:SUT Node Sheet.45 - Host: DUT CRB + Host: SUT Node - Host: DUT CRB + Host: SUT Node Sheet.46 @@ -273,7 +273,7 @@ - host:DUT CRB + host:SUT Node Message.49 @@ -449,11 +449,11 @@ Sheet.95 - instantiate_vm_dut(autoportmap) + instantiate_vm_sut(autoportmap) - instantiate_vm_dutinstantiate_vm_sut(autoportmap) Return Message.98 @@ -467,11 +467,11 @@ Sheet.99 - VM DUT object + VM SUT object - VM DUT object + VM SUT object Self Message.100 @@ -502,11 +502,11 @@ Sheet.104 - VM DUT object + VM SUT object - VM DUT object + VM SUT object @@ -562,11 +562,11 @@ Sheet.114 - Case(VM DUT, tester, target) + Case(VM SUT, TG, target) - Case(VM DUT, tester, Case(VM SUT, TG, target) Self Message.116 diff --git a/doc/dts_gsg/quick_start.rst b/doc/dts_gsg/quick_start.rst index 4a30f360..90ba8b13 100644 --- a/doc/dts_gsg/quick_start.rst +++ b/doc/dts_gsg/quick_start.rst @@ -8,9 +8,21 @@ Introduction This document describes how to install and configure the Data Plane Development Kit Test Suite (DTS) in a Linux environment. It is designed to get user to set up DTS quickly in their environment without going deeply into detail. -DTS can run on a tester machine or a DUT machine or the third machine to communicate/manage tester/DUT by SSH connection. -DTS supports different kinds of traffic generators, including Scapy, TRex, IXIA. -The example set up DTS on as tester machine, and use Scapy as traffic generator to run functional testing. +A DTS topology includes an SUT (System under test), a control node and a +traffic generator node: + +* An **SUT** is the host where the Device under test (DUT, the hardware being + tested) is located. In case of functional tests that don't require hardware, + it is the host where DPDK libraries are installed and where software (e.g. + DPDK example apps) using said libraries is executed. +* A **control node** is the host where DTS code is executed and from which DTS + connects to other hosts in the DTS topology. +* A **traffic generator** node is the host where the traffic generator (TG) + runs. + +DTS can run on a TG machine or an SUT machine or a third machine to communicate/manage TG/SUT by SSH connection. +DTS supports different kinds of traffic generators, including Scapy, TRex, IXEXPLORER. +The example set up DTS on TG machine, and use Scapy as traffic generator to run functional testing. System Requirements =================== @@ -27,7 +39,7 @@ The following platforms have been tested and are recommended. .. |reg| unicode:: U+000AE .. REGISTERED SIGN .. |trade| unicode:: U+2122 .. TRADE MARK SIGN -* DTS and Tester system +* DTS and TG system * CPU * Intel\ |reg| Xeon\ |reg| Platinum 8280M CPU @ 2.70GHz @@ -38,7 +50,7 @@ The following platforms have been tested and are recommended. * Ubuntu 20.04 * Ubuntu 18.04 -* DUT system +* SUT * CPU @@ -78,7 +90,7 @@ The following platforms have been tested and are recommended. Topology Example ---------------- -2 Teseter interfaces connect to 2 DUT interfaces back to back. +2 TG interfaces connect to 2 SUT interfaces back to back. Dependencies ------------ @@ -86,7 +98,7 @@ Dependencies SSH Service ~~~~~~~~~~~ -Tester and DUT should have one interface connected to the same internet, so that they can be accessed by each other from local IP address +TG and SUT should have one interface connected to the same internet, so that they can be accessed by each other from local IP address .. code-block:: console @@ -101,7 +113,7 @@ Tester and DUT should have one interface connected to the same internet, so that systemctl disable firewalld.service -Python modules for DTS & Tester +Python modules for DTS & TG ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The python dependences are recorded in requirements.txt. @@ -112,7 +124,7 @@ Please install them as the following: apt-get install python3 python3 -m pip install -r requirements.txt -BIOS setting for DUT +BIOS setting for SUT ~~~~~~~~~~~~~~~~~~~~ DPDK prefer devices bound to ``vfio-pci`` kernel module, therefore, please enable VT-d and VT-x: @@ -138,9 +150,9 @@ Get DTS code from remote repo. .. code-block:: console - [root@tester ~]# git clone http://dpdk.org/git/tools/dts - [root@tester ~]# ls dts - [root@tester dts]# conf CONTRIBUTING.TXT dep doc dts execution.cfg executions framework nics output requirements.txt test_plans tests tools version.py + [root@tg ~]# git clone http://dpdk.org/git/tools/dts + [root@tg ~]# ls dts + [root@tg dts]# conf CONTRIBUTING.TXT dep doc dts execution.cfg executions framework nics output requirements.txt test_plans tests tools version.py Preparing DPDK tarball ---------------------- @@ -155,7 +167,7 @@ DPDK source code should be packed as "dpdk.tar.gz" and moved into dts/dep: Configuring DTS --------------- -A few of files should be configured, including execution.cfg, $DTS_CFG_FOLDER/crbs, $DTS_CFG_FOLDER/ports.cfg. +A few of files should be configured, including execution.cfg, $DTS_CFG_FOLDER/topology.cfg, $DTS_CFG_FOLDER/ports.cfg. execution.cfg ~~~~~~~~~~~~~ @@ -163,7 +175,7 @@ execution.cfg .. code-block:: console [Execution1] - crbs=192.168.1.1 + sut=192.168.1.1 drivername=vfio-pci build_type=meson test_suites= @@ -172,29 +184,29 @@ execution.cfg x86_64-default-linuxapp-gcc, parameters=nic_type=cfg:func=true -* crbs: IP address of the DUT system +* sut: IP address of the SUT * test_suites: a list of test suites to be executed -$DTS_CFG_FOLDER/crbs.cfg +$DTS_CFG_FOLDER/topology.cfg ~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: console [192.168.1.1] - dut_ip=192.168.1.1 - dut_user=root - dut_passwd=dutpasswd + sut_ip=192.168.1.1 + sut_user=root + sut_passwd=sutpasswd os=linux - tester_ip=192.168.1.2 - tester_passwd=testerpasswd + tg_ip=192.168.1.2 + tg_passwd=tgpasswd channels=4 bypass_core0=True -* dut_ip: IP address of the DUT system, same as crbs in execution.cfg -* dut_user: User name of DUT linux account -* dut_passwd: Password of DUT linux account -* tester_ip: IP address of tester -* tester_passwd: Password of Tester linux account, user name should same as dut_user +* sut_ip: IP address of the SUT system, same as sut in execution.cfg +* sut_user: User name of SUT linux account +* sut_passwd: Password of SUT linux account +* tg_ip: IP address of TG +* tg_passwd: Password of TG linux account, user name should same as sut_user $DTS_CFG_FOLDER/ports.cfg ~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -206,16 +218,16 @@ $DTS_CFG_FOLDER/ports.cfg pci=0000:06:00.0,peer=0000:81:00.0; pci=0000:06:00.1,peer=0000:81:00.1; -* [192.168.1.1]: same as crbs in execution.cfg and dut_ip in $DTS_CFG_FOLDER/crbs.cfg -* pci: pci address of DUT port -* peer: pci address of Tester port which connected to the DUT port whose pci is `pci`. +* [192.168.1.1]: same as sut in execution.cfg and sut_ip in $DTS_CFG_FOLDER/topology.cfg +* pci: pci address of SUT port +* peer: pci address of TG port which connected to the SUT port whose pci is `pci`. The topology for the configuration is: .. code-block:: console - DUT port0 (0000:06:00.0) --- Tester port0 (0000:81:00.0) - DUT port0 (0000:06:00.1) --- Tester port0 (0000:81:00.1) + SUT port0 (0000:06:00.0) --- TG port0 (0000:81:00.0) + SUT port0 (0000:06:00.1) --- TG port0 (0000:81:00.1) Launch DTS ---------- @@ -224,43 +236,43 @@ As we have prepared the zipped dpdk file and configuration file, just type the f .. code-block:: console - [root@tester ~]# ./dts + [root@tg ~]# ./dts dts: - DUT 192.168.1.1 - tester: ssh root@192.168.1.2 - tester: ssh root@192.168.1.2 - tester: python3 -V - tester_scapy: ssh root@192.168.1.2 + SUT 192.168.1.1 + tg: ssh root@192.168.1.2 + tg: ssh root@192.168.1.2 + tg: python3 -V + tg_scapy: ssh root@192.168.1.2 ... - dut.192.168.1.1: ssh root@192.168.1.1 - dut.192.168.1.1: ssh root@192.168.1.1 + sut.192.168.1.1: ssh root@192.168.1.1 + sut.192.168.1.1: ssh root@192.168.1.1 ... - dut.192.168.1.1: scp -v dep/dpdk.tar.gz root@192.168.1.1:/tmp/ + sut.192.168.1.1: scp -v dep/dpdk.tar.gz root@192.168.1.1:/tmp/ ... - dut.192.168.1.1: DUT PORT MAP: [0, 1] + sut.192.168.1.1: SUT PORT MAP: [0, 1] ... - dut.192.168.1.1: export RTE_TARGET=x86_64-native-linuxapp-gcc - dut.192.168.1.1: export RTE_SDK=`pwd` - dut.192.168.1.1: rm -rf x86_64-native-linuxapp-gcc - dut.192.168.1.1: CC=gcc meson -Denable_kmods=True -Dlibdir=lib --default-library=static x86_64-native-linuxapp-gcc + sut.192.168.1.1: export RTE_TARGET=x86_64-native-linuxapp-gcc + sut.192.168.1.1: export RTE_SDK=`pwd` + sut.192.168.1.1: rm -rf x86_64-native-linuxapp-gcc + sut.192.168.1.1: CC=gcc meson -Denable_kmods=True -Dlibdir=lib --default-library=static x86_64-native-linuxapp-gcc ... - dut.192.168.1.1: usertools/dpdk-devbind.py --force --bind=vfio-pci 0000:af:00.0 0000:af:00.1 + sut.192.168.1.1: usertools/dpdk-devbind.py --force --bind=vfio-pci 0000:af:00.0 0000:af:00.1 dts: NIC : I40E_25G-25G_SFP28 - dut.192.168.1.1: meson configure -Dexamples=helloworld x86_64-native-linuxapp-gcc - dut.192.168.1.1: ninja -C x86_64-native-linuxapp-gcc - dut.192.168.1.1: ls x86_64-native-linuxapp-gcc/examples/dpdk-helloworld + sut.192.168.1.1: meson configure -Dexamples=helloworld x86_64-native-linuxapp-gcc + sut.192.168.1.1: ninja -C x86_64-native-linuxapp-gcc + sut.192.168.1.1: ls x86_64-native-linuxapp-gcc/examples/dpdk-helloworld TestHelloWorld: Test Case test_hello_world_all_cores Begin - dut.192.168.1.1: ./x86_64-native-linuxapp-gcc/examples/dpdk-helloworld -l 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71 -n 4 --file-prefix=dpdk_25703_20210311003827 + sut.192.168.1.1: ./x86_64-native-linuxapp-gcc/examples/dpdk-helloworld -l 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71 -n 4 --file-prefix=dpdk_25703_20210311003827 TestHelloWorld: Test Case test_hello_world_all_cores Result PASSED: TestHelloWorld: Test Case test_hello_world_single_core Begin - dut.192.168.1.1: ./x86_64-native-linuxapp-gcc/examples/dpdk-helloworld -l 1 -n 4 --file-prefix=dpdk_25703_20210311003827 + sut.192.168.1.1: ./x86_64-native-linuxapp-gcc/examples/dpdk-helloworld -l 1 -n 4 --file-prefix=dpdk_25703_20210311003827 TestHelloWorld: Test Case test_hello_world_single_core Result PASSED: dts: TEST SUITE ENDED: TestHelloWorld ... dts: DTS ended - [root@tester ~]# + [root@tg ~]# Check Test Result ================== @@ -269,14 +281,14 @@ The result files are generated in dts/output. .. code-block:: console - [root@tester output]# ls + [root@tg output]# ls rst_report dts.log statistics.txt TestHelloWorld.log test_results.json test_results.xls * statstics.txt: summary statistics .. code-block:: console - [root@tester output]# cat statistics.txt + [root@tg output]# cat statistics.txt dpdk_version = 21.02.0 Passed = 2 Failed = 0 @@ -287,7 +299,7 @@ The result files are generated in dts/output. .. code-block:: console - [root@tester output]# cat result.json + [root@tg output]# cat result.json { "192.168.1.1": { "dpdk_version": "21.02.0", diff --git a/doc/dts_gsg/usr_guide/igb_uio.rst b/doc/dts_gsg/usr_guide/igb_uio.rst index 13648cd0..8096c7f5 100644 --- a/doc/dts_gsg/usr_guide/igb_uio.rst +++ b/doc/dts_gsg/usr_guide/igb_uio.rst @@ -82,7 +82,7 @@ DTS configuration #. config drivername=igb_uio in execution.cfg:: [Execution1] - crbs=127.0.0.1 + sut=127.0.0.1 drivername=igb_uio build_type=meson test_suites= diff --git a/doc/dts_gsg/usr_guide/index.rst b/doc/dts_gsg/usr_guide/index.rst index e8b475d5..5bd53c8c 100644 --- a/doc/dts_gsg/usr_guide/index.rst +++ b/doc/dts_gsg/usr_guide/index.rst @@ -8,7 +8,7 @@ User Guide intro sys_reqs - setup_dut + setup_sut usage results trex diff --git a/doc/dts_gsg/usr_guide/intro.rst b/doc/dts_gsg/usr_guide/intro.rst index ce0a7dfd..4430c9ba 100644 --- a/doc/dts_gsg/usr_guide/intro.rst +++ b/doc/dts_gsg/usr_guide/intro.rst @@ -12,27 +12,29 @@ Everyone can utilize DTS to measure performance and functionality for features. As a generic test framework, DTS provides the following functions: -* Communicate/manage DUT and Tester by SSH connection. -* Able to work with DUT (Device Under Test), which installed Fedora, Ubuntu, CentOS, RHEL, etc. +* Communicate/manage SUT and TG by SSH connection. +* Able to work with SUT (System Under Test), which installed Fedora, Ubuntu, CentOS, RHEL, etc. * Support virtualization hypervisor Qemu. * Support both software and hardware traffic generators, including Scapy, TRex and IXIA®. -* Provide configure files to customize test suite and test cases to run under DUT. +* Provide configure files to customize test suite and test cases to run under SUT. * Provide debug and log functionalities for tracking test cases execution process. * Support to output test result by excel, json, log text file, etc. -DTS environment includes DUT (Device under Test), Tester and Traffic generator. DPDK are deployed on DUT and DTS can run on the Tester or DUT or the third machine. +DTS environment includes an SUT (System under Test), a Control Node and +a Traffic Generator node. DPDK is deployed on SUT and DTS can run on any +of the three nodes. .. note:: - * If run with functional testing, DTS uses `Scapy` as traffic generator, recommend installing DTS on Tester. - * If run with performance testing, DTS can use `TRex` or IXIA as traffic gengerator based on your deployment and configuration, recommend installing DTS on DUT. - * If use `TRex`, recommend deploying `TRex` and DUT on the same machine with different sockets. + * If run with functional testing, DTS uses `Scapy` as traffic generator, recommend installing DTS on TG. + * If run with performance testing, DTS can use `TRex` or IXEXPLORER as traffic gengerator based on your deployment and configuration, recommend installing DTS on SUT. + * If use `TRex`, recommend deploying `TRex` and SUT on the same machine with different sockets. Please see a functional deployment example in the following figure: .. figure:: image/dts_func_deploy.png -This architecture provides automatically mechanism to manage tester, DUT and packet generators, and remove dependency between test script and test environment/hardware. +This architecture provides automatically mechanism to manage the Control Node, SUT and traffic generators, and remove dependency between test script and test environment/hardware. It defines one abstraction layer for DPDK Test Suite, and provides extensibility to add more test script. In the DPDK Test Suite Test Framework, it provides the following modules to help to manage device, platform, configure and test results. diff --git a/doc/dts_gsg/usr_guide/ixia.rst b/doc/dts_gsg/usr_guide/ixia.rst index 5bea0039..d995f5de 100644 --- a/doc/dts_gsg/usr_guide/ixia.rst +++ b/doc/dts_gsg/usr_guide/ixia.rst @@ -12,7 +12,7 @@ First of all, you must configure execution.cfg as below: .. code-block:: console [Execution1] - crbs=192.168.1.1 + sut=192.168.1.1 drivername=vfio-pci test_suites= nic_single_core_perf, @@ -22,25 +22,25 @@ First of all, you must configure execution.cfg as below: build_type=meson rx_mode=avx512 -Configure CRB information -~~~~~~~~~~~~~~~~~~~~~~~~~ +Configure Node information +~~~~~~~~~~~~~~~~~~~~~~~~~~ -Then please add the detail information about your CRB in $DTS_CFG_FOLDER/crbs.conf as following: +Then please add the detail information about your Node in $DTS_CFG_FOLDER/topology.cfg as following: .. code-block:: console [192.168.1.1] - dut_ip=192.168.1.1 - dut_user=root - dut_passwd=passwd + sut_ip=192.168.1.1 + sut_user=root + sut_passwd=passwd os=linux - dut_arch= - tester_ip=192.168.1.1 - tester_passwd=passwd - pktgen_group=IXIA + sut_arch= + tg_ip=192.168.1.1 + tg_passwd=passwd + perf_tg=IXEXPLORER channels=4 bypass_core0=True - dut_cores= + sut_cores= Configure port information ~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -49,8 +49,8 @@ ports topology as below: .. code-block:: console - IXIA port 0 <---------> DUT port 0 - IXIA port 1 <---------> DUT port 1 + IXEXPLORER port 0 <---------> SUT port 0 + IXEXPLORER port 1 <---------> SUT port 1 please add port configuration in $DTS_CFG_FOLDER/ports.cfg as following: @@ -58,17 +58,17 @@ please add port configuration in $DTS_CFG_FOLDER/ports.cfg as following: [192.168.1.1] ports = - pci=0000:af:00.0,peer=IXIA:3.1; - pci=0000:b1:00.0,peer=IXIA:3.2; + pci=0000:af:00.0,peer=IXEXPLORER:3.1; + pci=0000:b1:00.0,peer=IXEXPLORER:3.2; -Configure pktgen information -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Configure traffic generator information +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -please configure Pktgen information in $DTS_CFG_FOLDER/pktgen.cfg +please configure traffic generator information in $DTS_CFG_FOLDER/traffic_generator.cfg .. code-block:: console - [IXIA] + [IXEXPLORER] ixia_version=9.00 ixia_ip=192.168.2.1 ixia_ports= @@ -132,64 +132,64 @@ Now you can start DTS performance test with IXIA: root@test1:~/dts# ./dts dts: - DUT 192.168.1.1 - tester: ssh root@192.168.1.1 + SUT 192.168.1.1 + tg: ssh root@192.168.1.1 ... - pktgen: ssh root@192.168.1.1 - pktgen: tclsh - pktgen: source ./IxiaWish.tcl - pktgen: set ::env(IXIA_VERSION) 9.00 - pktgen: package req IxTclHal - pktgen: ixConnectToTclServer 192.168.2.1 - pktgen: ixLogin IxiaTclUser - pktgen: ixConnectToChassis 192.168.2.1 - pktgen: set chasId [ixGetChassisID 192.168.2.1] - pktgen: ixClearOwnership [list [list 1 3 1] [list 1 3 2]] - pktgen: ixTakeOwnership [list [list 1 3 1] [list 1 3 2]] force - pktgen: stat getLineSpeed 1 3 1 - pktgen: stat getLineSpeed 1 3 2 + perf_tg: ssh root@192.168.1.1 + perf_tg: tclsh + perf_tg: source ./IxiaWish.tcl + perf_tg: set ::env(IXIA_VERSION) 9.00 + perf_tg: package req IxTclHal + perf_tg: ixConnectToTclServer 192.168.2.1 + perf_tg: ixLogin IxiaTclUser + perf_tg: ixConnectToChassis 192.168.2.1 + perf_tg: set chasId [ixGetChassisID 192.168.2.1] + perf_tg: ixClearOwnership [list [list 1 3 1] [list 1 3 2]] + perf_tg: ixTakeOwnership [list [list 1 3 1] [list 1 3 2]] force + perf_tg: stat getLineSpeed 1 3 1 + perf_tg: stat getLineSpeed 1 3 2 ... TestNicSingleCorePerf: Test Case test_perf_nic_single_core Begin TestNicSingleCorePerf: Executing Test Using cores: ['28', '29'] of config 1C/1T TestNicSingleCorePerf: Test running at parameters: framesize: 64, rxd/txd: 512 - dut.192.168.1.1: x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 28,29 -n 6 -a 0000:af:00.0 -a 0000:b1:00.0 -- -i --portmask=0x3 --rxq=2 --txq=2 --txd=512 --rxd=512 --nb-cores=1 - dut.192.168.1.1: start - pktgen: stat getLineSpeed 1 1 1 - pktgen: stat getLineSpeed 1 1 2 - pktgen: scp -v dumppcap.py root@192.168.1.1:~/ - pktgen: scapy -c dumppcap.py 2>/dev/null - pktgen: scp -v dumppcap.py root@192.168.1.1:~/ - pktgen: scapy -c dumppcap.py 2>/dev/null - pktgen: scp -v dumppcap.py root@192.168.1.1:~/ - pktgen: scapy -c dumppcap.py 2>/dev/null - pktgen: scp -v dumppcap.py root@192.168.1.1:~/ - pktgen: scapy -c dumppcap.py 2>/dev/null - pktgen: begin traffic ...... - tester: scp -v ixiaConfig.tcl root@192.168.1.1:~/ - pktgen: source ixiaConfig.tcl - pktgen: begin get port statistic ... - pktgen: stat getRate statAllStats 1 3 2 - pktgen: stat cget -framesReceived - pktgen: stat cget -bitsReceived - pktgen: stat cget -oversize - pktgen: stat getRate statAllStats 1 3 1 - pktgen: stat cget -framesReceived - pktgen: stat cget -bitsReceived - pktgen: stat cget -oversize - pktgen: stat getRate statAllStats 1 3 2 - pktgen: stat cget -framesReceived - pktgen: stat cget -bitsReceived - pktgen: stat cget -oversize - pktgen: stat getRate statAllStats 1 3 1 - pktgen: stat cget -framesReceived - pktgen: stat cget -bitsReceived - pktgen: stat cget -oversize - pktgen: throughput: pps_rx 69504677.000000, bps_rx 35586394625.000000 - pktgen: ixStopTransmit portList - pktgen: traffic completed. - dut.192.168.1.1: stop - dut.192.168.1.1: quit + sut.192.168.1.1: x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 28,29 -n 6 -a 0000:af:00.0 -a 0000:b1:00.0 -- -i --portmask=0x3 --rxq=2 --txq=2 --txd=512 --rxd=512 --nb-cores=1 + sut.192.168.1.1: start + perf_tg: stat getLineSpeed 1 1 1 + perf_tg: stat getLineSpeed 1 1 2 + perf_tg: scp -v dumppcap.py root@192.168.1.1:~/ + perf_tg: scapy -c dumppcap.py 2>/dev/null + perf_tg: scp -v dumppcap.py root@192.168.1.1:~/ + perf_tg: scapy -c dumppcap.py 2>/dev/null + perf_tg: scp -v dumppcap.py root@192.168.1.1:~/ + perf_tg: scapy -c dumppcap.py 2>/dev/null + perf_tg: scp -v dumppcap.py root@192.168.1.1:~/ + perf_tg: scapy -c dumppcap.py 2>/dev/null + perf_tg: begin traffic ...... + tg: scp -v ixiaConfig.tcl root@192.168.1.1:~/ + perf_tg: source ixiaConfig.tcl + perf_tg: begin get port statistic ... + perf_tg: stat getRate statAllStats 1 3 2 + perf_tg: stat cget -framesReceived + perf_tg: stat cget -bitsReceived + perf_tg: stat cget -oversize + perf_tg: stat getRate statAllStats 1 3 1 + perf_tg: stat cget -framesReceived + perf_tg: stat cget -bitsReceived + perf_tg: stat cget -oversize + perf_tg: stat getRate statAllStats 1 3 2 + perf_tg: stat cget -framesReceived + perf_tg: stat cget -bitsReceived + perf_tg: stat cget -oversize + perf_tg: stat getRate statAllStats 1 3 1 + perf_tg: stat cget -framesReceived + perf_tg: stat cget -bitsReceived + perf_tg: stat cget -oversize + perf_tg: throughput: pps_rx 69504677.000000, bps_rx 35586394625.000000 + perf_tg: ixStopTransmit portList + perf_tg: traffic completed. + sut.192.168.1.1: stop + sut.192.168.1.1: quit TestNicSingleCorePerf: Trouthput of framesize: 64, rxd/txd: 512 is :69.504677 Mpps ... diff --git a/doc/dts_gsg/usr_guide/results.rst b/doc/dts_gsg/usr_guide/results.rst index 244b579e..deb0b8b7 100644 --- a/doc/dts_gsg/usr_guide/results.rst +++ b/doc/dts_gsg/usr_guide/results.rst @@ -26,7 +26,7 @@ Please see example as the following. You can cat the sample file, then show this .. code-block:: console - [root@tester output]# cat statistics.txt + [root@tg output]# cat statistics.txt dpdk_version = 21.02.0 Passed = 2 Failed = 0 @@ -77,9 +77,9 @@ Please see example for TestHelloWorld suite log as the following. This log file 31/12/2020 11:04:00 INFO: TEST SUITE : TestHelloWorld 31/12/2020 11:04:00 INFO: NIC : I40E_25G-25G_SFP28 - 31/12/2020 11:04:00 SUITE_DUT_CMD: meson configure -Dexamples=helloworld x86_64-native-linuxapp-gcc - 31/12/2020 11:04:01 SUITE_DUT_CMD: ninja -C x86_64-native-linuxapp-gcc - 31/12/2020 11:04:07 SUITE_DUT_OUTPUT: ninja: Entering directory `x86_64-native-linuxapp-gcc'^M + 31/12/2020 11:04:00 SUITE_SUT_CMD: meson configure -Dexamples=helloworld x86_64-native-linuxapp-gcc + 31/12/2020 11:04:01 SUITE_SUT_CMD: ninja -C x86_64-native-linuxapp-gcc + 31/12/2020 11:04:07 SUITE_SUT_OUTPUT: ninja: Entering directory `x86_64-native-linuxapp-gcc'^M [0/1] Regenerating build files.^M The Meson build system^M Version: 0.55.3^M @@ -92,8 +92,8 @@ Please see example for TestHelloWorld suite log as the following. This log file [1/2] Compiling C object examples/dpdk-helloworld.p/helloworld_main.c.o^M [2/2] Linking target examples/dpdk-helloworld 31/12/2020 11:04:09 INFO: Test Case test_hello_world_single_core Begin - 31/12/2020 11:04:13 SUITE_DUT_CMD: ./x86_64-native-linuxapp-gcc/examples/dpdk-helloworld -l 1 -n 4 --file-prefix=dpdk_10243_20201231110241 - SUITE_DUT_OUTPUT: EAL: Detected 72 lcore(s)^M + 31/12/2020 11:04:13 SUITE_SUT_CMD: ./x86_64-native-linuxapp-gcc/examples/dpdk-helloworld -l 1 -n 4 --file-prefix=dpdk_10243_20201231110241 + SUITE_SUT_OUTPUT: EAL: Detected 72 lcore(s)^M … hello from core 1 31/12/2020 11:04:15 INFO: Test Case test_hello_world_single_core Result PASSED: diff --git a/doc/dts_gsg/usr_guide/setup_dut.rst b/doc/dts_gsg/usr_guide/setup_sut.rst similarity index 97% rename from doc/dts_gsg/usr_guide/setup_dut.rst rename to doc/dts_gsg/usr_guide/setup_sut.rst index c47db8b7..bb5159cb 100644 --- a/doc/dts_gsg/usr_guide/setup_dut.rst +++ b/doc/dts_gsg/usr_guide/setup_sut.rst @@ -1,7 +1,7 @@ -Set up DUT +Set up SUT =========== -This chapter describes the packages required to compile the DPDK in DUT. +This chapter describes the packages required to compile the DPDK in SUT. BIOS Setting Prerequisite on x86 -------------------------------- @@ -125,7 +125,7 @@ For libraries the additional dependencies include: Compile DPDK ------------- -Now we can compile the DPDK to check whether the DUT ENV is OK. +Now we can compile the DPDK to check whether the SUT ENV is OK. commands:: @@ -133,7 +133,7 @@ commands:: ninja -C x86_64-native-linuxapp-gcc -j 110 if there are no errors occurred during the compilation and the DPDK apps have been generated, -it means the DUT ENV is OK now. +it means the SUT ENV is OK now. Check dpdk-testpmd:: diff --git a/doc/dts_gsg/usr_guide/sys_reqs.rst b/doc/dts_gsg/usr_guide/sys_reqs.rst index b91eef9d..15b6b8cf 100644 --- a/doc/dts_gsg/usr_guide/sys_reqs.rst +++ b/doc/dts_gsg/usr_guide/sys_reqs.rst @@ -1,15 +1,15 @@ System Requirements =================== -This chapter describes the packages required to deploy DTS, including Tester and DUT. -Tester and DUT should have one interface connected to the same internet, so that they can be accessed by each other from local IP address. -The tester and DUT are recommended to install the latest Centos, Redhat or Ubuntu for easily installing DTS(DPDK Test Suite) or DPDK required modules. +This chapter describes the packages required to deploy DTS, including TG and SUT. +TG and SUT should have one interface connected to the same internet, so that they can be accessed by each other from local IP address. +The TG and SUT are recommended to install the latest Centos, Redhat or Ubuntu for easily installing DTS(DPDK Test Suite) or DPDK required modules. .. note:: - Uubuntu 20.04 are installed for Tester and DUT, and The setup instruction and required packages may be different on different operation systems. + Uubuntu 20.04 are installed for TG and SUT, and The setup instruction and required packages may be different on different operation systems. -Firewall should be disabled on Tester and DUT so that all packets can be accepted by NIC Interface. +Firewall should be disabled on TG and SUT so that all packets can be accepted by NIC Interface. .. code-block:: console @@ -19,7 +19,7 @@ Firewall should be disabled on Tester and DUT so that all packets can be accepte SSH Service ----------- -Since DPDK Test Suite Tester communicates with DUT via SSH, please install and start sshd service in your Tester and DUT. +Since DPDK Test Suite TG communicates with SUT via SSH, please install and start sshd service in your TG and SUT. .. code-block:: console @@ -51,7 +51,7 @@ They are recorded in `requirements.txt`. .. code-block:: console - [root@tester ~]# cat requirements.txt + [root@tg ~]# cat requirements.txt ... xlwt==1.3.0 pexpect==4.7.0 @@ -96,7 +96,7 @@ Here are some differences between scapy 2.4.4 and scapy 2.4.3 about the packet l BIOS Setting Prerequisite on x86 -------------------------------- -For the majority of platforms, no special BIOS settings for Tester and DUT. +For the majority of platforms, no special BIOS settings for TG and SUT. DPDK prefers devices bound to ``vfio-pci`` kernel module, therefore, `VT-x` and `VT-d` should be enabled. .. code-block:: console @@ -120,7 +120,7 @@ For more detail information of DPDK requirements, please refer to `Data Plane De Performance testing requirements -------------------------------- -DTS supports three kinds of traffic generators: `Scapy`, `TRex` and `Ixia IxExplorer`. Scapy is for functional testing, TRex and `Ixia IxExplorer` are for performance testing. The mechanism in DTS that mananges traffic generators for performance is called `Pktgen`. +DTS supports three kinds of traffic generators: `Scapy`, `TRex` and `Ixia IxExplorer`. Scapy is for functional testing, TRex and `Ixia IxExplorer` are for performance testing. The mechanism in DTS that mananges traffic generators for performance is called `perf TG`. `Ixia IxExplorer` is the principal means used to program Ixia hardware and to perform testing on network devices. Ixia is a hardware traffic generator product of `keysight `_ company. DTS requires to install TCL (Tool Command Language) package to connect and control `Ixia IxExplorer`: diff --git a/doc/dts_gsg/usr_guide/trex.rst b/doc/dts_gsg/usr_guide/trex.rst index 738ea5e4..eb3a19ea 100644 --- a/doc/dts_gsg/usr_guide/trex.rst +++ b/doc/dts_gsg/usr_guide/trex.rst @@ -3,7 +3,7 @@ Practice with TRex Download TREX ------------- -TREX should be installed in Tester, it could be downloaded from http://trex-tgn.cisco.com/trex/release/. +TREX should be installed in TG, it could be downloaded from http://trex-tgn.cisco.com/trex/release/. We recommend to use the latest version v2.88. .. code-block:: console @@ -20,9 +20,9 @@ Extract the downloaded TREX tarball ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Extract the downloaded TREX file to /opt/trex/:: - root@tester:/opt# mkdir trex - root@tester:/opt# cd trex - root@tester:/opt/trex# tar -zxvf v2.88.tar.gz + root@tg:/opt# mkdir trex + root@tg:/opt# cd trex + root@tg:/opt/trex# tar -zxvf v2.88.tar.gz v2.88/ v2.88/_t-rex-64-debug v2.88/t-rex-64-debug @@ -32,11 +32,11 @@ Extract the downloaded TREX file to /opt/trex/:: Generate Configure File ~~~~~~~~~~~~~~~~~~~~~~~~ -Identify the performance test ports in tester -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Identify the performance test ports in TG +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ execute the command like below to list the ports:: - root@tester:/opt/trex/v2.88# ./dpdk_setup_ports.py -s + root@tg:/opt/trex/v2.88# ./dpdk_setup_ports.py -s Network devices using DPDK-compatible driver ============================================ @@ -53,15 +53,15 @@ execute the command like below to list the ports:: Generate Configure File ^^^^^^^^^^^^^^^^^^^^^^^ -Assume that we use 0000:0b:00.0, 0000:0b:00.1 to connect to DUT port. +Assume that we use 0000:0b:00.0, 0000:0b:00.1 to connect to SUT ports. And the ports topology as below:: - trex.0 (0b:00.0/40:a6:b7:0b:55:78) <-------> DUT port 0 (05:00.0/b4:96:91:9f:63:68) - trex.1 (0b:00.1/40:a6:b7:0b:55:79) <-------> DUT port 1 (05:00.1/b4:96:91:9f:63:69) + trex.0 (0b:00.0/40:a6:b7:0b:55:78) <-------> SUT port 0 (05:00.0/b4:96:91:9f:63:68) + trex.1 (0b:00.1/40:a6:b7:0b:55:79) <-------> SUT port 1 (05:00.1/b4:96:91:9f:63:69) We need to generate the trex config file as below:: - root@tester:/opt/v2.88# ./dpdk_setup_ports.py -i + root@tg:/opt/v2.88# ./dpdk_setup_ports.py -i By default, IP based configuration file will be created. Do you want to use MAC based config? (y/N)y +----+------+---------+-------------------+--------------------------------------------+---------+----------+----------+ | ID | NUMA | PCI | MAC | Name | Driver | Linux IF | Active | @@ -105,7 +105,7 @@ We need to generate the trex config file as below:: Press ENTER to confirm or enter new file: File /etc/trex_cfg.yaml already exist, overwrite? (y/N)Y Saved to /etc/trex_cfg.yaml. - root@tester:/opt/trex/v2.88# + root@tg:/opt/trex/v2.88# We could not modify the DUT mac during the configuration and modify it in the generated file /etc/trex_cfg.yaml. @@ -113,7 +113,7 @@ Modify Configure File ^^^^^^^^^^^^^^^^^^^^^ Make sure the DUT mac of the generated TREX file is correct, and add prefix and limit_memory is better:: - root@tester:/opt/trex/v2.88# cat /etc/trex_cfg.yaml + root@tg:/opt/trex/v2.88# cat /etc/trex_cfg.yaml ### Config file generated by dpdk_setup_ports.py ### - version: 2 @@ -133,7 +133,7 @@ Make sure the DUT mac of the generated TREX file is correct, and add prefix and - socket: 0 threads: [2,3,4,5,6,7] - root@tester:/opt/trex/v2.88# + root@tg:/opt/trex/v2.88# Replace system scapy with TREX scapy ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -155,9 +155,9 @@ Configure execution.cfg ~~~~~~~~~~~~~~~~~~~~~~~ Add the performance test suite and set perf=true:: - root@tester:dts# cat execution.cfg + root@tg:dts# cat execution.cfg [Execution1] - crbs=192.168.1.1 + sut=192.168.1.1 drivername=vfio-pci build_type=meson test_suites= @@ -165,23 +165,23 @@ Add the performance test suite and set perf=true:: targets= x86_64-native-linuxapp-gcc parameters=nic_type=cfg:perf=true - root@tester:dts# + root@tg:dts# -Configure $DTS_CFG_FOLDER/crbs.cfg +Configure $DTS_CFG_FOLDER/topology.cfg ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Set the pktgen_group=trex or pktgen_group=TREX, this item is case insensitive:: +Set the perf_tg=trex or perf_tg=TREX, this item is case insensitive:: - root@tester:dts# cat $DTS_CFG_FOLDER/crbs.cfg + root@tg:dts# cat $DTS_CFG_FOLDER/topology.cfg [192.168.1.1] - dut_ip=192.168.1.1 - dut_user=root - dut_passwd=dutpwd + sut_ip=192.168.1.1 + sut_user=root + sut_passwd=sutpwd os=linux - dut_arch= - tester_ip=192.168.1.2 - tester_passwd=testerpwd + sut_arch= + tg_ip=192.168.1.2 + tg_passwd=tgpwd ixia_group= - pktgen_group=trex + perf_tg=trex channels=4 bypass_core0=True @@ -190,7 +190,7 @@ Configure $DTS_CFG_FOLDER/ports.cfg This configuration is just same with PF function test, so if you have completed some functional test, you have no need to modify the $DTS_CFG_FOLDER/ports.cfg, just like below:: - root@tester:dts# cat $DTS_CFG_FOLDER/ports.cfg + root@tg:dts# cat $DTS_CFG_FOLDER/ports.cfg [192.168.1.1] ports = pci=0000:05:00.0,peer=0000:0b:00.0; @@ -198,7 +198,7 @@ you have no need to modify the $DTS_CFG_FOLDER/ports.cfg, just like below:: In addition, it could be configured as below:: - root@tester:dts# cat $DTS_CFG_FOLDER/ports.cfg + root@tg:dts# cat $DTS_CFG_FOLDER/ports.cfg [192.168.1.1] ports = pci=0000:05:00.0,peer=TREX:0; @@ -206,13 +206,13 @@ In addition, it could be configured as below:: We recommend to use the first format configuration, as it has no need to do modification when we do functional test. -Configure $DTS_CFG_FOLDER/pktgen.cfg +Configure $DTS_CFG_FOLDER/traffic_generator.cfg ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Fill in the $DTS_CFG_FOLDER/pktgen.cfg with your TREX setting, for the first time, you should set start_trex=yes. -Set the IP address of the device which you installed TREX into item ‘server=’, it should be the tester IP. +Fill in the $DTS_CFG_FOLDER/traffic_generator.cfg with your TREX setting, for the first time, you should set start_trex=yes. +Set the IP address of the device which you installed TREX into item ‘server=’, it should be the TG IP. The configuration should as below:: - root@tester:dts# cat $DTS_CFG_FOLDER/pktgen.cfg + root@tg:dts# cat $DTS_CFG_FOLDER/traffic_generator.cfg [TREX] trex_root_path=/opt/trex/v2.88 trex_lib_path=/opt/trex/v2.88/automation/trex_control_plane/interactive @@ -229,9 +229,9 @@ The configuration should as below:: As the trex_lib_path may be different in different versions, you could find the correct path as blow command:: - root@tester:/opt/trex/v2.88# find . -name trex_stl_lib + root@tg:/opt/trex/v2.88# find . -name trex_stl_lib ./automation/trex_control_plane/interactive/trex_stl_lib - root@tester:/opt/trex/v2.88# + root@tg:/opt/trex/v2.88# Run DTS performance test with TREX @@ -239,28 +239,28 @@ Run DTS performance test with TREX Now you can start DTS performance test with TREX:: - root@tester:/home/zhaohy/dts# ./dts + root@tg:/home/zhaohy/dts# ./dts dts: - DUT 192.168.1.1 - tester: ssh root@192.168.1.1 + SUT 192.168.1.1 + tg: ssh root@192.168.1.1 ... - pktgen: ssh root@192.168.1.1 - pktgen: cd /opt/trex/v2.88;./t-rex-64 -i --cfg /etc/trex_cfg.yaml -c 4 - pktgen: Starting Scapy server..... Scapy server is started + perf_tg: ssh root@192.168.1.1 + perf_tg: cd /opt/trex/v2.88;./t-rex-64 -i --cfg /etc/trex_cfg.yaml -c 4 + perf_tg: Starting Scapy server..... Scapy server is started Trying to bind to igb_uio ... /usr/bin/python3 dpdk_nic_bind.py --bind=igb_uio 0000:0b:00.0 0000:0b:00.1 ... TestTSO: Test Case test_perf_TSO_2ports Begin - dut.10.240.183.72: - tester: + sut.10.240.183.72: + tg: TestTSO: Executing PMD using 1S/1C/2T - dut.10.240.183.72: x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1,45 -n 4 -a 0000:05:00.0 -a 0000:05:00.1 --file-prefix=dpdk_31529_20210324143008 -- -i --rxd=512 --txd=512 --burst=32 --rxfreet=64 --mbcache=128 --portmask=0x3 --max-pkt-len=9000 --txpt=36 --txht=0 --txwt=0 --txfreet=32 --txrst=32 - dut.10.240.183.72: EAL: Detected 88 lcore(s) + sut.10.240.183.72: x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1,45 -n 4 -a 0000:05:00.0 -a 0000:05:00.1 --file-prefix=dpdk_31529_20210324143008 -- -i --rxd=512 --txd=512 --burst=32 --rxfreet=64 --mbcache=128 --portmask=0x3 --max-pkt-len=9000 --txpt=36 --txht=0 --txwt=0 --txfreet=32 --txrst=32 + sut.10.240.183.72: EAL: Detected 88 lcore(s) ... - pktgen: Rx Port 0 stats: + perf_tg: Rx Port 0 stats: rx_port: 0, rx_bps: 25354096640.000000, rx_pps: 1239130.250000 - pktgen: throughput: pps_rx 5463897.750000, bps_rx 50961129472.000000 - pktgen: traffic completed. + perf_tg: throughput: pps_rx 5463897.750000, bps_rx 50961129472.000000 + perf_tg: traffic completed. ... TestTSO: +------------+---------------+------------+ @@ -281,10 +281,10 @@ dpdk hugepage management conflict issue trex use older dpdk version than we release cycle source code. When dpdk change the memory management merchanism, trex will meet the following issue. -Trex should run on an independent platform. DUT/Trex should run on two platforms: +Trex should run on an independent platform. SUT/Trex should run on two platforms: -* one is used as TESTER and trex server, another one is used as DUT.(dts/pktgen) -* one is used as trex server, another one is used as DUT/TESTER.(recommended scheme) +* one is used as Control Node and TG/trex server, another one is used as SUT. +* one is used as TG/trex server, another one is used as SUT/Control Node.(recommended scheme) This scheme can make sure that trex run on its full status capability. When trex run with dts on the same platform, trex server sometimes boot up @@ -313,7 +313,7 @@ failed for hugepage error. trex quit when using 82599 ~~~~~~~~~~~~~~~~~~~~~~~~~~ -when bind dut 82599/500 Series port to igb_uio, peer port will get a link down status, then +when bind sut 82599/500 Series port to igb_uio, peer port will get a link down status, then trex server using 82599/500 Series nic will quit. .. code-block:: console diff --git a/doc/dts_gsg/usr_guide/usage.rst b/doc/dts_gsg/usr_guide/usage.rst index e59d1544..3732c3d7 100644 --- a/doc/dts_gsg/usr_guide/usage.rst +++ b/doc/dts_gsg/usr_guide/usage.rst @@ -12,7 +12,7 @@ First of all, you must configure execution.cfg as below: .. code-block:: console [Execution1] - crbs= + sut= drivername=vfio-pci build_type=meson rx_mode=avx512 @@ -22,7 +22,7 @@ First of all, you must configure execution.cfg as below: x86_64-native-linuxapp-gcc parameters=nic_type=cfg:func=true -* crbs: IP address of the DUT. The detail information is defined in file $DTS_CFG_FOLDER/crbs.cfg. +* sut: IP address of the SUT. The detail information is defined in file $DTS_CFG_FOLDER/topology.cfg. * drivername: the driver devices used by DPDK bound to. * build_type: the tool for building DPDK, it can be meson. * rx_mode: vector instructions used in tests, it can be novector/sse/avx2/avx512. it is optional, if not set, dpdk uses avx2 by default. @@ -32,8 +32,8 @@ First of all, you must configure execution.cfg as below: * nic_type: it is the type of the NIC to use. The types are defined in the file settings.py. There's a special type named as **cfg**, which mean network information will be loaded from file $DTS_CFG_FOLDER/ports.cfg. - If use NIC type such as 82599, Intel® Ethernet Network Adapter XXV710-DA2 , it requires all DUT are the same types and no any same devices connected to Tester, - as DTS will test all devices connected to Tester. Therefore, recommend using **cfg**. + If use NIC type such as 82599, Intel® Ethernet Network Adapter XXV710-DA2 , it requires all NICs are the same types and no any same devices connected to TG, + as DTS will test all devices connected to TG. Therefore, recommend using **cfg**. * func=true: run only functional test. * perf=true: run only performance test. @@ -46,7 +46,7 @@ Here are an example for functional testing: .. code-block:: console [Execution1] - crbs=192.168.1.1 + sut=192.168.1.1 drivername=vfio-pci build_type=meson test_suites= @@ -56,48 +56,48 @@ Here are an example for functional testing: parameters=nic_type=cfg:func=true -Configure CRB information -~~~~~~~~~~~~~~~~~~~~~~~~~ +Configure Node information +~~~~~~~~~~~~~~~~~~~~~~~~~~ -Then please add the detail information about your CRB in $DTS_CFG_FOLDER/crbs.conf as following: +Then please add the detail information about your Nodes in $DTS_CFG_FOLDER/topology.cfg as following: .. code-block:: console - [DUT IP] - dut_ip=xxx.xxx.xxx.xxx - dut_user=root - dut_passwd= + [SUT IP] + sut_ip=xxx.xxx.xxx.xxx + sut_user=root + sut_passwd= os=linux - dut_arch= - tester_ip=xxx.xxx.xxx.xxx - tester_passwd= - pktgen_group= + sut_arch= + tg_ip=xxx.xxx.xxx.xxx + tg_passwd= + perf_tg= channels=4 bypass_core0=True - dut_cores= - -* DUT IP: section name, same as ``crbs`` in execution.cfg. -* dut_ip: IP address of the DUT, same as ``crbs`` in execution.cfg. -* dut_user: User name of DUT linux account -* dut_passwd: Password of DUT linux account -* tester_ip: IP address of tester -* tester_passwd: Password of Tester linux account, user name should same as dut_user -* pktgen_group: traffic generator name, it can be ``trex`` or ``ixia``, it is optional, if not set, DTS can't do performance tests. + sut_cores= + +* SUT IP: section name, same as ``sut`` in execution.cfg. +* sut_ip: IP address of the SUT, same as ``sut`` in execution.cfg. +* sut_user: User name of SUT linux account +* sut_passwd: Password of SUT linux account +* tg_ip: IP address of TG +* tg_passwd: Password of TG linux account, user name should same as sut_user +* perf_tg: traffic generator name, it can be ``trex`` or ``ixexplorer``, it is optional, if not set, DTS can't do performance tests. * channels: number of memory channels for DPDK EAL * bypass_core0: skip the first core when initialize DPDK -* dut_cores: DUT core list, eg: 1,2,3,4,5,18-22, it is optional, if it is ``None`` or not set, all core list will be used. +* sut_cores: SUT core list, eg: 1,2,3,4,5,18-22, it is optional, if it is ``None`` or not set, all core list will be used. Here are an example for functional testing: .. code-block:: console [192.168.1.1] - dut_ip=192.168.1.1 - dut_user=root - dut_passwd=dutpasswd + sut_ip=192.168.1.1 + sut_user=root + sut_passwd=sutpasswd os=linux - tester_ip=192.168.1.2 - tester_passwd=testerpasswd + tg_ip=192.168.1.2 + tg_passwd=tgpasswd channels=4 bypass_core0=True @@ -109,20 +109,20 @@ If set ``nic_type=cfg`` in execution.cfg, please add port configuration in $DTS_ .. code-block:: console - [DUT IP] + [SUT IP] ports = pci=,peer=; - pci=,peer=IXIA:X.Y; + pci=,peer=IXEXPLORER:X.Y; pci=,peer=TREX:X; -It supports three patterns, the first one is for functional testing, the second one is for ``IXIA``, the third one is for ``TRex``: +It supports three patterns, the first one is for functional testing, the second one is for ``IXEXPLORER``, the third one is for ``TRex``: -* pci: Device pci address of DUT -* peer: info of Tester port which connected to the DUT device: +* pci: Device pci address of SUT +* peer: info of TG port which connected to the SUT counterpart: * if it is func testing, it is pci address - * if pktgen is ``TRex``, the `X` in ``TREX:X`` is port id in TRex configuration file, e.g. /etc/trex_cfg.yaml. - * if pktgen is ``IXIA``, the `X` is card id ,and the `Y` is port id, which configured in DTS_CFG_FOLDER/pktgen.cfg (./conf/pktgen.cfg by default). + * if perf TG is ``TRex``, the `X` in ``TREX:X`` is port id in TRex configuration file, e.g. /etc/trex_cfg.yaml. + * if perf TG is ``IXEXPLORER``, the `X` is card id ,and the `Y` is port id, which configured in DTS_CFG_FOLDER/traffic_generator.cfg (./conf/traffic_generator.cfg by default). Here are an example for functional testing: @@ -133,14 +133,14 @@ Here are an example for functional testing: pci=0000:06:00.0,peer=0000:81:00.0; pci=0000:06:00.1,peer=0000:81:00.1; -Here are an example for IXIA: +Here are an example for IXEXPLORER: .. code-block:: console [192.168.1.1] ports = - pci=0000:18:00.0,peer=IXIA:1.1; - pci=0000:18:00.1,peer=IXIA:1.2; + pci=0000:18:00.0,peer=IXEXPLORER:1.1; + pci=0000:18:00.1,peer=IXEXPLORER:1.2; Here are an example for TRex: @@ -180,15 +180,15 @@ For example, suite metrics has its suite configure file $DTS_CFG_FOLDER/metric.c rates = [100, 80, 40, 20] -Configure your pktgen -~~~~~~~~~~~~~~~~~~~~~ +Configure your traffic generator +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Pktgen information are configured in $DTS_CFG_FOLDER/pktgen.cfg, pktgen_group must be configured too: +Traffic generator information are configured in $DTS_CFG_FOLDER/traffic_generator.cfg, perf_tg must be configured too: -* traffic generator is ``TRex``, set ``pktgen_group=trex`` in crbs.cfg. -* traffic generator is ``IXIA``, set ``pktgen_group=ixia`` in crbs.cfg. +* traffic generator is ``TRex``, set ``perf_tg=trex`` in topology.cfg. +* traffic generator is ``IXEXPLORER``, set ``perf_tg=ixexplorer`` in topology.cfg. -Then configure $DTS_CFG_FOLDER/pktgen.cfg as following: +Then configure $DTS_CFG_FOLDER/traffic_generator.cfg as following: .. code-block:: console @@ -196,7 +196,7 @@ Then configure $DTS_CFG_FOLDER/pktgen.cfg as following: trex_root_path=/opt/trex/v2.84/ trex_lib_path=/opt/trex/v2.84/automation/trex_control_plane/interactive config_file=/etc/trex_cfg.yaml - server=192.168.1.1 # equal to tester IP, TREX should be installed in tester + server=192.168.1.1 # equal to TG IP, TREX should be installed in TG pcap_file=/opt/trex/v2.84/stl/sample.pacp core_num=16 ip_src=16.0.0.1 @@ -205,7 +205,7 @@ Then configure $DTS_CFG_FOLDER/pktgen.cfg as following: duration=-1 start_trex=yes - [IXIA] + [IXEXPLORER] ixia_version=6.62 ixia_ip=xxx.xxx.xxx.xxx ixia_ports= @@ -219,10 +219,10 @@ Then configure $DTS_CFG_FOLDER/pktgen.cfg as following: * trex_lib_path: the director where dts can import Trex API * start_trex: whether DTS start TRex server, suggest 'yes' for one-time test, and 'no' for CI integration -* IXIA: section name for IXIA. +* IXEXPLORER: section name for IXEXPLORER. * ixia_version: the version of IxExplorer. * ixia_ip: IP of ixia -* ixia_ports: ixia ports connected to DUT. +* ixia_ports: ixia ports connected to SUT. Here are an example for TRex: @@ -232,7 +232,7 @@ Here are an example for TRex: trex_root_path=/opt/trex/v2.84/ trex_lib_path=/opt/trex/v2.84/automation/trex_control_plane/interactive config_file=/etc/trex_cfg.yaml - server=192.168.1.1 # equal to tester IP, TREX should be installed in tester + server=192.168.1.1 # equal to TG IP, TREX should be installed in TG pcap_file=/opt/trex/v2.84/stl/sample.pacp core_num=16 ip_src=16.0.0.1 @@ -241,11 +241,11 @@ Here are an example for TRex: duration=-1 start_trex=yes -Here are an example for IXIA: +Here are an example for IXEXPLORER: .. code-block:: console - [IXIA] + [IXEXPLORER] ixia_version=9.00 ixia_ip=192.168.2.1 ixia_ports= @@ -289,7 +289,7 @@ DTS supports the following parameters: * ``-s, --skip-setup`` - Skip all possible setup steps done on both DUT and tester. + Skip all possible setup steps done on both SUT and TG. * ``-t TEST_CASES, --test-cases TEST_CASES`` diff --git a/execution.cfg b/execution.cfg index 1507527c..1d4ea865 100644 --- a/execution.cfg +++ b/execution.cfg @@ -1,5 +1,5 @@ [Execution1] -crbs= +sut= #using igb_uio please refer to doc/dts_gsg/support_igb_uio.rst drivername=vfio-pci build_type=meson diff --git a/executions/execution.cfg b/executions/execution.cfg index bc9c7fa3..21ddcd7b 100644 --- a/executions/execution.cfg +++ b/executions/execution.cfg @@ -1,5 +1,5 @@ [Execution1] -crbs= +suts= #using igb_uio please refer to doc/dts_gsg/support_igb_uio.rst drivername= build_type= @@ -35,7 +35,7 @@ targets= parameters=nic_type=cfg:func=true [Execution2] -crbs= +suts= drivername= build_type= test_suites= diff --git a/executions/execution_FVL.cfg b/executions/execution_FVL.cfg index ae10df48..3756048e 100644 --- a/executions/execution_FVL.cfg +++ b/executions/execution_FVL.cfg @@ -1,5 +1,5 @@ [Execution1] -crbs= +suts= #using igb_uio please refer to doc/dts_gsg/support_igb_uio.rst drivername= build_type= @@ -36,7 +36,7 @@ targets= parameters=nic_type=cfg:func=true [Execution2] -crbs= +suts= drivername= build_type= test_suites= diff --git a/executions/execution_fm10k.cfg b/executions/execution_fm10k.cfg index 779d9032..43c74fa7 100644 --- a/executions/execution_fm10k.cfg +++ b/executions/execution_fm10k.cfg @@ -1,5 +1,5 @@ [Execution1] -crbs= +suts= #using igb_uio please refer to doc/dts_gsg/support_igb_uio.rst drivername= build_type= @@ -19,7 +19,7 @@ targets= parameters=nic_type=cfg:func=true [Execution2] -crbs= +suts= drivername= build_type= test_suites= diff --git a/executions/execution_rxmode.cfg b/executions/execution_rxmode.cfg index 041755e2..4957738c 100644 --- a/executions/execution_rxmode.cfg +++ b/executions/execution_rxmode.cfg @@ -1,5 +1,5 @@ [Execution1] -crbs= +suts= #using igb_uio please refer to doc/dts_gsg/support_igb_uio.rst drivername=igb_uio rx_mode=scalar @@ -22,7 +22,7 @@ targets= parameters=nic_type=cfg:func=true [Execution2] -crbs= +suts= drivername=igb_uio rx_mode=full build_type= @@ -44,7 +44,7 @@ targets= parameters=nic_type=cfg:func=true [Execution3] -crbs= +suts= drivername=igb_uio rx_mode=vector build_type= diff --git a/executions/execution_smoke.cfg b/executions/execution_smoke.cfg index c7b5cbb3..c859b202 100644 --- a/executions/execution_smoke.cfg +++ b/executions/execution_smoke.cfg @@ -1,5 +1,5 @@ [Execution1] -crbs= +suts= #using igb_uio please refer to doc/dts_gsg/support_igb_uio.rst drivername= build_type= diff --git a/output/Readme.txt b/output/Readme.txt deleted file mode 100644 index 8d40ec01..00000000 --- a/output/Readme.txt +++ /dev/null @@ -1,2 +0,0 @@ -Output dir for DTF results. - -- 2.17.1