samplevnf.git
16 months agoAllow a different pod spec for each pod 07/73807/2
Luc Provoost [Tue, 17 Jan 2023 11:23:58 +0000 (12:23 +0100)]
Allow a different pod spec for each pod

A new parameter is now introduced in the [PODx] sections of the
rapid.pods file. This parameter specifies the pod spec yaml file that
will be used to create this specif pod. When this parameter is not
available, the default pod-rapid.yaml file will be used. The parameter
name is spec_file_name.
Also cleaned some lines of code exceeding 80 characters.

Signed-off-by: Luc Provoost <luc.provoost@gmail.com>
Change-Id: Id26881517d45baf4bf6be2e82b4f9e049f2b2547

16 months agoFix issue with system_ready_for_rapid file 06/73806/2
Luc Provoost [Mon, 16 Jan 2023 15:21:50 +0000 (16:21 +0100)]
Fix issue with system_ready_for_rapid file

In the /opt/rapid directory, we used to check for the existance of the
file system_ready_for_rapid. This file was created when all the
initialization is done properly. This check was however broken and always
resulted succesfully, even if the file did not exist. When executing
runrapid.py, the system will now wait to connect to PROX, till this file
exists. The file is created when running start.sh

Signed-off-by: Luc Provoost <luc.provoost@gmail.com>
Change-Id: Idca52549aae40070a0b6ea1d7ccbf6c322dc631d

16 months agoOptional MAC address and other changes 02/73802/1
Luc Provoost [Mon, 9 Jan 2023 14:07:59 +0000 (15:07 +0100)]
Optional MAC address and other changes

The MAC address of the dataplane interfaces in the environment file is
now optional. If not specified, the HW MAC address of that interface
will be used. When using l2 tests, the parameter will be needed anyway
and the test will fail if the MAC address is not specified.
Starting from DPDK 20.11, the EAL --pci-whitelist parameter changed into
--allow. We are now checking the DPDK version of the PROX instance to
determine which parameter to use.
For pods using cgroup v2, we are now using a different file to determine
the cpuset available to the pod.

Signed-off-by: Luc Provoost <luc.provoost@gmail.com>
Change-Id: I7a88458406b9ae3c8cae9c583cc37121d40c5073

16 months agoAdd entry in the log file when copying files 01/73801/3
Luc Provoost [Mon, 9 Jan 2023 10:35:47 +0000 (11:35 +0100)]
Add entry in the log file when copying files

Added some extra logging in the rapid log file when we copy files to or
from the PROX instances.

Signed-off-by: Luc Provoost <luc.provoost@gmail.com>
Change-Id: If9947ce87cec34f8336c69a243e9d5340ca37aef

16 months agofix regex expression to find IPV4 address 00/73800/2
Luc Provoost [Sun, 8 Jan 2023 12:18:29 +0000 (13:18 +0100)]
fix regex expression to find IPV4 address

helper.lua contains code to parse the IP addresses in the parameters.lua
file. The regular expression to find the IPV4 address is fixed.

Signed-off-by: Luc Provoost <luc.provoost@gmail.com>
Change-Id: I9baf2b059fa281dc408bd0ea59b77d294750c1ef

16 months agoFix socket_id in rte_hash_parameters 99/73799/3
Luc Provoost [Sun, 8 Jan 2023 09:27:45 +0000 (10:27 +0100)]
Fix socket_id in rte_hash_parameters

The socket_id was either not initialized or set to 0. This fix
sets the proper socket_id to the relevant NUMA node. When running
on NUMA nodes other than 0, memory allocation for the hash table
could fail. With this fix, it is supposed to work on all NUMA
nodes.

Signed-off-by: Luc Provoost <luc.provoost@gmail.com>
Change-Id: I59887fe064a7e7c96ce2f6ce1c70791844b165b2

16 months agoUpdate README and version.h (DPDK 22.11) 98/73798/1
Patrice Buriez [Fri, 6 Jan 2023 19:11:13 +0000 (19:11 +0000)]
Update README and version.h (DPDK 22.11)

