summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2021-04-12Code improvementsLuc Provoost5-280/+268
Rework of some of the code for better readability Change-Id: I559e88faba31d93e593d39cf436f3e114ba4528a Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-04-08cgnat test case addedLuc Provoost6-20/+346
A cgnat test can now be executed. This test needs 3 PROX instances. The first one, the generator needs to have an interface on the private dataplane network. The second instance, the cgnat needs to have it's first dataplane interface on the private network, while the second data plane needs to be on the public network. The third instance will be playing the role of internet server that the generator is connecting to. It will have one dataplane interface on the public network. This third instance will increase the packet size of the received packets by padding it with zeros and it will send the packets back to the cgnat mutliple times. How many times is defined by a multiplier in the cgnat.cfg file. In that cgnat file, we also define a range of IP addresses that will be used for the dynamic source IP NAT-ing. Make sure that the ports are allowed to accept other IP addresses than their own (e.g. allowed address pairs) and that the range of IP addresses is not overlapping with other machines in the public network. Change-Id: Ibc1c8513ac4e8a304378814fceb28c090dff895f Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-04-07Log ssh & scp related issues also on screenLuc Provoost1-10/+3
When scripts are doing an ssh or scp to the PROX instances, errors were sometimes hidden. E.g. when we try to upload a config file to the PROX instance that is already existing but owned by another user, we would not see the error on the screen. Note this will only happen if you build your own image. In case you use the pre-canned PROX images, this should not cause issues. Change-Id: I94176b737cd548c93afc71450a85910d7eca2b0c Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-04-06Avoid seg fault in rte_hash_lookup_bulkLuc Provoost1-78/+83
In case we receive a NON-IPv4 packet, we discard the packet. However, this made the rte_hash_lookup_bulk crash. Hence the keys parameter has changed to avoid the crash. Change-Id: I093688a0b59d44667a42147fd67fbc7901d6dba4 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-04-06Fix username for committer rightsLuc Provoost1-1/+1
Change-Id: Ie2532fdb6339dc447ae122136088d6a1ca2c80f2 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-03-31Fix ref counter bugLuc Provoost1-1/+1
Fixed the error in the calculation of the rte_pktmbuf_refcnt_update parameter Change-Id: I858d9e0b8cf158f9c24807197df34f69217a1b1c Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-03-29Minor update to fix compilation issues on recent gcc and dpdkXavier Simonart10-17/+17
Fixes compilation issues seen on gcc 9.3.0 on dpdk 20.05. Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: Ib7989c1bac66e82551165ab49e06941ebc772347
2021-03-25Do not request IPV6 routing infoLuc Provoost1-5/+5
PROX is not yet dealing with IPV6 routing info (only IPV4). Hence we got a segmentation fault when receiving such information. In a previous commit, we are checking for IPV4 routing info and we do not continue processing of any other routing information. With this fix, we ask the Linux OS NOT to provide IPV6 routing info. The checks when receiving routing information have changed so that we only treat IPV4 and nothing else. Change-Id: I428a036c31014377c8de08da17e51740be0e1de5 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-03-22Ignoring IPV6 routing messagesLuc Provoost1-0/+4
The code was only written to deal with IPV4 routing messages. If we receive an IPV6 routing message, we are now ignoring that message. Change-Id: I0f8044a0331235639bf5cab9abb9c8ce55c3522d Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-03-16build-image.sh is now taking parameters: -i -gLuc Provoost1-28/+29
The -i option is now specifying the appendix for the the image name. The name of the image will be rapid-<appendix>.qcow2. The -i option could then be used to specify 'latest' or 'stable'. The -g option specifies the google storage url where the qcow2 will be stored. The -v option is still existing in case we want to only verify the qcow2 image creation process. An example: buils-image.sh -g artifacts.opnfv.org/samplevnf/images -i latest -v Change-Id: Ie07a89eff029f4e9fd3e1f2ebff1eaea05c580a6 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-03-15Fix the tuned optimizationsLuc Provoost11-36/+62
tuned-adm is now run through check_prox_system_setup.sh at the first system startup/reboot. This will result in the correct grub cmdline parameters. We are also coying the default rapid_rsa_key in the authorized_keys of the rapid user, which is now the default user to run the tests. Fixed also an issue in handle_mirror.c: using now ETYPE_IPv4. Changed deploycentostools.sh to reflect the changes done when building the image with disk-image-create. Change-Id: I5933d21faef9fe02b56c01d0b96e2c143cc5476d Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-03-10Remove useless site.retry from treeCédric Ollivier1-1/+0
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> Change-Id: Id2a3fc69d097024cff608103ba7310388a273976
2021-02-25Preparation for packet mis-ordering statsLuc Provoost6-24/+34
Changed PROX and the python scripts so that the "lat all stats" command also returns the mis_ordered, extent and duplicate statistics. In order to make this work properly, we need now to also stop and restart the latency cores, every time we stop and start the generator cores, since the sequence numbers are reinitialised every time we start the generator core. Change-Id: Ic4212a989c8ee9d0f026a34ca63a08b982c32b71 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-02-25change committer email addressLuc Provoost2-4/+4
Changed to Xavier's new email address Change-Id: I3b5a0e00c41abcbca405dbea33a87c56688a5289 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-02-25Fix mbuf corruption when handling icmp messages.Xavier Simonart1-1/+1
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I3eeacb550d1ef51a13802d06f06973437afe7d9b
2021-02-19Merge "Bypass the dep management issues in lfdocs-conf"Luc Provoost0-0/+0
2021-02-19qcow2 image file name to include GIT_BRANCHLuc Provoost1-30/+20
The qcow2 file name is now constructed as a combination of rapid-${GIT_BRANCH##*}.qcow2 The image is built and copied every time the job is triggered. In this way we will overwrite rapid-latest.qcow2. Change-Id: I9f9c255dc5207a7595aa9e49ae57bd50b42c4d3b Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-02-18Using disk image builder to create rapid VMLuc Provoost14-0/+369
All files are now availavle to build a qcow2 image using disk image builder. This image is based on centos 7. DPDK and PROX are installed together with some optimizations. Change-Id: I61aa91206ea7f8b3b6a3ff7d490d1804e7e784c8 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-02-17Bypass the dep management issues in lfdocs-confCédric Ollivier1-0/+2
It can only work for python3. Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> Change-Id: Ie7b2706f9d4dbfbb2cdca85c0543894c79634246
2021-02-11Add support for native Kubernetes CPU Manager0.0.1Yury Kylulin33-21/+132
For Kubernetes environment core ids in the config and test files are relative and automatically remapped to the allowed cores allocated for container. There is no change to the baremetal or VM environment. Signed-off-by: Yury Kylulin <yury.kylulin@intel.com> Change-Id: I63e499723e8213de1b05d4175eb3eddc4492ccf5
2021-02-10Improve prefetching in handle_mirrorLuc Provoost1-3/+3
Some of the prefetching code was commented out, which was wrong. The prefetching is back in. Change-Id: Id7e7f09bd62faa7b9faf3d677962a99ba2a71080 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-02-10Expand mirror functionalityLuc Provoost3-24/+67
In order to deal with non-symmetrical load, the mirror function can now change the packet size of each packet it receives. It can also send the incoming packet multiple times on each of the tx ports. To support this feature, 2 new parameters in the cfg file have been added for the mirror mode: - multiplier: specifies how many times a packet needs to be sent on each tx port. Default is 1. - mirror_size: the size of the packets that need to be sent. This will just change (increase) the packet size of each incoming packet. If not specified or invalid value (e.g. <64), the size will not be changed. The packet size will only be changed for IPv4 UDP and IPv4 TCP. Note that these parameters have no effect on the mirror copy submode. Change-Id: Ic46b52abdd80ed51cffee667bd04ade9ec23ff6d Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-02-01Fix the default test fileLuc Provoost1-1/+1
In a previous change, all test files were moved to the tests subdirectory. When not specifying the test file on the command line as a parameter, the default test file is used, as specified in rapid_defaults.py It did not reflect the fact that all test files were moved to this directory. Change-Id: I5c77b75dbdde040d0e30dda2b97e981dff572f2f Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-01-29Add rapid script sources in the imageYury Kylulin2-17/+22
Make image more universal and add rapid scripts for mgmt from the container. Signed-off-by: Yury Kylulin <yury.kylulin@intel.com> Change-Id: Ia46a8e147f978dd64bfe6c7b44f7dff92e241855
2021-01-27creation of tests and configs subdirectoriesLuc Provoost40-58/+136
All test files are now in the tests directory. All PROX config files moved to the configs directory. When specifying a test on the runrapid.py command line, you should now also mention the directory: e.g. --test tests/basicrapid.test In these test files, you need now to also include the configs subdirectory when specifying the prox configuration that needs to be used. The --map parameter has also changed. It can still take the file name of the map file, that specifies which PROX instance to use during a test. On top of that, you can now also specify a list of indices of the machines to be used during a test: e.g. --map [1,3]. Change-Id: I887cba59834dd8c903a22bc80959b10da2775398 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-01-27Add default SSH keysYury Kylulin2-0/+50
Adding default RSA keys for SSH access. Signed-off-by: Yury Kylulin <yury.kylulin@intel.com> Change-Id: Id9552717591a805562f3ed2f840251bd9f6a71c1
2020-12-28Improved PROX cleanup when exitingLuc Provoost23-167/+232
Sending now a 'quit' command to PROX, so that the thread running PROX in an ssh session is now cleaned up correctly. Also fixed a problem with the logging when running the code more than once. We only create handlers now, when they do not yet exist. Updated the rapid version. Also added some more tests in the testcases.yaml for xtesting. At the end of a run, the PROX.log files are copied in the results directory. The success criterium for a test 'pass_threshold' has been removed from the test files and is to be controlled by the xtesting testcases.yaml file. Change-Id: Ifbbb1c91f32c9176f52025d9ae4c495b432a94c9 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-12-10Fix for new config file structureYury Kylulin3-1/+21
Fix subnet configuration for the dataplane interface. Signed-off-by: Yury Kylulin <yury.kylulin@intel.com> Change-Id: I612113a86a960284303915d5d003bf67a1b48a72
2020-12-10Moving to python 3 for kubernetes scriptsYury Kylulin4-13/+11
Move to python version 3 in all scripts for kubernetes environment. Streamline file names to match existing libraries. Signed-off-by: Yury Kylulin <yury.kylulin@intel.com> Change-Id: Id875f4240a87ab600b445cb9a7fd97ec1335f88a
2020-12-08Reporting test details for all testsopnfv-10.0.0stable/jermaLuc Provoost8-60/+44
Test details were only implemented in rapid_flowsizetest.py. When executing other tests, an error occured. That is now fixed, although in some cases, None is returned. The format.yaml files defines now alsowhat will be reported in the Xtesting details. Change-Id: I5feae62dcf228664b24451d3fc5dfaaadf7edb5e Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-12-03Final documentation update for Jerma releaseLuc Provoost5-45/+50
Final changes to the documentation Change-Id: Ibefd33feb15efb692b445dd6a025ec3854d2ed5a Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-12-02More documentation updatesLuc Provoost3-2/+217
Added 04-running_the_test.rst describing how to change the default test. This section is describing the parameters the parameters you can use and how to change the Dockerfile and the testcases.yaml file. Change-Id: Ieaa173ebc61dd320659ca6be3d2ce31684298d42 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-11-30Additional documentation fixesLuc Provoost2-48/+0
Fixed some errors causing an invalid rst format. Change-Id: Ide739a48abbd32b5c88b017a74ad7afc406c2c34 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-11-30SampleVNF Jerma documentation updateLuc Provoost2-2/+61
Some more documentation updates for the Jerma release. Change-Id: I0626ae2ac18dd858f6d1e5fa341371aca6ec639d Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-11-23Jerma documentation rewriteLuc Provoost6-306/+190
First step in a rewrite of the sampleVNF documentation whcih is now focused on the TST009 testing using PROX and rapid. Change-Id: Id95cd44831ae7db518ccdf1d8da55890197d2fcb Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-11-19Changing the committers for the sampleVNF projectLuc Provoost2-29/+27
Per TSC decision as documented in https://wiki.opnfv.org/display/meetings/OPNFV+TSC+Meeting+2020-09-29, changing the INFO file with committer info for sampleVNF project. The project is now focusing only on the rapid-PROX based dataplane benchmarking using TST009 spec. Change-Id: I61a6f69b84af9e1e30e071771a1d2e36b833cf84 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-11-18Support for xtestingLuc Provoost12-15/+197
Some files were added to for rapid testing in the xtesting framework Change-Id: Id912789c5007ca8390a67fb5b359296089aa9618 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-11-13Fix for latency reporting and log file handlerLuc Provoost3-5/+5
The latency histogram dat did not contain samples collected during the first measurement of each step. The maximum latency did take the first step into account. As a result, you might see a test run with a maximum latency not showing up in the latency histogram data. This has been fixed by also including the data from the first measurement in the histogram data. In some cases, we also reported the wrong speed from the last unsuccessful step. This is now fixed and we do report the speed from the last successful step. In rapid_log.py, a fix was added to execute the rollover on the file handler of the log file in all cases. In some cases, the file handler with index 0 was not the file handler of the log file. Change-Id: I6c2b16c21dd0ee17d1d14e46c4c544e185324256 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-11-10Fix potential crash in parsing unusual commandsXavier Simonart1-2/+2
'reset values all' and 'reset randoms all' commands were potentially causing some crash. This has been fixed. Change-Id: Idc2c4f7c90db73e7fdf9e8ef76b00ba956a0d854 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2020-11-05Fix setting imx pkt sizes through config filesXavier Simonart1-1/+9
Change-Id: I0e5098747cc496da8632e8d6f779e418da03dc4a Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2020-10-19Documentation for Jerma releaseLuc Provoost4-361/+49
JIRA: SAMPLEVNF-161 Adding Release notes and pointers to the documentation in the wiki Change-Id: Ifce28b844ae336b5a54479b614b3959193acc42d Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-10-19Support dataplane subnet mask & latency histogramLuc Provoost16-36/+76
There is a new parameter in the config_file: dataplane_subnet_mask. This parameter is added to the dataplane IP addresses and is needed by the Linux stack to deal with some protocols (e.g. ARP). If not present, the default value of 24 will be used. In the end, this will make sure that IP addresses in the rapid.env file will have this mask, e.g. /24 If you use other tools than createrapid.py to create the rapid.env file, make sure to add the mask. This commit also introduces a change when exiting: we only copy the prox.log files from the different prox instances in case we expect a new prox.log file to be created in these instances. When using a valid format.yaml file, the tool will now also send the latency distribution data (histogram) to the URL. The tool is now also checking the value of bucket_size_exp: it needs to be 11 or more. Change-Id: I633cdc64ef687fdb6625be1e7482a5a371f83e93 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-10-16Report failure when tap port is not mapped to real dpdk port.Xavier Simonart4-6/+20
When using "vdev=" in port section, a tap device and an additional dpdk port are created. In most cases, we still want to use a real DPDK device (i.e. bound to an interface such as virtio or a PF or a VF). PROX will now report by default an error when the used [port] is not a DPDK bound device. An additional parameter "virtual=yes" can be added in the port section in case one want to disable this error checking (e.g. specify additional parameter for the vdev device). This patch also fixes a potential endianess issue when configuring IP addresses. Change-Id: Iffdd9552308be3b77cfe2067630647acac2c01fe Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2020-09-29New PROX version, background traffic reportingLuc Provoost18-86/+89
deploycentostools.sh is now installing a recent PROX version. When using background traffic, the tool is also reporting the total traffic that was handled by the NFVi stack, including foreground & background traffic. The use of the prox_socket and prox_launch_exit was also broken in a previous release and is now fixed. When setting prox_socket to false for a PROX instance, we will not create a socket connection to control that PROX instance. Setting this option to false is not meaningful for the generator PROX instances since we would not be able to control the behavior of the PROX generator during the test. You could use the generator against another non-PROX instance and then set prox_socket to false for that non-PROX instance. Default is true. prox_launch_exit is used to start and stop the PROX program inside the instance. Default is true. This is useful in case you want to start PROX manually to be able to inspect the PROX UI, but at the same time, let the rapid scripts control the testing. Change-Id: Ib5aa809f4be201859542769f5f55f4989dad97ef Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2020-09-21Add git version.Xavier Simonart2-1/+12
git version is now printed in prox.log file. - git_version.c is always recompiled - If source have been locally changed, the build is shown as dirty - If git is not available on the build system, a message such as 'make: git: Command not found' will be printed, but the build will succeed. Change-Id: If551832c6079f5e3bd04cd4d8ac5f8204e6be8cd Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2020-09-21Added support for multiple vlans in ipv4 vdev modeXavier Simonart13-82/+184
When the following conditions are met: - ipv4 - vdev enabled Then multiple vlans are supported. Multiple vlans can be configured using the vlan_tag option within the port section of the config file. Multiple (different) local_ipv4/prefix must then also be configured within the same section. Note that for ipv6 multiple vlans are not supported (yet) Also, when vdev is not enabled, multiple vlans are also not (yet) supported. Change-Id: I38b6cd98ff2a0f484d1bf0910b15413ba21ae6d6 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2020-09-21Improve performance in IPv6 generatorXavier Simonart4-45/+28
Change-Id: I3abc92652402162d15249e345446debdeb778176 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2020-09-21Added support for VLAN in IPv6Xavier Simonart5-54/+87
Change-Id: Ib1b3d54f9cb8e4284eee7ed0998e96370762a17e Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2020-09-21Added support for gateway ipv6 & cmd for sending unsollicited neighbor ↵Xavier Simonart5-16/+73
advertisement Change-Id: Iae35d3fa19ad7cf90d8c2e0c104b0e798ac34787 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2020-09-21Added support for reporting packet (mis)order.Xavier Simonart18-48/+227
The "Latency" screen has been updated with 3 columns: - mis-ordered Count the number of mis-ordered packets. - extent: Gives an indication of how mis-ordered the packets are. Receiving packet "x - 5" after receiving packet "x" will cause an extent of 5. - duplicate: Count number of duplicate packets. Following commands have been added for the impair mode: - proba no drop: replaces the former "probability" command. Percentage of forwarded packets. So 99.5 means 0.5% of packet drop. - proba delay Percentage of delayed packets for the impair mode. - proba duplicate Percentage of duplicate packets. Similar parameters are supported within the config files: - proba no drop - proba delay - proba duplicate Note: it is recommanded to use the signature when measuring packet misorder, as otherwise unexpected packet would cause miscounts. Change-Id: I037f606f264d6e2bd7f123df5ed57ab7df8386d7 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>