summaryrefslogtreecommitdiffstats
path: root/VNFs/DPPD-PROX/helper-scripts/openstackrapid/README
blob: 7c22990444526546b8990553dd9aeb61555e698f (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
##
## Copyright (c) 2010-2017 Intel Corporation
##
## Licensed under the Apache License, Version 2.0 (the "License");
## you may not use this file except in compliance with the License.
## You may obtain a copy of the License at
##
##     http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
##

rapid (Rapid Automated Performance Indication for Dataplane)
************************************************************

rapid is a set of files offering an easy way to do a sanity check of the
dataplane performance of an OpenStack environment.

Copy the files in a directory on a machine that can run the OpenStack CLI
commands and that can reach the OpenStack public network. Also create a qcow2
image in the same directory with the following characteristics:
* Name of the qcow2 file should be: rapidVM.qcow2
  This default name can be changed on the rapid command line
* Should have DPDK and PROX installed. PROX should be in /root/prox/ directory
* Image should have cloud-init installed

Source the openrc file of the OpenStack environment so that the OpenStack CLI
commands can be run:
  # source openrc
Now you can run the createrapid.py file. Use help for more info on the usage:
  # ./createrapid.py --help

runrapid.py will use the OpenStack CLI to create the flavor, key-pair, network, image,
stack, ...
It will create a <STACK>.cfg file containing all info that will be used by runrapid.py
to actually run the tests. Logging can be found in the CREATE<STACK>.log file

Now you can run the runrapid.py file. Use help for more info on the usage:
  # ./runrapid.py --help
The script will connect to the 2 VMs that have been instantiated and it will launch
PROX in both VMs.
Once that is done it will connect to the PROX tcp socket and start sending
commands to run the actual test.
It will print test results on the screen while running.
The PROX instance in the Generator VM will generate packets which will arrive in
the PROX instance running on the SUT (System Under Test) VM. The SUT will then
send the packets back to the generator by swapping source and destination.

Notes about prox_user_data.sh script:
- The script contains commands that will be executed using cloud-init at
  startup of the VMs.
- The script also assumes some specific DPDK directory and tools which might
  change over different DPDK release. This release has been tested with DPDK-17.02.

An example of the cfg file generated by createrapid.py can be found below.
Note that this file can be created manually in case the stack is created in a
different way (not using the createrapid.py). This can be useful in case you are
not using OpenStack as a VIM or when using special configurations that cannot be
achieved using createrapid.py. Only the [Generator] and [SUT] section are used as
input for runrapid.py. In the [SUT] section, you can also set admin_ip = 'none'.
In that case, only the generator will be controlled by runrapid.py and you must
start the SUT manually.

[Generator]
admin_ip = 192.168.3.139
dp_ip = 10.10.10.3
hex_dp_ip = 0a 0a 0a 03
dp_mac = fa:16:3e:96:6c:e7

[SUT]
admin_ip = 192.168.3.133
dp_ip = 10.10.10.6
hex_dp_ip = 0a 0a 0a 06
dp_mac = fa:16:3e:0b:9c:57

[OpenStack]
stack = rapidTestEnv
yaml = rapid.yaml
key = prox
flavor = prox_flavor
image = rapidVM
image_file = rapidVM.qcow2
dataplane_network = dataplane-network
subnet = dpdk-subnet
subnet_cidr = 10.10.10.0/24
admin_network = admin_internal_net

[rapid]
loglevel = DEBUG
version = 17.09.03