Reflect support for DPDK 22.11 and refresh compilation instructions.

Signed-off-by: Patrice Buriez <patrice.buriez@chenapan.org>
Change-Id: I082c630a13783ba012b4ee703b00999cac0f277b

16 months agoRestore rw_reg and hw_direct_stats 55/73755/1
Patrice Buriez [Mon, 2 Jan 2023 12:51:54 +0000 (12:51 +0000)]
Restore rw_reg and hw_direct_stats

Note that DPDK 21.11 and above must be built with 'enable_driver_sdk'
option enabled, in order to expose the rte_eth_devices array, now marked
as internal. See
http://doc.dpdk.org/guides-21.11/rel_notes/release_21_11.html#abi-changes
for details. This is done by supplying the '-Denable_driver_sdk=true'
command line parameter, either to 'meson setup', or later on to 'meson
configure', before running 'ninja' and 'ninja install'.

Signed-off-by: Patrice Buriez <patrice.buriez@chenapan.org>
Change-Id: I20db8971818a29ec495b6d8d79cf46f2204631a5

16 months agoModify code according to new dpdk variable name 77/73477/3
Long Wu [Thu, 8 Sep 2022 05:36:12 +0000 (01:36 -0400)]
Modify code according to new dpdk variable name

Note that most of the original contents of this commit has been removed
from this final patchset, because compatibility issues with DPDK 21.11
have already been addressed, although differently, by these commits:
b950110: Add initial support for DPDK 21.11
5efd9d8: Fix tons of deprecation warnings

Many macros, structure members and dpdk args' name have been changed since
dpdk 21.11 and the current latest version(22.07) still has these changes.
These changes caused the prox compilation to fail. Modify the code so that
prox can be compiled successfully with new dpdk variable name.

Signed-off-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@corigine.com>
Signed-off-by: Patrice Buriez <patrice.buriez@chenapan.org>
Change-Id: Ibaad7ac00b121ae9b12ed03bd0380400b226e805

16 months agoFix name-array out-of-memory 78/73478/2
Long Wu [Thu, 8 Sep 2022 05:59:50 +0000 (01:59 -0400)]
Fix name-array out-of-memory

"struct prox_port_cfg" "names" buffer size is 64 and it will lead to
out-of-memory when do "snprintf" operation. Modify code to enlarge
buffer size to 128.

Fixes: 9a1e1e9336b3 ("Added support for multiple vlans in ipv4 vdev mode")
Cc: xavier.simonart@intel.com
Signed-off-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@corigine.com>
Change-Id: Iafbde578688e1a59f4b6e655e45b2d2951f36162

16 months agoAdd support for DPDK 22.11 52/73752/1
Patrice Buriez [Fri, 30 Dec 2022 07:16:54 +0000 (07:16 +0000)]
Add support for DPDK 22.11

Note that DPDK must be built with 'enable_driver_sdk' option enabled,
in order to expose the PCI driver API, now marked as internal. See
http://doc.dpdk.org/guides-22.11/rel_notes/release_22_11.html#api-changes
for details. This is done by supplying the '-Denable_driver_sdk=true'
command line parameter, either to 'meson setup', or later on to 'meson
configure', before running 'ninja' and 'ninja install'.

Signed-off-by: Patrice Buriez <patrice.buriez@chenapan.org>
Change-Id: I5aa57cec851a68fa2a2d2fc63d4e12311e5742f9

16 months agoFix tons of deprecation warnings 51/73751/2
Xavier Simonart [Sun, 20 Feb 2022 00:50:56 +0000 (00:50 +0000)]
Fix tons of deprecation warnings

reported since DPDK 20.11, 21.05, 21.11 and 22.03, and
turned into undeclared symbol errors with DPDK 22.11.

Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Signed-off-by: Patrice Buriez <patrice.buriez@chenapan.org>
Change-Id: Ice9a0f662ee057211984f799010701cd81e5a4d0

