Fix script for cFW with sriov netdevice
[multicloud/k8s.git] / starlingx / demo / firewall-sriov / charts / pktgen-sriov / resources / scripts / init / vpg_start.sh
1 #!/bin/bash
2
3 apt-get update
4 apt-get install -y sudo curl net-tools iproute2 wget
5
6 curl -s https://packagecloud.io/install/repositories/fdio/release/script.deb.sh | sudo bash
7
8 export VPP_VER=19.01.2-release
9 apt-get install -y vpp=$VPP_VER vpp-lib=$VPP_VER
10
11 apt-get install -y vpp-plugins=$VPP_VER
12
13 if [ -e /run/vpp/cli-vpp1.sock ]; then
14     rm /run/vpp/cli-vpp1.sock
15 fi
16
17 #       root@vpktgen:/# taskset -p --cpu-list 1
18 #       pid 1's current affinity list: 1,2,29
19
20 corelist=`taskset -p -c 1 |cut -d : -f 2 | sed 's/^ *//' | sed 's/ *$//'`
21 #extract master core
22 mastercoreidx=`echo $corelist | cut -d , -f 1`
23 #extract worker cores
24 workercorelist=`echo $corelist | sed -E 's/^[0-9]*,//'`
25
26 echo 'start... vpp'
27 vpp unix {cli-listen /run/vpp/cli-vpp1.sock} api-segment { prefix vpp1 } \
28     cpu { main-core $mastercoreidx  corelist-workers $workercorelist }
29
30 echo 'wait vpp be up ...'
31 while [ ! -e /run/vpp/cli-vpp1.sock ]; do
32     sleep 1;
33 done
34
35 echo 'configure vpp ...'
36
37 ifconfig veth11 0.0.0.0
38 ifconfig veth11 down
39
40 HWADDR1=$(ifconfig veth11 |grep ether | tr -s ' ' | cut -d' ' -f 3)
41
42 vppctl -s /run/vpp/cli-vpp1.sock show ver
43 vppctl -s /run/vpp/cli-vpp1.sock show threads
44
45 vppctl -s /run/vpp/cli-vpp1.sock create host-interface name veth11 hw-addr $HWADDR1
46
47 vppctl -s /run/vpp/cli-vpp1.sock set int state host-veth11 up
48
49 vppctl -s /run/vpp/cli-vpp1.sock show int
50 vppctl -s /run/vpp/cli-vpp1.sock show hardware
51
52 vppctl -s /run/vpp/cli-vpp1.sock set int ip address host-veth11 10.10.1.2/24
53
54 vppctl -s /run/vpp/cli-vpp1.sock show int addr
55
56 vppctl -s /run/vpp/cli-vpp1.sock ip route add 10.10.2.0/24  via 10.10.1.1
57
58 vppctl -s /run/vpp/cli-vpp1.sock show ip fib
59
60 #vppctl -s /run/vpp/cli-vpp1.sock trace add af-packet-input 10
61
62 echo "provision streams"
63 ### pktgen config
64 vppctl -s /run/vpp/cli-vpp1.sock loop create
65 vppctl -s /run/vpp/cli-vpp1.sock set int ip address loop0 11.22.33.1/24
66 vppctl -s /run/vpp/cli-vpp1.sock set int state loop0 up
67
68 cd /opt
69
70 mkdir /home/root
71 cat <<EOF> /home/root/stream_fw_udp1_loop0
72 packet-generator new {
73           name fw_udp1
74           rate 10
75           node ip4-input
76           size 64-64
77           no-recycle
78       interface loop0
79           data {
80                 UDP: 10.10.1.2 -> 10.10.2.2
81                 UDP: 15320 -> 8080
82                 length 128 checksum 0 incrementing 1
83           }
84         }
85 EOF
86
87 vppctl -s /run/vpp/cli-vpp1.sock  exec /home/root/stream_fw_udp1_loop0
88
89 #vppctl -s /run/vpp/cli-vpp1.sock show packet-generator
90
91 #vppctl -s /run/vpp/cli-vpp1.sock trace add pg-input 10
92
93 vppctl -s /run/vpp/cli-vpp1.sock packet-generator enable
94
95 vppctl -s /run/vpp/cli-vpp1.sock show packet-generator
96
97 vppctl -s /run/vpp/cli-vpp1.sock show int
98
99 #vppctl -s /run/vpp/cli-vpp1.sock packet-generator disable
100
101 #vppctl -s /run/vpp/cli-vpp1.sock packet-generator delete fw_udp1
102
103 echo "done"
104 sleep infinity