Age | Commit message (Collapse) | Author | Files | Lines |
|
The command to start ssh (on CentOS) seems not be working on Ubunutu.
Now we start ssh with 'service ssh start'
Signed-off-by: Luc Provoost <luc.provoost@gmail.com>
Change-Id: Ief8cd2e10443ffe99da1ed494d154edc6d8e175e
|
|
Changed the Dockerfile to install DPDK 22.07 and to run on Ubuntu 20.04.
runrapid.py will now use the 'rapid' user to connect to the PROX
instances.
Signed-off-by: Luc Provoost <luc.provoost@gmail.com>
Change-Id: I2df48f435e6d572343a02b2ab2c1db116c83ecad
|
|
We are logging the content of all test parameters in DEBUG mode. Since
one of the test parameters (machine name) can still change to make
sure we have unique machines names, the logging is done later, after the
machines names are guaranteed to be unique.
Signed-off-by: Luc Provoost <luc.provoost@gmail.com>
Change-Id: I06cbdbcfd9044798ebad03ead0eca567e7f24a9d
|
|
In rapid_k8s_deployment.py, we are creating the pods. The name used to
refer to rapid. Actually, the pods that we are creating are the prox
instances. The rapid scripts need to run elsewhere.
Signed-off-by: Luc Provoost <luc.provoost@gmail.com>
Change-Id: Idcc842c4aa3a85f2232f7fa71b6482c6081cce1c
|
|
A check on the name of the ssh key file for user rapid has been removed.
We are now just using the name of the key file as it shows in the
rapid.env file. In the past, the file name was always replaced by a
hardcoded name for the rapid user.
Signed-off-by: Luc Provoost <luc.provoost@gmail.com>
Change-Id: Ie2219b33c75c54e937182e9307e16f290c82513e
|
|
Adding a meson.build file for the port_info_app. This application is a
dpdk app that queries the dpdk ports for its MAC address. That MAC
address will then be stored in rapid.env. If needed, it will then be
used by PROX e.g. in l2 test cases.
The app is only used if the vim parameter in the rapid.env file is set
to kubernetes. In case of OpenStack, the MAC address is obtained through
the heatclient API, see stackdeployment.py for more details.
Signed-off-by: Luc Provoost <luc.provoost@gmail.com>
Change-Id: Iba2b0b98748807a0d33374644b75b4ea1bfb91cc
|
|
The name of one of the EAL parameters has changed. Depending on the DPDK
version, we need to use a different name. While building the PROX image,
we need now to create a file /opt/rapid/dpdk_version that contains the
DPDK version. When running runrapid.py, we will now check this file to
decide if we use the old --whitelist, or the new --allow parameter name
for the PCI address to be used.
Signed-off-by: Luc Provoost <luc.provoost@gmail.com>
Change-Id: I3e07c552d014c818138d389abce936e275108776
|
|
Using containers, we need a unique --file-prefix parameter in the EAL
DPDK configuration. The file-prefix name is the name of the PROX
machine. This is defined by the name parameter in the rapid.env file.
When the name parameter is not specified in the rapid.env file, the name
will be defined in the test file.
The machine name will still be defined in the same way, but when a name
is not unique, an number will be appended to the name to make it unique.
Signed-off-by: Luc Provoost <luc.provoost@gmail.com>
Change-Id: I0b4e3be60f8ddef6c7eb30bca25c041ea270e238
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
Reflect support for DPDK 22.11 and refresh compilation instructions.
Signed-off-by: Patrice Buriez <patrice.buriez@chenapan.org>
Change-Id: I082c630a13783ba012b4ee703b00999cac0f277b
|
|
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
|
|
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
|
|
"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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
|
|
Fix 80eea1.
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: I2ed225a903508363bb0499d9cfb35e46c8879029
|
|
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
|
|
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
|
|
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
|
|
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
|
|
- 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
|
|
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: I532fd630498c2b00a91209ff7c3611fd09b460eb
|
|
|
|
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: Ia407e8d8bbdc19e8ca531b363c6cb0ed84ca5250
|
|
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: I1d90cf8b06544b9e220726fade506275f872a037
|
|
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: I8a004f2843273a56a3f724a4dca747da9f7f77c2
|
|
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: I8186703b8ea3e88f91cd929898033eafecd686aa
|
|
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
|
|
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: I460e269926726aaaf495e751d8753cf8ab94877d
|
|
mlx4 requires key_len to be 40. Other NICS seems fine with it.
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: Ifc36ce2f0a80be74e9f957eb1ede3f98c756bfb2
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|