16 months agoAdd initial support for DPDK 21.11 25/73225/4
Xavier Simonart [Sun, 20 Feb 2022 00:50:56 +0000 (00:50 +0000)]
Add initial support for DPDK 21.11

Note that this patch simplistically removes some PROX features, because
they are not directly supported anymore by DPDK, since rte_eth_devices
is now private:
- reading and writing NIC register through PROX command line
- querying ixgbe HW statistics instead of getting them from DPDK

Also adjusted to following DPDK changes:
* struct rte_ether_hdr fields renamed:
  - d_addr -> dst_addr
  - s_addr -> src_addr
* struct rte_eth_rxmode field renamed:
  - max_rx_pkt_len -> mtu
* --master-lcore -> --main-lcore

Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Signed-off-by: Patrice Buriez <patrice.buriez@chenapan.org>
Change-Id: I08445b3dd0f7fe471d9bc7cfb557bd3aeb2f50be

17 months agoFix releng-tox Jenkins job 44/73744/4
Patrice Buriez [Fri, 16 Dec 2022 15:37:41 +0000 (15:37 +0000)]
Fix releng-tox Jenkins job

Many reStructuredText issues

Signed-off-by: Patrice Buriez <patrice.buriez@chenapan.org>
Change-Id: I07e6af54d2ea15fa1ab1a08ad3c0b22643e7462e

17 months agoFix linker errors with older DPDK versions 39/73739/1
Patrice Buriez [Fri, 16 Dec 2022 13:46:59 +0000 (13:46 +0000)]
Fix linker errors with older DPDK versions

when __rte_cache_aligned was defined in rte_memory.h,
rather than in rte_common.h now.

Signed-off-by: Patrice Buriez <patrice.buriez@chenapan.org>
Change-Id: Id6fb6d9adc8b1324ef436aab3897f898a9304e9c

17 months agoFix meson.build dependencies 80/73480/3
Long Wu [Thu, 8 Sep 2022 06:37:47 +0000 (02:37 -0400)]
Fix meson.build dependencies

In some environments, the compile command does not have "-ldl"
default. Add dl deps in meson.build to avoid compilation failures
in these environments.

Also add rte_bus_pci, which is a dependency for rte_pmd_ring or
rte_net_ring, and was triggering linker warning.

Signed-off-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@corigine.com>
Signed-off-by: Patrice Buriez <patrice.buriez@chenapan.org>
Change-Id: I7ecb825ff532f1b63f79bff93470fa9203906aca

17 months agoFix linker errors with recent GNU ld 59/73659/2
Patrice Buriez [Wed, 30 Nov 2022 13:05:50 +0000 (13:05 +0000)]
Fix linker errors with recent GNU ld

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

20 months agoFix thresholds for increment_till_fail 76/73476/1
Luc Provoost [Thu, 15 Sep 2022 19:08:39 +0000 (19:08 +0000)]
Fix thresholds for increment_till_fail

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

20 months agoRemoving the --socket-mem eal parameter 75/73475/1
Luc Provoost [Thu, 15 Sep 2022 14:48:53 +0000 (14:48 +0000)]
Removing the --socket-mem eal parameter

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

20 months agoChange search success criterium 73/73473/1
Luc Provoost [Wed, 14 Sep 2022 15:13:32 +0000 (15:13 +0000)]
Change search success criterium

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

20 months agoFix the core to check number of buckets 70/73470/1
Luc Provoost [Tue, 13 Sep 2022 15:08:18 +0000 (15:08 +0000)]
Fix the core to check number of buckets

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

2 years agoMerge "Fix issues when handling unkown ipv6 packets" 0.0.2
Luc Provoost [Mon, 21 Feb 2022 08:26:20 +0000 (08:26 +0000)]
Merge "Fix issues when handling unkown ipv6 packets"

