From patchwork Wed Apr 6 15:11:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Juraj_Linke=C5=A1?= X-Patchwork-Id: 109289 X-Patchwork-Delegate: thomas@monjalon.net 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 6BFB4A0508; Wed, 6 Apr 2022 17:14:10 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E76EF42922; Wed, 6 Apr 2022 17:11:42 +0200 (CEST) Received: from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20]) by mails.dpdk.org (Postfix) with ESMTP id B8000428F9 for ; Wed, 6 Apr 2022 17:11:35 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by lb.pantheon.sk (Postfix) with ESMTP id 240FE16BC0E; Wed, 6 Apr 2022 17:11:35 +0200 (CEST) X-Virus-Scanned: amavisd-new at siecit.sk Received: from lb.pantheon.sk ([127.0.0.1]) by localhost (lb.pantheon.sk [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oQE_Hgsrvn_Z; Wed, 6 Apr 2022 17:11:33 +0200 (CEST) Received: from entguard.lab.pantheon.local (unknown [46.229.239.141]) by lb.pantheon.sk (Postfix) with ESMTP id 667BC19E0DE; Wed, 6 Apr 2022 17:11:17 +0200 (CEST) From: =?utf-8?q?Juraj_Linke=C5=A1?= To: thomas@monjalon.net, david.marchand@redhat.com, Honnappa.Nagarahalli@arm.com, ohilyard@iol.unh.edu, lijuan.tu@intel.com Cc: dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= Subject: [RFC PATCH v1 22/24] dts: merge DTS doc/dts_gsg/usr_guide/sys_reqs.rst to DPDK Date: Wed, 6 Apr 2022 15:11:04 +0000 Message-Id: <20220406151106.2915304-23-juraj.linkes@pantheon.tech> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220406151106.2915304-1-juraj.linkes@pantheon.tech> References: <20220406151106.2915304-1-juraj.linkes@pantheon.tech> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org --- dts/doc/dts_gsg/usr_guide/sys_reqs.rst | 131 +++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 dts/doc/dts_gsg/usr_guide/sys_reqs.rst diff --git a/dts/doc/dts_gsg/usr_guide/sys_reqs.rst b/dts/doc/dts_gsg/usr_guide/sys_reqs.rst new file mode 100644 index 0000000000..b91eef9db5 --- /dev/null +++ b/dts/doc/dts_gsg/usr_guide/sys_reqs.rst @@ -0,0 +1,131 @@ +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. + +.. code-block:: console + + systemctl disable firewalld.service + + +SSH Service +----------- + +Since DPDK Test Suite Tester communicates with DUT via SSH, please install and start sshd service in your Tester and DUT. + +.. code-block:: console + + apt-get install openssh-server # download / install ssh software + service ssh start # start ssh service + +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: + +.. code-block:: console + + ssh-keygen -t rsa + +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`. + +.. code-block:: console + + [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: + +.. code-block:: console + + 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. + +.. code-block:: console + + 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: + +.. table:: 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 | + +------------------------+---------------------------------+-----------------------------------------------+-------------------------------------------------------+ + +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. + +.. code-block:: console + + Advanced -> Integrated IO Configuration -> Intel(R) VT for Directed I/O + Advanced -> Processor Configuration -> Intel(R) Virtualization Technology + +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: + +.. code-block:: console + + hugepagesz=1G hugepages=16 default_hugepagesz=1G + +For more detail information of DPDK requirements, please refer to `Data Plane Development Kit Getting Started Guide `_. + +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`: + +.. code-block:: console + + 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.