metadata: format: Lava-Test Test Definition 1.0 name: netmap-pkt-gen-multinode description: "The netmap-pkt-gen-multinode can be used to measure the performance of a simple l2fwd application in a multinode setup. A typical setup is two machines connected back to back through a pair of interfaces (usually intel server DPDK dual NICs like the 82599 dual port 10GB interface) where the l2fwd runs on one machine and netmap runs on the other. The test launches a pkt-gen instance to send packets on one interface and another one to receive packets and count them on the other interface." maintainer: - ciprian.barbu@linaro.org os: - ubuntu scope: - functional - performance devices: - x86 params: LINUX_SRC: "/usr/src/linux-source" NIC_PATTERN: "82599" TEST_TIME: "360" install: deps: - git - binutils - gcc - make - patch - pciutils - python-numpy - lshw git-repos: - url: http://code.google.com/p/netmap/ destination: netmap branch: master steps: - echo 'RUNNING depmod' - depmod - ifconfig -a - lshw -class network - echo 'BUILDING netmap' - cd netmap/LINUX - ./configure --kernel-dir=/lib/modules/`uname -r`/build --kernel-sources=$LINUX_SRC - make - echo 'BUILDING pkt-gen' - make -C ../examples pkt-gen - echo 'INSERTING modules' - rmmod ixgbe || true - insmod netmap.ko - modprobe mdio - lsmod | grep ixgbe && rmmod ixgbe || true - insmod ixgbe/ixgbe.ko - cd ../../ - echo 'BRINGING UP interfaces' - common/scripts/netmap-pkt-gen/find_nics.sh $NIC_PATTERN - export IF_0=$(cat ifs | sed -n 1p) - export IF_1=$(cat ifs | sed -n 2p) - echo "IF_0=$IF_0 IF_1=$IF_1" - ifconfig $IF_0 up promisc - ifconfig $IF_1 up promisc - ifconfig -a - lshw -class network run: steps: - set -x - lava-sync ready - export IF_0=$(cat ifs | sed -n 1p) - export IF_1=$(cat ifs | sed -n 2p) - echo 'RUNNING netmap for 360 seconds' - lava-test-case start-pkt-gen --shell common/scripts/netmap-pkt-gen/start-pkt-gen.sh "$IF_0" pkt-gen-tx "$IF_1" pkt-gen-rx - pgrep pkt-gen - sleep $TEST_TIME - echo 'KILLING pkt-gen' - kill -9 $(ps -ef | grep pkt-gen | grep rx | awk '{print $2}') - kill -9 $(ps -ef | grep pkt-gen | grep tx | awk '{print $2}') - cat pkt-gen-tx - cat pkt-gen-rx - lava-sync l2fwd-done - echo 'PARSING results' - lava-test-case parse-tx-rx --shell common/scripts/netmap-pkt-gen/parse-tx-rx.sh pkt-gen-tx tx_thr pkt-gen-rx rx_thr - ./common/scripts/min_max_avg_parse.py tx_thr "tx_throughput:" "pps" - ./common/scripts/min_max_avg_parse.py rx_thr "rx_throughput:" "pps" parse: pattern: '^(?P(rx|tx)_thr.*):\s*(?P[0-9.]+)\s+(?P\w+)\s+(?P\w+)'