summaryrefslogtreecommitdiffstats
path: root/VNFs/DPPD-PROX
AgeCommit message (Collapse)AuthorFilesLines
2022-12-01Fix linker errors with recent GNU ldPatrice Buriez5-3/+9
observed with: - GNU ld 2.35 (gcc 11.3.1) on CentOS Stream release 9 - GNU ld 2.38 (gcc 11.3.0) on Ubuntu 22.04.1 LTS - GNU ld 2.39 (gcc 12.2.0) on Ubuntu 22.10 Signed-off-by: Patrice Buriez <patrice.buriez@chenapan.org> Change-Id: Ie7d7a4f6c4c5f82e68d2ca4e32f96972933d190f
2022-09-15Fix thresholds for increment_till_failLuc Provoost1-1/+1
The thresholds that define a successful step of the binary search, were not read from the test file or initialised to the default value in case of the increment_till_fail test. Signed-off-by: Luc Provoost <luc.provoost@gmail.com> Change-Id: I8347a683f35f8fd2ff26161709bf0bd16387f2e0
2022-09-15Removing the --socket-mem eal parameterLuc Provoost1-25/+1
This parameter is not needed any more for a successful run on a Kubernetes environment. I had to remove the parameter since this was not working anymore on the K8s deployments I am currently using. Signed-off-by: Luc Provoost <luc.provoost@gmail.com> Change-Id: I784611d66e003f1a6e344b2d9c7a2c06c5c2b114
2022-09-14Change search success criteriumLuc Provoost2-4/+12
When running a step in the binary search, we can now change the behaviour by adding a new parameter in the [test] section of the test file: generator_threshold. The default value for this parameter is set to inf, which results in the same behaviour as before this change was implemented. The relative difference between what the cores can generate and what is actually sent into the generator's interface must be lower than the generator_threshold, for the test to be successful. Signed-off-by: Luc Provoost <luc.provoost@gmail.com> Change-Id: Id3e787b3571bdb9f241763fceaffccb9ea81a264
2022-09-13Fix the core to check number of bucketsLuc Provoost1-1/+1
We need to check the number of buckets PROX is using for the irq duration distribution. In the past, the scripts sent a command to PROX to check this on core 1. This was typically a core running the the IRQ task in case of VMs. With containers, this is not the case any more and we need to query which core will run this IRQ task. Signed-off-by: Luc Provoost <luc.provoost@gmail.com> Change-Id: If06295774b05d94549955cfbb0b1bb5f4eaf03e2
2022-02-21Merge "Fix issues when handling unkown ipv6 packets"0.0.2Luc Provoost5-14/+23
2022-02-20Set default crc option for meson build.Xavier Simonart1-1/+1
Fix 80eea1. Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I2ed225a903508363bb0499d9cfb35e46c8879029
2022-02-11Fix issues when handling unkown ipv6 packetsLuc Provoost5-14/+23
In order to fix this, a new parameter has been introduced: "ipv6 mask length". This can be specified in the port section of the config file. The default value is 8 (bytes). Signed-off-by: Luc Provoost <luc.provoost@gmail.com> Change-Id: I88b0b3906cc247ae5653ad59b8aa425f0cddf347
2022-02-07Fix the search algorithmLuc Provoost1-9/+14
In case, we are sending less packets through than the requested amount of packets, we will now stop the binary search. Signed-off-by: Luc Provoost <luc.provoost@gmail.com> Change-Id: I7ddb8860d47104beffdd5ff05c0359f91f4908e9
2022-02-06Added sleep_time optional configuration in rapidXavier Simonart5-3/+13
This can for instance be useful to ensure that inter-iteration time is higher than SUT switch max_idle time. Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I3a94b022f4d38e0c97d5cbd343b36a9a3ed5fd9e
2022-02-06Added support for no warmupXavier Simonart1-0/+4
If warmup time is set to 0, there will be no warmup at all. Before this patch, generator was started and immediately stopped which could result in some packets sent. Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I7acada86c527bcde70ab0117b79f95208a382cdd
2022-02-06Added support for mis-ordered packets in rapidXavier Simonart3-11/+25
- mis-ordered packets are reported/displayed in an extra column - a treshold can be specified for mis-ordered packets, as a criterium Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I3e17f86c44e54abcec2412ec57ba5303105b7b91
2022-02-06Added scripting support for rangesXavier Simonart3-1/+77
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I532fd630498c2b00a91209ff7c3611fd09b460eb
2022-02-06Merge "Do not create (empty) latency loss file if disabled"Xavier Simonart1-6/+6
2022-01-10Do not create (empty) latency loss file if disabledXavier Simonart1-6/+6
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: Ia407e8d8bbdc19e8ca531b363c6cb0ed84ca5250
2022-01-10Fix warning when compiling with ninjaXavier Simonart1-1/+1
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I1d90cf8b06544b9e220726fade506275f872a037
2022-01-03Use crc offload by default when building with mesonXavier Simonart1-1/+1
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I8a004f2843273a56a3f724a4dca747da9f7f77c2
2022-01-03Fix keyboard related issues when building with mesonXavier Simonart3-3/+10
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I8186703b8ea3e88f91cd929898033eafecd686aa
2022-01-03Add support for detection of misordered packets per flowXavier Simonart4-23/+263
Only flows from ranges are supported so far. This means that flows generated through randoms are not supported yet. Misordered packets can now be detected per flow. flow definition is hard-coded as 5 tuple (proto, ip/udp src/dst). The generator writes flow_id and packet_id within the packets (4 + 5 bytes). This means that, if all latency, packet_id, signature, accuracy, flow_id and packet_id_in_flow parameters are set, the minimum packet size is 72 bytes. This feature is enabled through the following parameters: On the gen side: - packet id in flow pos: position (5 bytes) for packet id - flow id pos: flow id pos (4 bytes) On the lat side - flow_count: the number of flows received by the latency core. If not enough flows are configured, then an error message is displayed (once) and packet_reordering count is only measured for those flows - packet id in flow pos: position (5 bytes) for packet id - flow id pos: flow id pos (4 bytes) Misordered packets (and extent) are reported per core as before. No change related to duplicate packets (not measured per flow as a duplicate packet is not per flow...). Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I07517df87dfebec81408baf1decb647d9a0edd94
2022-01-02Fix potential crash when executing in backgroundXavier Simonart1-1/+1
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I460e269926726aaaf495e751d8753cf8ab94877d
2022-01-02Fix toeplitz initialization key and rss key len for mlx4Xavier Simonart2-4/+2
mlx4 requires key_len to be 40. Other NICS seems fine with it. Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: Ifc36ce2f0a80be74e9f957eb1ede3f98c756bfb2
2021-12-30Prevent rapid considering delayed packets as lostXavier Simonart1-0/+1
In case of high latency in SUT, rapid was considering those packets as lost Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: Ifd52bb0f41e1995105bf216ed1068a50250403d8
2021-12-30Increase maximum latency supported by Early Loss DetectionXavier Simonart4-3/+39
Early Loss Detection was supporting a maximum latency of 16k packets i.e. 1ms at 64 Bytes / 10Gbps. This has been increased by 64. Drawback is that early loss detection might take much longer (1 million packets) Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I3e8dae6a27e72e48757a66e0097d17be924211ad
2021-12-20Add support for preventing rapid to change flowsXavier Simonart2-5/+8
By default, in flowsize and warmup tests, rapid will set the flows by changing some fields. However, rapid only support some types of flows. Using this patch, one can let PROX define the flows, and prevent rapid to do it. This is done by specifying number of flows to 0 in rapid configuration. Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I69c7e223aaf536ebcfe9fb52e8305d5625e79fa6
2021-12-20swap: add option to prevent swapping geneve packetsXavier Simonart3-6/+24
Now a warning will only be printed for the first geneve packet not swapped Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: Ied424ce8fef9019ce2d4409391dc8001ed0b5ff7
2021-12-20store packet id in gen and swapXavier Simonart4-1/+119
Support configuration option for specifying number of packets which we will store (gen and swap). Packets are stored runtime in a buffer and written to disk at exit. Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: Iab1c9c13048b6919f77392953675cb8c48aad8e4
2021-11-02Create combined image and add helm chartYury Kylulin11-4/+131
Changes in this commit: 1) Create self contained image, rapid scripts can be executed from the management pod and create other testing pods in the cluster. 2) Helm chart to automate rapid deployment and proper service account configuration to be able to start management pod. 3) Fix for migration to paramiko. Signed-off-by: Yury Kylulin <yury.kylulin@intel.com> Change-Id: I0281871cce392b3003e0274602a5c90c29af9b23
2021-09-13Use updated DPDK scheduling schema in ProxHeinrich Kuhn3-0/+54
The scheduling infrastructure in DPDK has changed somewhat in DPDK 20.11 and up. This patch adds the needed compatibly code to make use of the new layout in DPDK. The bulk of the changes revolve around moving tb/tc rates and period fields from rte_sched_subport_params to a new struct called rte_sched_subport_profile_params Signed-off-by: Heinrich Kuhn <heinrich.kuhn@corigine.com> Signed-off-by: Simon Horman <simon.horman@corigine.com> Change-Id: Ie365903b972528eaa9324c707fe3868610f51993
2021-09-13Use mbuf dynfield1 array in ProxHeinrich Kuhn4-0/+58
The udata64 field in the rte_mbuf struct has been removed to make more space for the dynfield1 array. Prox used the udata64 field for various use cases. From DPDK v20.11 and beyond use the dynfield1 field in the rte_mbuf struct for the same functionality. Signed-off-by: Heinrich Kuhn <heinrich.kuhn@corigine.com> Signed-off-by: Simon Horman <simon.horman@corigine.com> Change-Id: I0c2ba2f24bf5649ae809a54a9b0f9d6bebdd7056
2021-09-11Basic support for ranges in generatorXavier Simonart3-1/+70
This commit add initial support for ranges. Ranges can now be specified using an offset and a range, in a similar way as random. e.g.: range=2-16001 range_offset=28 The two previous lines will range the src IP address from x.x.0.2 to x.x.3e.81 in an IPv4 packet. The range option will write as many bytes as the bytes needed for the max (2 bytes in the example above), up to 4 bytes. Runtime, the generator will iterate through the range in a linear way, starting from the min. No check are done whether range overlap themselves or whether they overlap with randoms. As of now, no support for command line or script option. Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I98a1757998955f48631a5929bd7534481975eedc
2021-09-11swap: prevent printing continuous warning messages for STP and LLDPXavier Simonart1-0/+24
Some switches send frequent STP (Spanning Tree) and LLDP (Link Layer Discovery Protocol) messages. Handle_swap was printing a warning message for each of them. Now a warning will only be printed for the first message of each type. Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I5a8ef7b76c492451aae66fd1533c61927bc6d8f1
2021-09-09Add support for building Prox with MesonHeinrich Kuhn6-6/+257
DPDK has deprecated the use of the make system in versions 20.11 and beyond. Following the deprecation it is non-trivial to keep using make to build projects that depend on DPDK. A cleaner solution is to adopt Meson as a building framework. This commit adds support for Meson in Prox. The meson.build file mirrors the functionality that is available in the current Makefile. The make build system will exit if it detects that DPDK was built using meson (testing for the RTE_TARGET directory) Signed-off-by: Heinrich Kuhn <heinrich.kuhn@corigine.com> Signed-off-by: Simon Horman <simon.horman@corigine.com> Change-Id: I6ebffa2199993fd6eb46c2f31961fe7dc38e727c
2021-09-06Changes from ViNePerfSridhar K. N. Rao4-15/+31
This patch adds changes to support using rapid to run tests only. 1. Fix format.yaml path. Add format.yaml as datafile in setup.cfg 2. Do not call generate lua if starting prox is not required. 3. Move logs to results directory - if present 4. Machines should not be used in del, if not created. Fix syntax error. Signed-off-by: Sridhar K. N. Rao <sridhar.rao@spirent.com> Change-Id: I580716573d0be2a8da02035f4d180e81b63b3fc8
2021-08-20Fix ssh timeout issueLuc Provoost1-1/+1
Moving to paramiko for ssh introduced a bug: when starting PROX through ssh, a default timeout of 15 seconds was started. The timer is now disable since we need to run PROX as long as the test will take. Change-Id: I65162fff33beb6d30d2f5ee2b83f9bef7880ce4b Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-07-16Using paramiko for all ssh & scpLuc Provoost6-118/+118
By using paramiko, we can now also use differnt credentials to login into the PROX instances. In the ssh section of the environment file, you can now also add the password parameter. Change-Id: I08d31cbf0d02d7e82b7fbe34268851f73ff5dde0 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-06-21Add support for multisocket memory reservationYury Kylulin3-16/+38
Automatic detection of allowed NUMA nodes for memory allocation added to Kubernetes environment. Signed-off-by: Yury Kylulin <yury.kylulin@intel.com> Change-Id: I4f8b2f64971d43414bbd290f7fcbc6210c1d6d71
2021-06-09Fixing eal parameter issue when more than 64 bytesLuc Provoost1-2/+2
Using prox_strncpy to copy eal parameters, so PROX will abort in case the parameter exceeds the maximum string length. Also increased the string length from 64 to 256 bytes. Change-Id: Id7cee03f6b625e165342129e9c2c71216d1144e6 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-06-08fix container image and use latest codeLuc Provoost1-10/+4
The container image was not containing a working prox executable any more. Also took out the commit id, so we always have the latest prox code in the latest container image Change-Id: I4336e06031d5bf5b3f08f4bc32b76703fde34040 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-05-12Fix latency buckets with multiple lat coresLuc Provoost3-66/+98
The bucket data of the last latency core was taken into account when collecting the latency stats. We are now adding the bucket data for all cores. Also changed the error reporting when PROX instance is breaking the pipe connection (e.g. when the dataplane network is overloaded). Cleaning up some trailing spaces in pox_ctrl.py Change-Id: I09ba01ac65e7e4e9ff03ad47da83aa4f83250a67 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-05-10Reinstate installation of igb_uioLuc Provoost2-1/+9
For good performance on some platforms, we need the igb_uio driver. With this change, the driver is compiled and insmod done during boot time. When running the rapid scripts, the devbind.sh script is sent to the instances (after replacing the string "MACADDRESS"). Make sure you uncomment the proper line to chose which driver you want to use. Change-Id: I69549400a97f29e06add6ab44515e96ffa9ce0e8 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-05-10Fixing rapidxt for XtestingLuc Provoost5-4/+25
Changes were needed for installing the python rapid python package by adding 2 new files: pyproject.toml & setup.cfg. Also fixed a bug in rapidxt.py Change-Id: Iac98b6068afef4a5f1a97459ea1109211607d53d Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-05-05New test case: gen versus swap via gatewayLuc Provoost4-10/+134
A new test was added: tests/basicrapid_gw.test. Traffic generated will now go to the reflector (swap instance) via the Gateway. The swap instance will also send the traffic back via the gateway. This use case is created to support GCP testing where the interfaces are defined with a /32 netmask, and hence all traffic is routed via the gateway. Change-Id: I60142d650072ab345cd47a0f32cb6a8275da0542 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-04-30Do not run after_boot.sh by defaultLuc Provoost1-10/+12
In the definition of the stack in openstack-rapid.yaml, we define a CloudConfig resource. after_boot.sh is called automatically by a service (check-prox-system-setup.service), after each boot. In this file, defined in the CloudConfig resource, you can put instructions needed for succesful operation and to fix certain issues in your environment. By default, this file should NOT be executed, hence we should not have this in the CloudConfig. Change the name back to after_boot.sh if you need to execute this code. Change-Id: Ifd3f86fe6dfd31444b799833d6b435a310708f25 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-04-28Default use of rapid_rsa_keyLuc Provoost6-23/+35
A secret and public key pair is available in the rapid directory: rapid_rsa_key and rapid_rsa_key.pub. createrapid.py is now modified to upload this key into OpenStack if the keypair does not already exist in OpenStack. Which keypair to use is now only defined in params_rapid.yaml. You can still define a key pair with a different name in params_rapid.yaml. If the secret and public key files are not available, a new keypair will be created and the secret key file will be saved. The name of the secret key file is the name as the OpenStack keypair name. The name of the public file is the same, with the pub extension. Change-Id: Ib8b5e4bf3a3d3138216698dc588a6908248220c0 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-04-22Fix error in sut throughput measurementLuc Provoost1-1/+1
In the fomula to calculate the sut throughput measurement, we used the frequency of the wrong machine: the generator. This issue showed up when testing with generator and sut on a different type of compute node, with different processor frequency. Change-Id: Ib42bb8a30924d6bc6bb2773aed5dcc9145bb50fc Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-04-20Fix reorder count after resetXavier Simonart1-0/+1
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I93bc98069bf60d8b727fd877bf89087c57ad2dd9
2021-04-16Fix spurious discarded packets in CGNat.Xavier Simonart1-1/+1
CGNat was discarding packets in some cases. Some run were fine, others were seeing many packets discarded. Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I63b2df993e31443bc4b5168611fcdcfa454e2137
2021-04-16Adding documentation in the test filesLuc Provoost16-15/+239
a README file in the tests subdirectory is now describing the parameters used in the test description files. Each test files has a comment pointing to the README file for more information. Change-Id: I49b9b3e1fac0a65c43e7f2d7dc90612923e28f78 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2021-04-15Rework of statistics reportingLuc Provoost28-200/+305
- Cleanup of the format.yaml file. - Adding of the packet mis-ordering statistics - Added a warmup phase to get the correct mis-ordering statistics since ARP messages need to be dealt with before we can collect correct misordering stats - Code cleanup avoiding some long lines - Removing background traffic control from rapid_flowsizetest.py since this is already done in the iteration code in rapid_test.py Change-Id: I4c60a90353f27b8e2d0b62505e8f1cd886a17f0a Signed-off-by: Luc Provoost <luc.provoost@intel.com>
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>