Age | Commit message (Collapse) | Author | Files | Lines |
|
UDP and IP packet length and source UDP port and destination UDP port
were wrongly set for IPv6 packets.
In the *.test files, there is now an optional boolean field (ipv6) in
the [TestParameters] section. When set to true, the generator will use
the IPv6 packet layout to place the right values at the proper offset
in the packet. If not present or set to false, the IPv4 layout will be
used. Note also that packet size needs to be at least 84 bytes for IPV6
traffic since we need space for latency and other information in each
packet.
Packet loss ratio is now printed as a percentage of the total packets
sent.
Change-Id: I2136e87f3032348ae95b69052be7da8461c6303c
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
The IRQ test has been reworked to increase the accuracy of the IRQ
measurements. Results can now also be pushed to a Prometheus push
gateway or to OPNFV's Xtesting. In order to do so, a new file
format.yaml has been introduced. Please use this file now to specify the
details of the PushGateway or the Xtesting server.
Added new test: increment_till_fail.test
Change-Id: I111aae3e099bc03e3d2ddd1014a0301bac356e0b
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
Due to the recent changes in the rapid scripts, Kubernetes environment need to be adjusted.
Ready for test flag file for the runrapid script created during the container start.
TUN device configuration added.
Signed-off-by: Yury Kylulin <yury.kylulin@intel.com>
Change-Id: I097aafbd1d1d102aa61b8b86842afcb2d6a51338
|
|
Change-Id: Iae0a0d95b5a216463ec7511337be4019fdd4359f
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
|
|
Using vfio in stead of igb_uio. DPDK 2020.5 is NOT compiling the igb_uio
driver by default any more.
For the l3 mode, we are now using the new PROX vdev feature. This is
achieved by adding the vdev parameter in the port section of the PROX
config files. One of the advantages is that we can now ping a port
managed by PROX: the requests will be forwarded by PROX to the LINUX
stack, who will reply to the ping. A tap device is being created by PROX
to support this feature.
Installing old version of nasm since latest causes some issues.
If not pushgateway is being used, it should be commented out in the
config_file.
vfio is now loaded by specifying the module in /etc/modules-load.d
There is also an after_boot.sh script that will be run by
check_prox_system_setup.sh, which can be used for further configuration
of the instance after boot.
There is now also a file created /opt/rapid/system_ready_for_rapid by
the check_prox_system_setup.sh script. This file is created once all
configuration is done. The runrapid.py script will wait till this file
is created before executing any tests.
Change-Id: Ic5c41af82642066af42134c3323297f5a06f6f72
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
Option for Kubernetes environment clean up (createrapidk8s.py -c) from the test pods added.
Signed-off-by: Yury Kylulin <yury.kylulin@intel.com>
Change-Id: I1c6c7090462b55fbadd1d8f1a277470a6eeb2dee
|
|
Fix scripts and build procedure to use /opt/rapid as a main directory for
binaries and config files.
Signed-off-by: Yury Kylulin <yury.kylulin@intel.com>
Change-Id: Icb38c37a85a78a6f2de2e751df5fafd624b4f1b3
|
|
All config files are now copied into /opt/rapid. We are not using the
home directory any more. The prox executable is now also copied into the
same /opt/rapid.
Change-Id: I838636167f370bf8a855a3cfb0796c659e27a3ad
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
New files created in 2020 have now the right date in the copyright
notice.
Change-Id: I8eb244beec3d793e819cce1f63c39671f18286a1
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
Since runrapid.py is now supporting more than 1 dataplane interface, we
need to use a port index in the rapid.env file for the dataplane ports.
In k8sdeployment.py, we only support 1 dataplane port, but we are
writing dp_ip1 and dp_mac1 in the environment file. The copyright dates
are also updated. Some references to VM have also been changed to instance.
Change-Id: Ie1d036c13ef5d6f0aa1f35aa068a9760a1cfc2a9
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
IPV6 test has been added. The generator will now generate IPV6 packets
using NDP to resolve MAC addresses. The hex IP addresses in the inline
definition of the packets in the cfg files is now calculated by a lua
function called in parameters.lua. The hard-coded path /home/centos has
been replaced by ~. An error in the speed calculations has been fixed.
See the RapidTest class for details. The actual number of generated
flows is now reported. If the requested number of flows is not a power
of 2, the lowest power of 2 that is larger than the requested number of
flows will be used and reported.
Change-Id: I36b8d345b4a03c2cf358c19ec353ca8ad2831293
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
All packet size in the *.test files have been replaces with imix sizes.
imix is now a list of packet sizes. If you want to run with only a
pakcet size of 64, you need to specify a list containing only 1 size:
[64].
You can also specify multiple imix values by specifying a list of list
of sizes. The keyworkds in the test files are now imix & imixs.
Change-Id: Iea47c0266b022133b7bbfc9a6811e3199ae41521
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
yaml files have been added to the repo as an example. Please check the
README explaining the output section reqs for this yaml file. There is
also a new file (config_file): it also specifies which yaml files to
use. multiple dataplane interfaces per VM can now be specified and will
appear in the <STACK>.env file. An error in setting the packet size has
been fixed (see set_udp_packet_size for packet size setting details)
Change-Id: Ie89a4940521dac7dd3652acca477739abb9f5497
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
The code has been rewritten in multiple classes and files for better
readability and maintainability. You should now also use Python3 to run
the scripts. Some of the variables in the config files have moved to
other sections. The pushgateway parameter moved to the [varia] section
of the rapid environment file.
Change-Id: Ic61a1bc3baa39447d42b21dfcc0f16c28fcdfa6e
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
Variables were initiales based on the file name of the PROX
configuration files. These decisions are now based on the content of
these files and other variables, rather than just the name of a file.
This commit also fixes some bugs: irq test was not executing any more,
some issues with the push gateway reporting.
Change-Id: I39308effad3c80cf52d96e4d85d92d4b5f0be9a5
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
In case of kubernetes based deployments procedure for test environment
creation is different. Please refer to README.k8s file for more
details.
Dockerfile and dockerimage.sh files can be used to create a docker
image with prox.
There is separate createrapidk8s.py script which is used to create
appropriate number of PODs for testing based on the rapid.pods
configuration.
port_info is a helper application to identify port MAC address.
Change-Id: I73611f066ac54260aa11dd17c173379df06f46a5
Signed-off-by: Yury Kylulin <yury.kylulin@intel.com>
Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
|
|
Updated deploycentos.sh with latest PROX commit ID and took another code
review comment into account.
Change-Id: Iedfa695be7496459d990f36e2dc00c8890b19fb3
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
Implemented the code review comments I got on previous commits and using
commit ID 2cd03b7 to select the PROX version that will be installed in
the VMs through deploycentostools.sh
Change-Id: Ifc4c18c657a8bd57c68a7fc9d885c75ffdcb7b5d
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
Various code review comments taken into account. We also support now
background traffic, meaning the scripts will start a test between
machines and monitor packet loss, latency, etc., but at the same time,
the script will also start traffic on background machines. That traffic
will not be monitored. Each generator will generate the same ammoung of
traffic.
Change-Id: I5cd495be230a526f91de965f3d4dd0581681f5ca
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
When no sut_sock monitoring the swap, the while loop would never come to
an end. Also added heartbeat timeout in the generator config files.
Change-Id: I3c36991c65b9b826faf3d051a1354ca7eb34c24e
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
A new parameter bucket_size_exp in the *.test file specifies the bucket
size for latency measurement. The default is 11 which corresponds to a
bucket size of 1 usec for a 2GHz processor. This fix is also calculating
the bucket size based on the reported frequency. Before it was assuming
a 2GHz processor.
Change-Id: I70d15e90e151a7e474cd05c9ac91b71a11fd5c78
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
We are now reporting a percentile number for the round-trip latency. The
numbers are only correct for processors running at 2GHz. Will fix this
next so it runs for any freqency. We only report 1-127 usec. If the
latency goes higher, we are now reporting "VERY HIGH".
Change-Id: If9fda63cea8616febcc0f24dc52590976cf39f3d
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
Previously, there were 2 functions: run_flow_size_test and
run_fixed_rate. The functionality of run_fixed_rate is now added to
run_flow_size_test.
Change-Id: Ifda70b8088b9131cc6c034d8007825e6d0917682
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
The lacency accuracy warning is now given only taking into account
packets that were not dropped. Also fixed an error with the value of r
in the run_iteration function
Change-Id: Ic05fd2e4b8c59a4b7bcc131e981c08e0001436a6
Signed-off-by: Luc Provoos <luc.provoost@intel.com>
|
|
New test added TST009_Throughput.test allowing to run the throughput
benchmark as defined in ETSI GS NFV-TST 009. This change adds the binary
search algorithm as defined in the specification document.
Change-Id: I00e81a811a9c42b06136694fc1387bc59e954a28
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
Removed the remaining UUIDs from the centos.json file, making it easier
to reuse this file. This does require a recent version of the packer
tool. Updated the README accordingly and also added the --env option in
the packer alias, so that the OS_CLOUD variable is set when running
packer in the container. Updated rapid.vms with the security group name
used in the centos.json file.
Change-Id: I4f6815a3250811e336c14857e0ec5e7793a77acf
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
Fixing an error re-introduced in the swap.cfg file. The mempool size
needs to be bigger than the number of rx and tx descriptors (we need
some extra buffers in the mempool for other things than rx and tx
descriptors). The default number of tx and rx descriptors has been
changed in PROX to 2K. This initially went through the testing since
this is just giving a warning in the prox.log file for some PMDs. For
other PMDs, PROX will not start.
Also fixed an inconsistency in rapid.vms: name of the security group.
Change-Id: If95677bd6169a16da1b3b2a56d13936a854c385e
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
-Renamed monitorswap.test into corestats.test. This is a more generic
test case that can monitor the core statistics of all PROX instances
-New portstats.test which can monitor the port statistics of all PROX
instances
-Removed the tasks parameter in the [DEFAULT] section of the *.test
files. Runrapid.py is now scaning the PROX configuration files to
automatically detect the PROX tasks that are being used.
-There is now an option to add the PushGateway parameter in the
[Default] section of some *.test files. This will push the measurements
to the Gateway, so they can be used by tools like Grafana. The logging
of the data in a csv file has also been improved. Results can now be
found on the screen, in the RUN*.log files, in the *.csv files and are
being pushed to the PushGateway.
-In the *.test files, replaced the swapcores, irqcores and impaircores
by the cores parameter since they are not treated differently by the
code. For a generator, we are still using the gencores and latcores
parameters since we need to treat them differently in runrapid.py
-devbind.sh is removed from the repository since this file is now
created by runrapid.py
-renamed the rapidVMs.vms file into rapid.vms
-image is now built without ssh access for root. Only using centos user.
runrapid.py is now using centos user for ssh sessions. PROX tools are
strted using sudo
-using new DPDK, mb_lib and PROX versions as defined in
deploycentostools.sh
-installing missing yum-utils package in image
-added flowsize parameter to the impairtest
-added list of flowsizes to the fixed_rate testing (l3framerate.test)
-the irqtest can now loop through multiple Test Machines in stead of
only checking the irq of one. Note that we should have the same cores
parameter for all Test machines
-changes in prox_ctrl.py to support setting the speed of a generator on
a combination of mulitple cores and tasks. Also added the
multi_port_stats function to support the new portstats.test
-Updated version to 19.11.21
-Fixed some power of 2 in the flow table
Change-Id: Ia14543bf3195a2b1bd4184b455da6940f1777fc9
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
Change-Id: Ieff72073fff06818a5c5bc8fb9116461c95c2901
Signed-off-by: Illia Polliul <ipolliul@juniper.net>
|
|
A high number of RX descriptor can be helpful in avoiding
packet loss due to the core being interrupted.
This commit increases the default number of descriptors from 256 to 2K.
Those values are checked versus the minimum and maximum supported by the pmd.
Number of mbufs (mempool size) have been updated n config files to support this
default number of dsescriptors.
The number of descriptors can still be overwritten by the config file. However
those values must always remain within the limits reported by the pmd.
Change-Id: I5f7999eca886dad68f3c0733da0d796bf4c06a56
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
|
|
Taking into account comments from Patrice and Xavier
Change-Id: Ifdabd1945e074c9ee97b059956f107901392c020
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
Warnings can be printed in the following cases:
- When not enough packets are taken into account for measuring packet
latency accuracy.
- When there us a potential network throughput issue, meaning the generator
is generating more packets than the the NIC can handle
- When the generator cannot generate the requested load
If there are no warnings for a certain measurement, nothing gets printed,
suppressing an empty line
Change-Id: Iee07c12142e28dcc0ac406bfed7626731ab08f98
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
- Change inittest in warmuptest. This has now a warmuptime, warmupspeed,
packet size and flow size.
- Change in centos.json. This will now also copy deploycentostools.sh
during image building so that it can be used to re-compile prox in the VM
by typing "./deploycentostools.sh compile"
- runrapid.py parameters needing a file name, need to be complete file
names: no extensions will be added any more by the scripts.
- Changes in createrapid.py to handel the openstack CLI output in a
simpler way.
- The management interface of the VMs can now also be an SRIOV interface.
We have now an extra optional parameter in the VM sections of the
rapiVMs.vms file: SRIOV_mgmt_port
- Changed the name of some sections and keys in the environment file since
runrapid.py will not always communicate to OpenStack VMs. This could be
containers or any other (virtual) machine.
- The previous MachineMap.cfg has been renamed to machine.map
- A new test has been added: monitorswap is just showing the statistics of
a swap (virtual) machine, without generating any packets. This is useful
in situations where an external tester is used.
- Latency and core statistics can now be measured even if there are
multiple PROX cores and tasks running. A new parameter has been added in
the test files with following default value: tasks=[0]. During the
collection of statistics, all tasks in this list will be queried. It is
ok to have a non-existing task in such a query since it will be ignored.
- A --screenlog parameter was added for runrapid.py allowing for more
detailed output on the screen during debugging. No need to check the log
file.
- Previous tests to run multiple packet size with a given flow size and to
run multiple flow size, with a given packet size are now combined by
specifiying 2 lists: packetsizes & flows
- The screen output of this test has also been reworked with more
meaningful column names and the test result is now in the field "core
received". This allows also for faster termination of the test: When the
all packets sent by Gen NIC are received by the cores within the
thresholds for packet loss and latency, the test is now stopped, even we
were requesting more packets to be sent.
Change-Id: I3307e7a972f2140e739f376f146fe875df0303e6
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|
|
The scripts are orrignally written to support an OpenStack deployment.
We are now making changes to support container environments, hence
renaming the directory to rapid.
Change-Id: Icaa2fad83c6da451eee733934151e98e9cd07de4
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
|