Age | Commit message (Collapse) | Author | Files | Lines |
|
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
|
|
Many reStructuredText issues
Signed-off-by: Patrice Buriez <patrice.buriez@chenapan.org>
Change-Id: I07e6af54d2ea15fa1ab1a08ad3c0b22643e7462e
|
|
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: Idd28d3462c3b2a0163977b5fddbe2b59d9217cc2
|
|
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com>
Change-Id: I4de253d3577253c92829cf536dcf36c84d795eda
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|