summaryrefslogtreecommitdiff
path: root/ubuntu/ovs-odp-dpdk-server-multinode.yaml
blob: a5f485107d64188c9922a0902cc5930a1a0dbf43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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'