2 years agoSet default crc option for meson build. 06/73206/2
Xavier Simonart [Sun, 6 Feb 2022 22:52:02 +0000 (22:52 +0000)]
Set default crc option for meson build.

Fix 80eea1.

Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: I2ed225a903508363bb0499d9cfb35e46c8879029

2 years agoFix issues when handling unkown ipv6 packets 21/73221/1
Luc Provoost [Fri, 11 Feb 2022 18:55:41 +0000 (19:55 +0100)]
Fix issues when handling unkown ipv6 packets

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

2 years agoFix the search algorithm 04/73204/3
Luc Provoost [Fri, 4 Feb 2022 13:34:02 +0000 (14:34 +0100)]
Fix the search algorithm

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

2 years agoAdded sleep_time optional configuration in rapid 62/73162/2
Xavier Simonart [Sun, 9 Jan 2022 19:35:22 +0000 (19:35 +0000)]
Added sleep_time optional configuration in rapid

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

2 years agoAdded support for no warmup 63/73163/2
Xavier Simonart [Mon, 10 Jan 2022 19:25:33 +0000 (19:25 +0000)]
Added support for no warmup

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

2 years agoAdded support for mis-ordered packets in rapid 61/73161/2
Xavier Simonart [Sun, 9 Jan 2022 19:30:10 +0000 (19:30 +0000)]
Added support for mis-ordered packets in rapid

- 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

2 years agoAdded scripting support for ranges 60/73160/2
Xavier Simonart [Sun, 9 Jan 2022 17:20:01 +0000 (17:20 +0000)]
Added scripting support for ranges

Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: I532fd630498c2b00a91209ff7c3611fd09b460eb

2 years agoMerge "Do not create (empty) latency loss file if disabled"
Xavier Simonart [Sun, 6 Feb 2022 21:36:37 +0000 (21:36 +0000)]
Merge "Do not create (empty) latency loss file if disabled"

2 years agoChange email address of Patrice Buriez 05/73205/1
Xavier Simonart [Sun, 6 Feb 2022 20:58:12 +0000 (20:58 +0000)]
Change email address of Patrice Buriez

Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: Idd28d3462c3b2a0163977b5fddbe2b59d9217cc2

2 years agoChange email address of Luc Provoost 03/73203/1
Xavier Simonart [Wed, 2 Feb 2022 08:27:20 +0000 (08:27 +0000)]
Change email address of Luc Provoost

Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: I4de253d3577253c92829cf536dcf36c84d795eda

2 years agoDo not create (empty) latency loss file if disabled 59/73159/1
Xavier Simonart [Fri, 7 Jan 2022 15:02:22 +0000 (15:02 +0000)]
Do not create (empty) latency loss file if disabled

Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: Ia407e8d8bbdc19e8ca531b363c6cb0ed84ca5250

2 years agoFix warning when compiling with ninja 33/73133/2
Xavier Simonart [Mon, 3 Jan 2022 15:28:22 +0000 (15:28 +0000)]
Fix warning when compiling with ninja

Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: I1d90cf8b06544b9e220726fade506275f872a037

2 years agoUse crc offload by default when building with meson 32/73132/2
Xavier Simonart [Sun, 2 Jan 2022 16:16:56 +0000 (16:16 +0000)]
Use crc offload by default when building with meson

Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: I8a004f2843273a56a3f724a4dca747da9f7f77c2

2 years agoFix keyboard related issues when building with meson 31/73131/2
Xavier Simonart [Sun, 2 Jan 2022 16:14:40 +0000 (16:14 +0000)]
Fix keyboard related issues when building with meson

Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: I8186703b8ea3e88f91cd929898033eafecd686aa

2 years agoAdd support for detection of misordered packets per flow 28/73128/2
Xavier Simonart [Thu, 30 Dec 2021 10:24:15 +0000 (10:24 +0000)]
Add support for detection of misordered packets per flow

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

2 years agoFix potential crash when executing in background 29/73129/2
Xavier Simonart [Sun, 2 Jan 2022 16:29:15 +0000 (16:29 +0000)]
Fix potential crash when executing in background

Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: I460e269926726aaaf495e751d8753cf8ab94877d

