summaryrefslogtreecommitdiffstats
path: root/VNFs/DPPD-PROX/helper-scripts/rapid
AgeCommit message (Collapse)AuthorFilesLines
2020-07-05Adding vdev support and vfioLuc Provoost30-112/+179
Using vfio in stead of igb_uio. DPDK 2020.5 is NOT compiling the igb_uio driver by default any more. For the l3 mode, we are now using the new PROX vdev feature. This is achieved by adding the vdev parameter in the port section of the PROX config files. One of the advantages is that we can now ping a port managed by PROX: the requests will be forwarded by PROX to the LINUX stack, who will reply to the ping. A tap device is being created by PROX to support this feature. Installing old version of nasm since latest causes some issues. If not pushgateway is being used, it should be commented out in the config_file. vfio is now loaded by specifying the module in /etc/modules-load.d There is also an after_boot.sh script that will be run by check_prox_system_setup.sh, which can be used for further configuration of the instance after boot. There is now also a file created /opt/rapid/system_ready_for_rapid by the check_prox_system_setup.sh script. This file is created once all configuration is done. The runrapid.py script will wait till this file is created before executing any tests. Change-Id: Ic5c41af82642066af42134c3323297f5a06f6f72 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-06-05Clean up for the test podsYury Kylulin2-10/+31
Option for Kubernetes environment clean up (createrapidk8s.py -c) from the test pods added. Signed-off-by: Yury Kylulin <yury.kylulin@intel.com> Change-Id: I1c6c7090462b55fbadd1d8f1a277470a6eeb2dee
2020-06-03Fix for containers to use /opt/rapidYury Kylulin5-10/+12
Fix scripts and build procedure to use /opt/rapid as a main directory for binaries and config files. Signed-off-by: Yury Kylulin <yury.kylulin@intel.com> Change-Id: Icb38c37a85a78a6f2de2e751df5fafd624b4f1b3
2020-06-02Using /opt/rapid to run proxLuc Provoost4-12/+17
All config files are now copied into /opt/rapid. We are not using the home directory any more. The prox executable is now also copied into the same /opt/rapid. Change-Id: I838636167f370bf8a855a3cfb0796c659e27a3ad Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-05-29Fixing some more copyright datesLuc Provoost14-13/+30
New files created in 2020 have now the right date in the copyright notice. Change-Id: I8eb244beec3d793e819cce1f63c39671f18286a1 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-05-29Fix for container .env file and small updatesLuc Provoost17-104/+69
Since runrapid.py is now supporting more than 1 dataplane interface, we need to use a port index in the rapid.env file for the dataplane ports. In k8sdeployment.py, we only support 1 dataplane port, but we are writing dp_ip1 and dp_mac1 in the environment file. The copyright dates are also updated. Some references to VM have also been changed to instance. Change-Id: Ie1d036c13ef5d6f0aa1f35aa068a9760a1cfc2a9 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-05-28IPV6 testing & minor changes and fixesLuc Provoost20-92/+362
IPV6 test has been added. The generator will now generate IPV6 packets using NDP to resolve MAC addresses. The hex IP addresses in the inline definition of the packets in the cfg files is now calculated by a lua function called in parameters.lua. The hard-coded path /home/centos has been replaced by ~. An error in the speed calculations has been fixed. See the RapidTest class for details. The actual number of generated flows is now reported. If the requested number of flows is not a power of 2, the lowest power of 2 that is larger than the requested number of flows will be used and reported. Change-Id: I36b8d345b4a03c2cf358c19ec353ca8ad2831293 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-05-15Support for imix packet sizesLuc Provoost18-41/+69
All packet size in the *.test files have been replaces with imix sizes. imix is now a list of packet sizes. If you want to run with only a pakcet size of 64, you need to specify a list containing only 1 size: [64]. You can also specify multiple imix values by specifying a list of list of sizes. The keyworkds in the test files are now imix & imixs. Change-Id: Iea47c0266b022133b7bbfc9a6811e3199ae41521 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-05-15createrapid.py is now using heat templates yamlLuc Provoost17-465/+523
yaml files have been added to the repo as an example. Please check the README explaining the output section reqs for this yaml file. There is also a new file (config_file): it also specifies which yaml files to use. multiple dataplane interfaces per VM can now be specified and will appear in the <STACK>.env file. An error in setting the packet size has been fixed (see set_udp_packet_size for packet size setting details) Change-Id: Ie89a4940521dac7dd3652acca477739abb9f5497 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-05-15Code rewrite and Python3 supportLuc Provoost35-1415/+1860
The code has been rewritten in multiple classes and files for better readability and maintainability. You should now also use Python3 to run the scripts. Some of the variables in the config files have moved to other sections. The pushgateway parameter moved to the [varia] section of the rapid environment file. Change-Id: Ic61a1bc3baa39447d42b21dfcc0f16c28fcdfa6e Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-03-23Improved variable init and bug fixesLuc Provoost1-62/+41
Variables were initiales based on the file name of the PROX configuration files. These decisions are now based on the content of these files and other variables, rather than just the name of a file. This commit also fixes some bugs: irq test was not executing any more, some issues with the push gateway reporting. Change-Id: I39308effad3c80cf52d96e4d85d92d4b5f0be9a5 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-01-31Add support for kubernetes deployment in rapid scripts.Yury Kylulin26-95/+1251
In case of kubernetes based deployments procedure for test environment creation is different. Please refer to README.k8s file for more details. Dockerfile and dockerimage.sh files can be used to create a docker image with prox. There is separate createrapidk8s.py script which is used to create appropriate number of PODs for testing based on the rapid.pods configuration. port_info is a helper application to identify port MAC address. Change-Id: I73611f066ac54260aa11dd17c173379df06f46a5 Signed-off-by: Yury Kylulin <yury.kylulin@intel.com> Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
2020-01-31New PROX commit ID and bug fixLuc Provoost2-2/+2
Updated deploycentos.sh with latest PROX commit ID and took another code review comment into account. Change-Id: Iedfa695be7496459d990f36e2dc00c8890b19fb3 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-01-29code review comments and PROX commit IDLuc Provoost2-28/+15
Implemented the code review comments I got on previous commits and using commit ID 2cd03b7 to select the PROX version that will be installed in the VMs through deploycentostools.sh Change-Id: Ifc4c18c657a8bd57c68a7fc9d885c75ffdcb7b5d Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-01-27Code review feedback & back-ground traffic supportLuc Provoost1-117/+162
Various code review comments taken into account. We also support now background traffic, meaning the scripts will start a test between machines and monitor packet loss, latency, etc., but at the same time, the script will also start traffic on background machines. That traffic will not be monitored. Each generator will generate the same ammoung of traffic. Change-Id: I5cd495be230a526f91de965f3d4dd0581681f5ca Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-01-23Fix run_iteration when not using the sut_sockLuc Provoost4-9/+33
When no sut_sock monitoring the swap, the while loop would never come to an end. Also added heartbeat timeout in the generator config files. Change-Id: I3c36991c65b9b826faf3d051a1354ca7eb34c24e Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-01-17Specify latency bucket size & correct calculationLuc Provoost4-20/+61
A new parameter bucket_size_exp in the *.test file specifies the bucket size for latency measurement. The default is 11 which corresponds to a bucket size of 1 usec for a 2GHz processor. This fix is also calculating the bucket size based on the reported frequency. Before it was assuming a 2GHz processor. Change-Id: I70d15e90e151a7e474cd05c9ac91b71a11fd5c78 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-01-13Initial support for percentile latency measurementsLuc Provoost3-38/+130
We are now reporting a percentile number for the round-trip latency. The numbers are only correct for processors running at 2GHz. Will fix this next so it runs for any freqency. We only report 1-127 usec. If the latency goes higher, we are now reporting "VERY HIGH". Change-Id: If9fda63cea8616febcc0f24dc52590976cf39f3d Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-01-08Combine code for fixed rate and variable rate testsLuc Provoost2-241/+251
Previously, there were 2 functions: run_flow_size_test and run_fixed_rate. The functionality of run_fixed_rate is now added to run_flow_size_test. Change-Id: Ifda70b8088b9131cc6c034d8007825e6d0917682 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2019-12-31Better Latency accuray warning messageLuc Provoost1-9/+9
The lacency accuracy warning is now given only taking into account packets that were not dropped. Also fixed an error with the value of r in the run_iteration function Change-Id: Ic05fd2e4b8c59a4b7bcc131e981c08e0001436a6 Signed-off-by: Luc Provoos <luc.provoost@intel.com>
2019-12-30Support for ETSI GS NFV-TST 009Luc Provoost3-101/+249
New test added TST009_Throughput.test allowing to run the throughput benchmark as defined in ETSI GS NFV-TST 009. This change adds the binary search algorithm as defined in the specification document. Change-Id: I00e81a811a9c42b06136694fc1387bc59e954a28 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2019-12-02Remove UUIDs in centos.jsonLuc Provoost2-13/+12
Removed the remaining UUIDs from the centos.json file, making it easier to reuse this file. This does require a recent version of the packer tool. Updated the README accordingly and also added the --env option in the packer alias, so that the OS_CLOUD variable is set when running packer in the container. Updated rapid.vms with the security group name used in the centos.json file. Change-Id: I4f6815a3250811e336c14857e0ec5e7793a77acf Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2019-12-02Fix mempool size for swap.cfgLuc Provoost2-2/+2
Fixing an error re-introduced in the swap.cfg file. The mempool size needs to be bigger than the number of rx and tx descriptors (we need some extra buffers in the mempool for other things than rx and tx descriptors). The default number of tx and rx descriptors has been changed in PROX to 2K. This initially went through the testing since this is just giving a warning in the prox.log file for some PMDs. For other PMDs, PROX will not start. Also fixed an inconsistency in rapid.vms: name of the security group. Change-Id: If95677bd6169a16da1b3b2a56d13936a854c385e Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2019-11-26rapid november release combining changesLuc Provoost23-316/+473
-Renamed monitorswap.test into corestats.test. This is a more generic test case that can monitor the core statistics of all PROX instances -New portstats.test which can monitor the port statistics of all PROX instances -Removed the tasks parameter in the [DEFAULT] section of the *.test files. Runrapid.py is now scaning the PROX configuration files to automatically detect the PROX tasks that are being used. -There is now an option to add the PushGateway parameter in the [Default] section of some *.test files. This will push the measurements to the Gateway, so they can be used by tools like Grafana. The logging of the data in a csv file has also been improved. Results can now be found on the screen, in the RUN*.log files, in the *.csv files and are being pushed to the PushGateway. -In the *.test files, replaced the swapcores, irqcores and impaircores by the cores parameter since they are not treated differently by the code. For a generator, we are still using the gencores and latcores parameters since we need to treat them differently in runrapid.py -devbind.sh is removed from the repository since this file is now created by runrapid.py -renamed the rapidVMs.vms file into rapid.vms -image is now built without ssh access for root. Only using centos user. runrapid.py is now using centos user for ssh sessions. PROX tools are strted using sudo -using new DPDK, mb_lib and PROX versions as defined in deploycentostools.sh -installing missing yum-utils package in image -added flowsize parameter to the impairtest -added list of flowsizes to the fixed_rate testing (l3framerate.test) -the irqtest can now loop through multiple Test Machines in stead of only checking the irq of one. Note that we should have the same cores parameter for all Test machines -changes in prox_ctrl.py to support setting the speed of a generator on a combination of mulitple cores and tasks. Also added the multi_port_stats function to support the new portstats.test -Updated version to 19.11.21 -Fixed some power of 2 in the flow table Change-Id: Ia14543bf3195a2b1bd4184b455da6940f1777fc9 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2019-11-25Update RAPID readme about packer detailsIllia Polliul2-8/+34
Change-Id: Ieff72073fff06818a5c5bc8fb9116461c95c2901 Signed-off-by: Illia Polliul <ipolliul@juniper.net>
2019-10-13Increase the default number of rx and tx descriptors to 2KXavier Simonart1-1/+1
A high number of RX descriptor can be helpful in avoiding packet loss due to the core being interrupted. This commit increases the default number of descriptors from 256 to 2K. Those values are checked versus the minimum and maximum supported by the pmd. Number of mbufs (mempool size) have been updated n config files to support this default number of dsescriptors. The number of descriptors can still be overwritten by the config file. However those values must always remain within the limits reported by the pmd. Change-Id: I5f7999eca886dad68f3c0733da0d796bf4c06a56 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2019-07-05Some fixes after code reviewLuc Provoost25-91/+92
Taking into account comments from Patrice and Xavier Change-Id: Ifdabd1945e074c9ee97b059956f107901392c020 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2019-07-01Cosmetic change when printing warningsProvoost1-1/+3
Warnings can be printed in the following cases: - When not enough packets are taken into account for measuring packet latency accuracy. - When there us a potential network throughput issue, meaning the generator is generating more packets than the the NIC can handle - When the generator cannot generate the requested load If there are no warnings for a certain measurement, nothing gets printed, suppressing an empty line Change-Id: Iee07c12142e28dcc0ac406bfed7626731ab08f98 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2019-06-30Multiple changes for June releaseLuc Provoost25-713/+861
- Change inittest in warmuptest. This has now a warmuptime, warmupspeed, packet size and flow size. - Change in centos.json. This will now also copy deploycentostools.sh during image building so that it can be used to re-compile prox in the VM by typing "./deploycentostools.sh compile" - runrapid.py parameters needing a file name, need to be complete file names: no extensions will be added any more by the scripts. - Changes in createrapid.py to handel the openstack CLI output in a simpler way. - The management interface of the VMs can now also be an SRIOV interface. We have now an extra optional parameter in the VM sections of the rapiVMs.vms file: SRIOV_mgmt_port - Changed the name of some sections and keys in the environment file since runrapid.py will not always communicate to OpenStack VMs. This could be containers or any other (virtual) machine. - The previous MachineMap.cfg has been renamed to machine.map - A new test has been added: monitorswap is just showing the statistics of a swap (virtual) machine, without generating any packets. This is useful in situations where an external tester is used. - Latency and core statistics can now be measured even if there are multiple PROX cores and tasks running. A new parameter has been added in the test files with following default value: tasks=[0]. During the collection of statistics, all tasks in this list will be queried. It is ok to have a non-existing task in such a query since it will be ignored. - A --screenlog parameter was added for runrapid.py allowing for more detailed output on the screen during debugging. No need to check the log file. - Previous tests to run multiple packet size with a given flow size and to run multiple flow size, with a given packet size are now combined by specifiying 2 lists: packetsizes & flows - The screen output of this test has also been reworked with more meaningful column names and the test result is now in the field "core received". This allows also for faster termination of the test: When the all packets sent by Gen NIC are received by the cores within the thresholds for packet loss and latency, the test is now stopped, even we were requesting more packets to be sent. Change-Id: I3307e7a972f2140e739f376f146fe875df0303e6 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2019-06-28Change of openstackrapid directory nameLuc Provoost27-0/+2954
The scripts are orrignally written to support an OpenStack deployment. We are now making changes to support container environments, hence renaming the directory to rapid. Change-Id: Icaa2fad83c6da451eee733934151e98e9cd07de4 Signed-off-by: Luc Provoost <luc.provoost@intel.com>