2.2. 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.

Note

Uubuntu 20.04 are installed for Tester and DUT, 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.

systemctl disable firewalld.service

2.2.1. SSH Service

Since DPDK Test Suite Tester communicates with DUT via SSH, please install and start sshd service in your Tester and DUT.

apt-get install sshd
systemctl enable ssh

Generally DTS use Linux username and password to login, but it also supports to use authorized login. For create authorized login session, user needs to generate RSA authentication keys to ssh connectioni:

ssh-keygen -t rsa

2.2.2. Python modules

To run DTS, Python3 must be installed, and it uses the following packages:

  • xlwt: it is used to generate spreadsheet files which compatible with MS Excel 97/2000/XP/2003 XLS files。
  • numpy: it provides method to deal with array-processing test results.
  • pexpect: it provides API to automate interactive SSH sessions.
  • docutils:it is a modular system for processing documentation into useful formats, such as HTML, XML, and LaTeX
  • pcapy: it is a Python extension module that interfaces with the libpcap packet capture library. Pcapy enables python scripts to capture packets on the network.
  • xlrd: it is a Python module that extracts data from Excel spreadsheets.
  • threadpool: it is a Python module that maintains a pool of worker threads to perform time consuming operations in parallel.
  • scapy: it is a Python program that enables the user to send, sniff and dissect and forge network packets.

They are recorded in requirements.txt.

[root@tester ~]# cat requirements.txt
 ...
 xlwt==1.3.0
 pexpect==4.7.0
 numpy==1.18.5
 docutils
 pcapy
 xlrd
 scapy==2.4.4
 threadpool

Recommend installing them quickly with following commands:

apt-get install python3-pip
pip3 install -r ../requirements.txt

DTS uses python module scapy to forge or decode packets of a wide number of protocols, send them over the wire, capture them, and analyse the packets. We recommend installing scapy-2.4.4, as some protocol such as PFCP, GTPPDUSessionContainer are supported from this version.

pip3 install scapy  # install default version
pip3 install scapy==2.4.4 # install specific version

Here are some differences between scapy 2.4.4 and scapy 2.4.3 about the packet layer:

Differences between scapy 2.4.3 with scapy 2.4.4
Layer packet in scapy 2.4.3 packet in scapy 2.4.4 Comments
PPP PPP(proto=0xc021) PPP(b’\xc0\x21’) PPP protocol filed length is 1 byte in scapy2.4.4
L2TP L2TP(‘\x00\x00\x00\x11’) L2TP(b’\x00\x00\x00\x11’) L2TP is byte type in scapy2.4.4
PFCP N/A PFCP(S=1, seid=1) PFCP is not supported in scapy2.4.3
GTPPDUSessionContainer N/A GTPPDUSessionContainer(type=0, P=1, QFI=0x34) GTPPDUSessionContainer is not supported in scapy2.4.3

2.2.3. BIOS Setting Prerequisite on x86

For the majority of platforms, no special BIOS settings for Tester and DUT. DPDK prefers devices bound to vfio-pci kernel module, therefore, VT-x and VT-d should be enabled.

Advanced -> Integrated IO Configuration -> Intel(R) VT for Directed I/O <Enabled>
Advanced -> Processor Configuration -> Intel(R) Virtualization Technology <Enabled>

2.2.4. DPDK running Prerequisite

Hugepage support is required for the large memory pool allocation used for packet buffers. DPDK performance will be imporved more with 1G page size than 2M, therefore, recommend to use 1G pages for DPDK. The following options should be passed to Linux Cmdline:

hugepagesz=1G hugepages=16 default_hugepagesz=1G

For more detail information of DPDK requirements, please refer to Data Plane Development Kit Getting Started Guide.

2.2.5. 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.

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:

apt-get install tcl

TRex is an open source software traffic generator fuelled by DPDK. It generates L3-7 traffic and provides in one tool capabilities. DTS requires to install Trex and configure it before lunching DTS.