2 years agoFix toeplitz initialization key and rss key len for mlx4 30/73130/2
Xavier Simonart [Sun, 2 Jan 2022 16:24:00 +0000 (16:24 +0000)]
Fix toeplitz initialization key and rss key len for mlx4

mlx4 requires key_len to be 40. Other NICS seems fine with it.

Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: Ifc36ce2f0a80be74e9f957eb1ede3f98c756bfb2

2 years agoPrevent rapid considering delayed packets as lost 26/73126/2
Xavier Simonart [Mon, 20 Dec 2021 13:10:15 +0000 (13:10 +0000)]
Prevent rapid considering delayed packets as lost

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

2 years agoIncrease maximum latency supported by Early Loss Detection 25/73125/2
Xavier Simonart [Mon, 20 Dec 2021 13:06:08 +0000 (13:06 +0000)]
Increase maximum latency supported by Early Loss Detection

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

2 years agoAdd support for preventing rapid to change flows 24/73124/1
Xavier Simonart [Mon, 20 Dec 2021 12:59:07 +0000 (12:59 +0000)]
Add support for preventing rapid to change flows

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

2 years agoswap: add option to prevent swapping geneve packets 23/73123/1
Xavier Simonart [Mon, 20 Dec 2021 12:55:09 +0000 (12:55 +0000)]
swap: add option to prevent swapping geneve packets

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

2 years agostore packet id in gen and swap 22/73122/1
Xavier Simonart [Wed, 3 Nov 2021 16:46:47 +0000 (16:46 +0000)]
store packet id in gen and swap

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

2 years agoCreate combined image and add helm chart 97/72997/2
Yury Kylulin [Tue, 2 Nov 2021 14:47:12 +0000 (17:47 +0300)]
Create combined image and add helm chart

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

2 years agoUse updated DPDK scheduling schema in Prox 54/72854/2
Heinrich Kuhn [Wed, 18 Aug 2021 14:21:39 +0000 (16:21 +0200)]
Use updated DPDK scheduling schema in Prox

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

2 years agoUse mbuf dynfield1 array in Prox 53/72853/2
Heinrich Kuhn [Wed, 18 Aug 2021 14:58:46 +0000 (16:58 +0200)]
Use mbuf dynfield1 array in Prox

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

2 years agoBasic support for ranges in generator 14/72914/1
Xavier Simonart [Sat, 11 Sep 2021 18:33:25 +0000 (18:33 +0000)]
Basic support for ranges in generator

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

2 years agoswap: prevent printing continuous warning messages for STP and LLDP 13/72913/1
Xavier Simonart [Sat, 11 Sep 2021 18:06:43 +0000 (18:06 +0000)]
swap: prevent printing continuous warning messages for STP and LLDP

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

2 years agoAdd support for building Prox with Meson 52/72852/2
Heinrich Kuhn [Wed, 18 Aug 2021 14:38:53 +0000 (16:38 +0200)]
Add support for building Prox with Meson

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

2 years agoChanges from ViNePerf 77/72777/4
Sridhar K. N. Rao [Mon, 19 Jul 2021 12:26:44 +0000 (17:56 +0530)]
Changes from ViNePerf

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

2 years agoFix ssh timeout issue 42/72842/1
Luc Provoost [Fri, 20 Aug 2021 09:33:55 +0000 (11:33 +0200)]
Fix ssh timeout issue

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>
2 years agoUsing paramiko for all ssh & scp 76/72776/1
Luc Provoost [Fri, 16 Jul 2021 09:40:11 +0000 (11:40 +0200)]
Using paramiko for all ssh & scp

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>
2 years agoAdd support for multisocket memory reservation 97/72697/1
Yury Kylulin [Mon, 21 Jun 2021 12:55:22 +0000 (15:55 +0300)]
Add support for multisocket memory reservation

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

