metadata: format: Lava-Test Test Definition 1.0 name: ovs-odp-server-multinode description: "OVS on top of ODP-DPDK - this runs as part of a multinode setup and tests the performance of odp-ovs. This initial effort covers simple PHY-to-PHY forwarding in a setup with two machines connected back to back trough two network interfaces. The other machine will usually run netmap-pkt-gen-multinode to generate packets and measure the rate of packets forwarded by odp-ovs." maintainer: - ciprian.barbu@linaro.org os: - ubuntu scope: - functional - performance devices: - x86 params: LINUX_HEADERS_DEB: "/linux-headers.deb" ODP_OVS_GIT: "git://git.linaro.org/lng/odp-ovs.git" ODP_OVS_REV: "odp-v0" NIC_PATTERN: "82599" install: deps: - git - binutils - gcc - make - autoconf - libtool - automake - patch - pciutils - python-numpy - libpcap-dev - openssl - libssl-dev - curl - uuid-runtime - bzip2 - lshw git-repos: - url: git://git.linaro.org/lng/check-odp steps: - echo 'RUNNING depmod' - depmod - echo 'CLONING odp-ovs' - git clone $ODP_OVS_GIT odp-ovs - cd odp-ovs - git checkout $ODP_OVS_REV - ifconfig -a - lshw -class network run: steps: - set -x - echo 'COMPILING ODP-DPDK' - cd check-odp - lava-test-case compile-odp-dpdk --shell CLEANUP=0 ./build-dpdk.sh - echo 'COMPILING ODP-OVS' - cd .. - cd odp-ovs - ./boot.sh - lava-test-case configure-odp-ovs --shell ./configure --with-odp=../check-odp/new-build --with-odp-debug=yes --prefix=/usr - lava-test-case make-odp-ovs --shell make -j 4 - make install - cd .. - echo 'CONFIGURE hugetlbfs' - lava-test-case set-1024-hugetlbfs --shell 'echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages' - mkdir -p /mnt/huge - lava-test-case mount-hugetlbfs --shell mount -t hugetlbfs nodev /mnt/huge - sleep 5 - echo 'PREPARE DPDK' - lava-test-case insert-uio --shell modprobe uio - lava-test-case insert-igb-uio --shell insmod check-odp/DPDK/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko - echo 'BIND DPDK NICs' - lava-test-case dpdk-nic-status-before --shell check-odp/DPDK/tools/dpdk_nic_bind.py --status - lava-test-case dpdk-nic-bind --shell ./common/scripts/odp-ovs/ovs-odp-dpdk-nic-bind-$NIC_PATTERN.sh check-odp/DPDK - lava-test-case dpdk-nic-status-after --shell check-odp/DPDK/tools/dpdk_nic_bind.py --status - sleep 5 - echo 'STARTING ODP-OVS' - lava-test-case start-odp-ovs --shell 'ODP_PLATFORM_PARAMS="-n 3 -- -p 3" odp-ovs/debian/openvswitch-switch.init start' - echo 'ENABLING ODP mode' - lava-test-case enable-odp-mode --shell 'ovs-vsctl set Open_vSwitch . other_config:odp=true' - echo 'ADDING bridge' - lava-test-case add-bridge --shell 'ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev' - sleep 3 - echo 'ADDING ports' - lava-test-case add-port0 --shell 'ovs-vsctl add-port br0 odp:0 -- set Interface odp:0 type=odp' - lava-test-case add-port1 --shell 'ovs-vsctl add-port br0 odp:1 -- set Interface odp:1 type=odp' - sleep 3 - echo 'ADDING flows' - lava-test-case show-flows --shell ovs-ofctl show br0 - lava-test-case add-flow1 --shell 'ovs-ofctl add-flow br0 in_port=1,action=output:2' - lava-test-case add-flow2 --shell 'ovs-ofctl add-flow br0 in_port=2,action=output:1' - lava-sync ready - lava-sync l2fwd-done - lava-test-case del-br --shell 'ovs-vsctl del-br br0'