Skip to content

Emulator path for TX:022 RX:002

jcfreeman2 edited this page Mar 20, 2023 · 16 revisions

DPDK based TX/RX

Emulator (TX) on 022

Resources (OFED and DPDK) are under /opt on 021 and 022. We use pktgen to generate a fix-rate flow of UDP JUMBO frames. Start pktgen with the pre-defined configuration via running as root the following script:

[root@np04-srv-022 opt]# pwd
/opt
[root@np04-srv-022 opt]# ./start-pktgen-txsetup.sh

The pre-defined configs are setting the destination MAC and IP addresses of np02-srv-002 already. You should see the pktgen control console GUI. You can modify different parameters of the packet generation.

Modify the rate to 1% of the available bandwidth of the output port:

Pktgen:/> set 0 rate 1

Modify the packet size to the size of a WIB-Ethernet Frame size (7192 Bytes):

Pktgen:/> set 0 size 7192

Start the flow of data on the port:

Pktgen:/> start 0

Receiver (RX) on 002

The host to be used as a frame receiver based on DPDK is: np02-srv-002

Setup a workarea as described on the devarea instructions. You need to build the DUNE-DAQ workarea on np02-srv-002, as we need to build against a specific DPDK version and installation available under /opt on the machine!

Clone dpdklibs into sourcecode:

git clone https://github.com/DUNE-DAQ/dpdklibs.git -b develop

After you setup your development environment, one extra environment setup is needed. One must source this file for DBT to pickup the DPDK installation under /opt:

source /opt/source-me-for-dpdk.sh

Test frame receiver

dpdklibs ships with a C++/DPDK based simple frame receiver. To run it in your DAQ environment:

dpdklibs_test_frame_receiver

It will report the received rates of expected frames with size 7192. Lot of details are hardcoded in this example application. It would be an essential step to improve this tool. (Variable sizes, dump few frames to file, etc.)

-> JCF, Mar-20-2023: with the merging of https://github.com/DUNE-DAQ/dpdklibs/pull/38, improvements have now been made to dpdklibs_test_frame_receiver

Python tools TX/RX tests

There are basic python scripts under dpdklibs/scripts called:

It would be a good idea to have instructions here how to run a basic TX/RX on these hosts.