2 years agoFixing eal parameter issue when more than 64 bytes 50/72650/1
Luc Provoost [Wed, 9 Jun 2021 11:51:31 +0000 (13:51 +0200)]
Fixing eal parameter issue when more than 64 bytes

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>
2 years agofix container image and use latest code 46/72646/1
Luc Provoost [Tue, 8 Jun 2021 11:37:55 +0000 (13:37 +0200)]
fix container image and use latest code

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>
3 years agoFix latency buckets with multiple lat cores 01/72501/4
Luc Provoost [Mon, 10 May 2021 14:04:22 +0000 (16:04 +0200)]
Fix latency buckets with multiple lat cores

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>
3 years agoReinstate installation of igb_uio 93/72493/2
Luc Provoost [Mon, 10 May 2021 08:06:30 +0000 (10:06 +0200)]
Reinstate installation of igb_uio

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>
3 years agoFixing rapidxt for Xtesting 86/72486/3
Luc Provoost [Fri, 7 May 2021 16:06:05 +0000 (18:06 +0200)]
Fixing rapidxt for Xtesting

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>
3 years agoNew test case: gen versus swap via gateway 82/72482/1
Luc Provoost [Wed, 5 May 2021 16:09:07 +0000 (18:09 +0200)]
New test case: gen versus swap via gateway

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>
3 years agoDo not run after_boot.sh by default 41/72441/2
Luc Provoost [Fri, 30 Apr 2021 07:28:22 +0000 (09:28 +0200)]
Do not run after_boot.sh by default

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>
3 years agoFix the qcow2 disk image content 39/72439/4
Luc Provoost [Thu, 29 Apr 2021 17:30:01 +0000 (19:30 +0200)]
Fix the qcow2 disk image content

When building the qcow2 image, we are not automatically getting the
latest version of the samplevnf code. Since this might have to do with
caches, a parameter with the workspace directory is now passed to
disk-image-create using the --image-cache option.
Also removed verify-image.sh since this is done using build-image.sh
with the -v option.

Change-Id: I661c543102258929bdfe53af6c6ea0ff72eab33d
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
3 years agoDefault use of rapid_rsa_key 37/72437/1
Luc Provoost [Wed, 28 Apr 2021 14:16:21 +0000 (16:16 +0200)]
Default use of rapid_rsa_key

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>
3 years agoFix error in sut throughput measurement 28/72428/1
Luc Provoost [Thu, 22 Apr 2021 07:17:36 +0000 (09:17 +0200)]
Fix error in sut throughput measurement

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>
3 years agoFix reorder count after reset 19/72419/1
Xavier Simonart [Tue, 20 Apr 2021 14:24:41 +0000 (16:24 +0200)]
Fix reorder count after reset

Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: I93bc98069bf60d8b727fd877bf89087c57ad2dd9

3 years agoFix spurious discarded packets in CGNat. 59/72359/2
Xavier Simonart [Thu, 8 Apr 2021 10:11:57 +0000 (12:11 +0200)]
Fix spurious discarded packets in CGNat.

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

3 years agoAdding documentation in the test files 99/72399/1
Luc Provoost [Fri, 16 Apr 2021 13:57:36 +0000 (15:57 +0200)]
Adding documentation in the test files

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>
3 years agoRework of statistics reporting 78/72378/1
Luc Provoost [Thu, 15 Apr 2021 09:49:42 +0000 (11:49 +0200)]
Rework of statistics reporting

- 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>
3 years agoFixing the INFO.yaml 67/72367/2
Luc Provoost [Tue, 13 Apr 2021 10:36:41 +0000 (12:36 +0200)]
Fixing the INFO.yaml

Removing trailing spaces

Change-Id: I8d06b7413444843f0bdaa890189929f0e5e2e0f8
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
3 years agoCode improvements 66/72366/3
Luc Provoost [Mon, 12 Apr 2021 16:18:30 +0000 (18:18 +0200)]
Code improvements

Rework of some of the code for better readability

