summaryrefslogtreecommitdiffstats
path: root/VNFs
AgeCommit message (Collapse)AuthorFilesLines
2018-06-29Adding centos.json to be used with packer to generate a VM with PROXLuc Provoost16-84/+328
Based on a CentOS cloud image downloadable from the web, you can now use packer to create an image that has DPDK and PROX installed in the proper directories. The VM is also tuned for guest VNFs. A service is also created to deal with the proper isolated_cpu settings for tuned. The service will also make sure uio and igb_uio are loaded. The prox_user_data.sh is not needed any more and hence deleted. ctrl-c of runrapid.py will now also stop prox in all the VMs so a new test can be started. Change-Id: I16cc59878e2d4912757f42e05f98d51dff5feb89 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2018-06-29TempFix: vCGNAPT/vACL ipv4 perf issueDeepak S2-17/+38
Change-Id: I924fcac7a65c0d221d5d422f419deb9c0f864172 Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2018-06-29Temp Fix for vFW perf issueDeepak S1-8/+9
Change-Id: I324fcac7a65c0d221d5d422f419deb9c0f864172 Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2018-06-28Get multiple port stats simultaneouslyEmma Foley1-0/+44
JIRA: YARDSTICK-1220 Implemented new "multi port stats <port list>" command, which returns a semi-colon-separated list of comma-separated values: - port id - total (at last_tsc) for rx_pkts, tx_pkts, no_mbufs, ierrors + imissed - last_tsc Change-Id: I8a8da79cb4ccb245ccb38b50b561da51a40a359d Signed-off-by: Patrice Buriez <patrice.buriez@intel.com> (cherry picked from commit a9d9979b1f5b7435552ae884da69220a42b81f81) Signed-off-by: Emma Foley <emma.l.foley@intel.com>
2018-05-25Increase default mbuf size and code simplification/cleanupXavier Simonart18-98/+126
mbuf size was setup to achieve the best performance i.e. using the smallest mbuf and not segmenting packets. However this resulted in complex code, much dependent of the way the pmd are working e.g. a change(fix) in recent dpdk i40e implementation caused a 1782 (=1518+8+256) bytes mbuf to be too small to hold a 1518 bytes packets. Hence this change simplifies the mbuf size selection at the price of a potential decreases in performance - as more memory is now used. Except if jumbo frames are used, the mbuf size will now be the same for all modes. The packets will not be segmented except if jumbo frames are enabled. If jumbo frames are enabled, packets are by default segmented, except if the mbuf size is configured big enough in the config file. Change-Id: I222fcac7a65c0d221d5d422f419deb9c0f864172 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com> Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2018-05-25fix code standard in VNFs/DPPD-PROX/handle_esp.cIgor Shaula1-447/+443
Change-Id: I6c1a8f6d8e3bc84f7eb8e5780cde98dd9c03c805 Signed-off-by: Igor Shaula <igor.shaula@intel.com>
2018-04-26Fix crc offloads.opnfv-6.0.0Xavier Simonart2-8/+8
When configuring a port, prox configures queue flags. For historitical reasons, offloads had to be disabled on some pmds. There is now an API to query the ports and gets their capabilities. This fix sets now the flags based on the capabilities, and not the driver name. Change-Id: Ic72d15001992f26910f653c70d31e4381fff8089 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-04-26Support reading inline jumbo frame and dump themXavier Simonart6-8/+11
Add support for pkt_inline of jumbo frames. Dump the whole packet, and not a truncated packet. This might have a small impact on performance as the memory footprint is increased (by ~640K * number of tasks), resulting in potential higher DTLB misses. Change-Id: I4ed02be7ca899db4f8f97355c180a92d69d39d8f Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-04-26Add support for generation of jumbo framesXavier Simonart1-21/+59
Change-Id: I63af4e5c5c01a4412d517e33fc7111481fd0524a Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-04-26Support for dpdk-stable-17.11.1 cryptoIgor Shaula2-314/+312
Change-Id: I1a4aee3d550d007046be9d1677dd0ad980cb9817 Signed-off-by: Igor Shaula <igor.shaula@intel.com>
2018-04-26Fix memory leak introduced by 4a65cd84Xavier Simonart1-1/+4
Change-Id: I937bb38baa51d1902793fa8720a3ea740a583473 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-04-26Add support for multiple variables in core definitionXavier Simonart1-3/+4
In the [core] definition we were able to use one variable such as $core1 in [core $core1] but not [core ${core1}]. The second syntax is used when we want multiple variables such as in [core ${first_core}-${last_core}]. This second syntax is now supported. Change-Id: Ic94b84cb8cf827acb6697789cd180f41c3bdb028 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-04-20Fix link speed when link is down at startup.Xavier Simonart2-8/+40
When link is down at startup, the link_speed returned by DPDK is 0. This results in un-optimized latency estimates in gen and lat. With this fix, lat and gen do nothing until link_speed is properly initialized, and use the right link speed in the fast path. Change-Id: Id2d14b6966ccfac7cc78db3c5a74e704b42edae7 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-04-20Support async operation in handle_espXavier Simonart1-35/+102
Change-Id: Ibee77e31c0eb7a0e14e7aa0df092a278dfe75d6b Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-04-20Add support for reception of jumbo framesXavier Simonart3-39/+81
Jumbo frames are now supported through the addition of a "mtu" parameter of the port in the config file. Setting the mtu to a value higher than 1500 bytes will enable the reception of jumbo frames. In addition, the rte_eth_dev_set_mtu is now set for all pmds. Finally, setting mbuf_size does not set MEMPOOL_F_NO_SPREAD anymore. This option was only used for pure debugging. Big packets can be received using two ways - Using multiple "small" mbufs, i.e. around 2K. This is the default. - Using one big mbuf holding the whole packet. This can be enabled by setting a parameter mbuf_size in the receiving core configuration Change-Id: Idd60ad31f41c89f9522dff4d894af2696b7a2ea1 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-04-20Added missing file: rapidVMs.vmsLuc Provoost1-0/+31
This file describes flavors, flavor meta data and boot info. All this info can be defined in the [Default] section and will then be used by to create all VMs. This data can also be specified in individual VM sections to overule the deault values per VM. Change-Id: I9d59208360eacec2790e5c467d7afcbeba301251 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2018-04-20Add support for multiple GEN tasks running on the same coreIgor Shaula1-1/+1
resolve memory allocation issue Change-Id: I90bbf711a6a7a4869e5024c061470d9779839a60 Signed-off-by: Igor Shaula <igor.shaula@intel.com>
2018-04-20Add support for crypto on multiple coresIgor Shaula1-17/+95
* Experimental, for dpdk-stable-17.05.2 * New improved ESP decapsulation function Change-Id: If4862dacb3fcf53e21eb5932a195664f80c7c192 Signed-off-by: Igor Shaula <igor.shaula@intel.com>
2018-03-30Support additional MAC format in config fileIgor Shaula1-0/+2
Add support for space-divided bytes in MAC string. Support the same format as in "pkt inline". Change-Id: I7f2136c4424c45ce4abad4082470c9c9b1b3ab05 Signed-off-by: Igor Shaula <igor.shaula@intel.com>
2018-03-27Replaced heat stack yaml files by individual server creationLuc Provoost14-928/+188
There is now a new file (rapidVMs.vms) describing how many VMs need to be created. You can specify the same flavor values in the [DEFAULT] section or specify specific flavors per VM. The heat stack yaml files are removed. Change-Id: Ic5ec485e8344a35e9ac9f6e8347adbc70520d10a Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2018-03-23Trivial: fix trailing white-spacesPatrice Buriez1-2/+2
Makefile checks for some coding style rules. Previous commit introduced trailing white-spaces, which broke compilation. Change-Id: Ia57fc9b1428b4a9f8537dce4875e62ac55265fe3 Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
2018-03-16Merge "Fix potential crash if link speed is null"Deepak S2-2/+2
2018-03-05Fix minimum latencyXavier Simonart1-5/+11
Revert back part of commit 9fa316261d7d9 The function abs_diff was erroneously changed to diff_or_zero. This function was supposed to measure the difference between rx and tx time; when rx time overflowed and tx time not yet (i.e. rx time ~= 0 and tx_time ~=UINT32_MAX, this function added UINT32_MAX to rx_time. The name of the function was confusing and caused the previous commit. Net effect of previous commit was that every four seconds the minimum latency was 0 This commit reverse back to the original behavior, with a function name diff_time. Change-Id: Ia1b80e48a756cf5df411dcf58ca1cbc835214d13 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-02-27Fix potential crash if link speed is nullXavier Simonart2-2/+2
Link_speed could be null when prox started with the ports down. This was potentially causing a crash. Another task will need to update link speed when the port come up. Failing to do this results in less accurate latencies (no extrapolation) Change-Id: I597b68e30117e6edb9ccb4732c2acedd5eb8ac80 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-02-22Merge "Fixed the calculation of dropped packets and other changes"Deepak S11-93/+142
2018-02-22Merge "Add support for comments in configuration variables"Deepak S3-9/+15
2018-02-22Merge "Fix latency accuracy and dumping latencies to file"Deepak S4-94/+194
2018-02-21Fixed the calculation of dropped packets and other changesLuc Provoost11-93/+142
* Calculation of aboslute and relative dropped packets was wrong and is now fixed. * ./createrapid.py has now an extra option to select custom availability zones for the different VMs. * Fixed a typo to create the flavor: hw:cpu_thread_policy * The generator config files have now the packet id & signature fields. See PROX for more details on this. * ./runrapid has now a new option --configonly. Default is False. If set to True, all configuration files will be copied to the VMS, but the tests are not started. This allows you to go to the VMs and manually start PROX. * In addition to the average latency, maximum latency is now also displayed. Change-Id: I3bbd7897deb6e452068c07ef68d3959ffa4a4b50 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2018-02-15Fix latency accuracy and dumping latencies to fileXavier Simonart4-94/+194
- Also changed lat_info.tx_packet_index to uint64_t, so also did it for task_lat.prev_tx_packet_index and n_loss. - Adjusted format strings accordingly, and fixed some other formats. - Adjusted overflow increment to 2^32 (i.e. UINT32_MAX + 1). - Replaced hard-coded 64 with ACCURACY_BUFFER_SIZE (still hard-coded in handle_gen.c). Change-Id: Ia59f36e17c0797a2a958dbe3b2ac420263473524 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com> Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
2018-02-15Add support for comments in configuration variablesXavier Simonart3-9/+15
This feature will enable the possibility to have many cores configured in a prox config file, and enable/disable them through variables. For instance, a [core $var1] section in a config file will result in [core 1] if $var1 = 1; the whole section and section content will be ignored if $var1=# Before this implementation, [#core 1] or [core #] was already treated as a commented out section (the whole section was commented). But there was no way to define a variable $var = # to comment a section through a variable. Note that in today's implementation any non numerical (except s, h, t, -) characteter in the [core] section header (and not only #) will cause the section to be ignored. It would probably be better to consider # (as maybe N/A and none) as comments, and everything else as error. This is however not supported by the change request. Change-Id: Id4e2b27a1f9b6d595e0b442dcd971ad44a502031 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-02-15Merge "Fix potential crash in rx and tx distribution"Deepak S3-4/+13
2018-02-13Fix potential crash in rx and tx distributionXavier Simonart3-4/+13
In some (rare) modes, more than 64 packets can be received through one rx function. This is for instance the case of the lat mode. Change-Id: Ie733c927a8e116c679c464f2551768185ef85366 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-02-12Zero packet loss testing has been added.Luc Provoost12-72/+277
Using l2 testing, where no ARP messages are being used, you can now run a zero packet loss test. The binary search will continue to find the speed where absolutely no packets have been lost during the test. On top of that, the output has been reformatted to also show the absolute and relative packet loss. The *.test files have now 2 new parameters: drop_rate_treshold and accuracy. When drop_rate_treshold is set to 0, this test will conclude successfull when no packet has been lost whatsoever. If this is set to any other number, the test will be successfull when the relative packet loss is lower than drop_rate_treshold. The new accuray parameter defines when the binary search will stop: when the relative difference between the min and max of the search window is lower than accuracy. The irq testing is slightly modified to print the total number of interrupts in a certain time bucket, not only as the number per second, but when there is no interrupt whatsowever, we print '0' in stead of '0.0' Change-Id: I8fafded0a225cbe1ba7ac61cd28e94d72099e4a0 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2018-02-04Fixed issues with the pkt_size commandLuc Provoost5-70/+219
Fixed issues with pkt_size. For a 64 byte packet, we need to issue pkt_size <core> <task> 60 4 extra bytes will be calculated and added automatically by PROX Also added the missing irq.test and irq.cfg files Added support for OpenStack systems not using floating IP addresses Change-Id: I05d775eb858a58dd349ea370a0e34ac6448590c9 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
2018-01-29Rework of the test cases in the *.test filesProvoost18-107/+211
Cores can now be specified in the test files. An irq test has been added to verify if the VMs are not suffering from long interrupts. Change-Id: I647fda3ebf76c7c2b36a8df9a63d9fb83563c249 Signed-off-by: Provoost <luc.provoost@intel.com>
2018-01-25Merge "Fix dumping receive packets"Deepak S2-5/+15
2018-01-25Merge "Integrate irq mode into PROX (support display and command line)"Deepak S15-61/+556
2018-01-24Fix extrapolation used in latency measurementsXavier Simonart3-11/+48
When doing latency measurements PROX takes into account the generation or reception of a bulk of packets. For instance, if PROX receives at time T 4 packets, it knows that the first packet was received by te NIC before T (the time to receive the other 3 packets, as they were received at maximum link speed). So the latency data is decreased by the minimum time to receive those 3 packets. For this PROX was using a default link speed of 10Gbps. This is wrong for 1Gbps and 40Gbps networks, and was causing for instance issues on 40 Gbps networks as extrapolating too much, resulting in either too low latencies or negative numbers (visible as very high latencies). Change-Id: I4e0f02e8383dd8d168ac50ecae37a05510ad08bc Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-01-16Integrate irq mode into PROX (support display and command line)Xavier Simonart15-61/+556
irq mode can be used to show how a core is interrupted by other tasks. This mode does not handle packets. It only loops reading tsc. When the difference between two consecutive calls to rdtsc() is high then it means the core was interrupted. This task implementes the display, so that we can see a histogram of interrupts as well as the maximum, per core. Command line is also supported, through "show irq buckets" (too show the intervals of each buckets, in micrcoseconds), and the stats command line (showing the number of items in each buckets and the max).. Change-Id: I153cc3deaa7b86ae2776ea44e46ef9ecfd116992 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-01-16Fix dumping receive packetsXavier Simonart2-5/+15
There were two issues identified in dump receive packets - when the receive packets was going to be dropped (and not transmitted), it was also printed as TX[255]. - a potential crash when using the dump function with modes like lat which can receive more than MAX_RING_BURST. Those issues have been fixed. Change-Id: Ia2297539d64961a211389d68e3c9c6280472243c Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-01-16Merge "Add support for DPDK 17.11"Deepak S16-68/+250
2018-01-16Merge "Add config option to use port mac as src mac in l2fwd and swap"Deepak S3-27/+39
2018-01-16Merge "Fix using signature in latency measurements"Deepak S1-0/+3
2018-01-16Merge "Fix stacking of rx receive functions"Deepak S2-10/+11
2018-01-16Merge "Fix potential crash when issuing "tx distr stop" command."Deepak S1-2/+2
2018-01-08Fix using signature in latency measurementsXavier Simonart1-0/+3
When doing latency measurements the generator can add a 32 bits signature in the packet at a specific location, so that the receiver only uses the packets generated by the generator and ignores packets generated for instance by a switch The is particuly important for latency measurements as we use data in the packets as timestamps, and packets generated elsewhere would result in random latency for those packets. Change-Id: I8352b35aff76ec8d1344a1e492b9dcc20a53f1ce Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-01-08Fix stacking of rx receive functionsXavier Simonart2-10/+11
PROX can stack different RX functions, so that they are executed after each other. This feature is for instance used to dump packets or to print distribution of receive packets, without influencing the performance of the rx functions when no dump or print is needed. The previous implementation was wrong and causing some of the stacked functions not to be executed. This was causing for instance issues in latency measurement after enabling dumping packets. Change-Id: I766b8ee8e8852fa17cdaf60ee6e1fec0dc98c719 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-01-05Merge "Initialize fields of outer IP header"Deepak S1-5/+4
2018-01-04Fix potential crash when issuing "tx distr stop" command.Xavier Simonart1-2/+2
Change-Id: I9ef89020d203674f6c3301653ab2ff9d623665b6 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-01-04Add config option to use port mac as src mac in l2fwd and swapXavier Simonart3-27/+39
L2fwd and swap has many options to set src mac. swap was supposed to support the ability to use port mac, but config file parsing was wrong. L2fwd was using port mac if a port was available and if src mac=packet or if there was no src mac in the config. Now l2fwd supports the following options - "src mac=xx:xx:xx:xx:xx:xx" => this mac address is used as src mac. - "src mac=packet" => the src mac is taken from the dst mac of the received packet. - "src mac=hw" => the src mac is taken from the mac address of the port, if there is a physical port. Error otherwise. - "src mac=no" => src mac kept untouched - No "src mac" => same as "src mac=hw" if there is a physical port and same as "src mac=packet" otherwise. Default is (no "src mac") hence the mac is taken from the tx port if there is one tx port and from the packet otherwise. swap support is similar, except that it does not support "src mac=no". Change-Id: I70fe49a61c2e85772288b769ede14a7a6205d122 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>