936e9d532839b05f3eb3454f1880fdc3b91fc493
[multicloud/k8s.git] / starlingx / demo / firewall-host-netdevice / charts / pktgen-host-netdevice / 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
38 vppctl -s /run/vpp/cli-vpp1.sock show ver
39 vppctl -s /run/vpp/cli-vpp1.sock show threads
40
41 vppctl -s /run/vpp/cli-vpp1.sock create host-interface name veth11
42
43 vppctl -s /run/vpp/cli-vpp1.sock set int state host-veth11 up
44
45 vppctl -s /run/vpp/cli-vpp1.sock show int
46 vppctl -s /run/vpp/cli-vpp1.sock show hardware
47
48 vppctl -s /run/vpp/cli-vpp1.sock set int ip address host-veth11 10.10.1.2/24
49
50 vppctl -s /run/vpp/cli-vpp1.sock show int addr
51
52 vppctl -s /run/vpp/cli-vpp1.sock ip route add 10.10.2.0/24  via 10.10.1.1
53
54 vppctl -s /run/vpp/cli-vpp1.sock show ip fib
55
56 #vppctl -s /run/vpp/cli-vpp1.sock trace add af-packet-input 10
57
58 echo "provision streams"
59 ### pktgen config
60 vppctl -s /run/vpp/cli-vpp1.sock loop create
61 vppctl -s /run/vpp/cli-vpp1.sock set int ip address loop0 11.22.33.1/24
62 vppctl -s /run/vpp/cli-vpp1.sock set int state loop0 up
63
64 cd /opt
65
66 mkdir /home/root
67 cat <<EOF> /home/root/stream_fw_udp1_loop0
68 packet-generator new {
69           name fw_udp1
70           rate 10
71           node ip4-input
72           size 64-64
73           no-recycle
74       interface loop0
75           data {
76                 UDP: 10.10.1.2 -> 10.10.2.2
77                 UDP: 15320 -> 8080
78                 length 128 checksum 0 incrementing 1
79           }
80         }
81 EOF
82
83 vppctl -s /run/vpp/cli-vpp1.sock  exec /home/root/stream_fw_udp1_loop0
84
85 #vppctl -s /run/vpp/cli-vpp1.sock show packet-generator
86
87 #vppctl -s /run/vpp/cli-vpp1.sock trace add pg-input 10
88
89 vppctl -s /run/vpp/cli-vpp1.sock packet-generator enable
90
91 vppctl -s /run/vpp/cli-vpp1.sock show packet-generator
92
93 vppctl -s /run/vpp/cli-vpp1.sock show int
94
95 #vppctl -s /run/vpp/cli-vpp1.sock packet-generator disable
96
97 #vppctl -s /run/vpp/cli-vpp1.sock packet-generator delete fw_udp1
98
99 echo "done"
100 sleep infinity