Change-Id: I559e88faba31d93e593d39cf436f3e114ba4528a
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
3 years agocgnat test case added 64/72364/1
Luc Provoost [Thu, 8 Apr 2021 17:48:33 +0000 (19:48 +0200)]
cgnat test case added

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>
3 years agoLog ssh & scp related issues also on screen 16/72316/3
Luc Provoost [Fri, 2 Apr 2021 12:53:09 +0000 (14:53 +0200)]
Log ssh & scp related issues also on screen

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>
3 years agoAvoid seg fault in rte_hash_lookup_bulk 02/72302/4
Luc Provoost [Thu, 1 Apr 2021 13:54:38 +0000 (15:54 +0200)]
Avoid seg fault in rte_hash_lookup_bulk

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>
3 years agoFix username for committer rights 46/72346/1
Luc Provoost [Tue, 6 Apr 2021 10:23:57 +0000 (12:23 +0200)]
Fix username for committer rights

Change-Id: Ie2532fdb6339dc447ae122136088d6a1ca2c80f2
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
3 years agoFix ref counter bug 96/72296/1
Luc Provoost [Wed, 31 Mar 2021 15:52:47 +0000 (17:52 +0200)]
Fix ref counter bug

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>
3 years agoMinor update to fix compilation issues on recent gcc and dpdk 86/72286/1
Xavier Simonart [Mon, 29 Mar 2021 09:45:47 +0000 (11:45 +0200)]
Minor update to fix compilation issues on recent gcc and dpdk

Fixes compilation issues seen on gcc 9.3.0 on dpdk 20.05.

Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: Ib7989c1bac66e82551165ab49e06941ebc772347

3 years agoDo not request IPV6 routing info 60/72260/2
Luc Provoost [Tue, 23 Mar 2021 12:22:53 +0000 (13:22 +0100)]
Do not request IPV6 routing info

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>
3 years agoIgnoring IPV6 routing messages 49/72249/2
Luc Provoost [Mon, 22 Mar 2021 16:10:36 +0000 (17:10 +0100)]
Ignoring IPV6 routing messages

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>
3 years agobuild-image.sh is now taking parameters: -i -g 59/72159/2
Luc Provoost [Mon, 15 Mar 2021 19:49:40 +0000 (20:49 +0100)]
build-image.sh is now taking parameters: -i -g

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>
3 years agoFix the tuned optimizations 30/72130/5
Luc Provoost [Thu, 25 Feb 2021 17:34:11 +0000 (18:34 +0100)]
Fix the tuned optimizations

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>
3 years agoRemove useless site.retry from tree 50/72150/1
Cédric Ollivier [Wed, 10 Mar 2021 14:06:15 +0000 (15:06 +0100)]
Remove useless site.retry from tree

Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
Change-Id: Id2a3fc69d097024cff608103ba7310388a273976

3 years agoPreparation for packet mis-ordering stats 27/72127/5
Luc Provoost [Wed, 24 Feb 2021 10:51:22 +0000 (11:51 +0100)]
Preparation for packet mis-ordering stats

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>
3 years agochange committer email address 31/72131/2
Luc Provoost [Thu, 25 Feb 2021 20:50:52 +0000 (21:50 +0100)]
change committer email address

Changed to Xavier's new email address

Change-Id: I3b5a0e00c41abcbca405dbea33a87c56688a5289
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
3 years agoFix mbuf corruption when handling icmp messages. 29/72129/3
Xavier Simonart [Tue, 12 Jan 2021 15:57:01 +0000 (16:57 +0100)]
Fix mbuf corruption when handling icmp messages.

Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: I3eeacb550d1ef51a13802d06f06973437afe7d9b

3 years agoMerge "Bypass the dep management issues in lfdocs-conf"
Luc Provoost [Fri, 19 Feb 2021 17:01:49 +0000 (17:01 +0000)]
Merge "Bypass the dep management issues in lfdocs-conf"

3 years agoqcow2 image file name to include GIT_BRANCH 14/72114/3
Luc Provoost [Thu, 18 Feb 2021 20:16:46 +0000 (21:16 +0100)]
qcow2 image file name to include GIT_BRANCH

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>
3 years agoUsing disk image builder to create rapid VM 63/72063/3
Luc Provoost [Mon, 15 Feb 2021 14:01:20 +0000 (15:01 +0100)]
Using disk image builder to create rapid VM

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>
3 years agoBypass the dep management issues in lfdocs-conf 65/72065/1
Cédric Ollivier [Wed, 17 Feb 2021 16:17:24 +0000 (17:17 +0100)]
Bypass the dep management issues in lfdocs-conf

It can only work for python3.

Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
Change-Id: Ie7b2706f9d4dbfbb2cdca85c0543894c79634246

3 years agoAdd support for native Kubernetes CPU Manager 86/71986/1 0.0.1
Yury Kylulin [Thu, 11 Feb 2021 13:58:39 +0000 (16:58 +0300)]
Add support for native Kubernetes CPU Manager

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

3 years agoImprove prefetching in handle_mirror 55/71955/1
Luc Provoost [Wed, 10 Feb 2021 11:12:46 +0000 (12:12 +0100)]
Improve prefetching in handle_mirror

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>
3 years agoExpand mirror functionality 42/71842/5
Luc Provoost [Mon, 1 Feb 2021 13:04:01 +0000 (14:04 +0100)]
Expand mirror functionality

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>
3 years agoFix the default test file 40/71840/1
Luc Provoost [Mon, 1 Feb 2021 09:16:51 +0000 (10:16 +0100)]
Fix the default test file

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>
3 years agoAdd rapid script sources in the image 39/71839/1
Yury Kylulin [Fri, 29 Jan 2021 11:57:36 +0000 (14:57 +0300)]
Add rapid script sources in the image

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

3 years agocreation of tests and configs subdirectories 21/71821/1
Luc Provoost [Wed, 27 Jan 2021 16:18:31 +0000 (17:18 +0100)]
creation of tests and configs subdirectories

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>
3 years agoAdd default SSH keys 19/71819/1
Yury Kylulin [Wed, 27 Jan 2021 11:27:14 +0000 (14:27 +0300)]
Add default SSH keys

Adding default RSA keys for SSH access.

Signed-off-by: Yury Kylulin <yury.kylulin@intel.com>
Change-Id: Id9552717591a805562f3ed2f840251bd9f6a71c1

3 years agoImproved PROX cleanup when exiting 52/71752/5
Luc Provoost [Wed, 16 Dec 2020 14:47:49 +0000 (15:47 +0100)]
Improved PROX cleanup when exiting

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>
3 years agoFix for new config file structure 23/71723/1
Yury Kylulin [Thu, 10 Dec 2020 16:27:07 +0000 (19:27 +0300)]
Fix for new config file structure

Fix subnet configuration for the dataplane interface.

Signed-off-by: Yury Kylulin <yury.kylulin@intel.com>
Change-Id: I612113a86a960284303915d5d003bf67a1b48a72

3 years agoMoving to python 3 for kubernetes scripts 22/71722/1
Yury Kylulin [Thu, 10 Dec 2020 08:40:29 +0000 (11:40 +0300)]
Moving to python 3 for kubernetes scripts

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

3 years agoReporting test details for all tests 77/71677/1 stable/jerma opnfv-10.0.0
Luc Provoost [Tue, 8 Dec 2020 20:53:41 +0000 (21:53 +0100)]
Reporting test details for all tests

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>
3 years agoFinal documentation update for Jerma release 11/71611/1
Luc Provoost [Thu, 3 Dec 2020 18:48:12 +0000 (19:48 +0100)]
Final documentation update for Jerma release

Final changes to the documentation

Change-Id: Ibefd33feb15efb692b445dd6a025ec3854d2ed5a
Signed-off-by: Luc Provoost <luc.provoost@intel.com>