samplevnf.git
5 years agoPROX generator: performance optimization (2/4) 05/67205/1
Xavier Simonart [Mon, 4 Mar 2019 13:50:04 +0000 (14:50 +0100)]
PROX generator: performance optimization (2/4)

Improve PROX generator performance by pre-calculating bytes_to_tsc.
This improvement is only implemented for non-pcap
generator, where only few different packet sizes are usually generated.

This change might have a negative performance impact in some cases, if
many different packet sizes are generated, resulting in higher memory usage.
This is the case for instance if random is applied to packet size.

In addition, simplified the rx path, receiving now only MAX_PKT_BURST packets
per handle loop.
Before we were trying to empty the NIC looping on RX packets, ending up
with many rx packets per handle loop. This was used to determine an lower bound
for the time the packet was received.
We now set the lower bound when less than MAX_PKT_BURST has been received.

Change-Id: I1ce813d7e4ac1577ea412c590add5d6f94b36ec7
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoPROX generator: performance optimization (1/4) 04/67204/1
Xavier Simonart [Mon, 4 Mar 2019 13:21:19 +0000 (14:21 +0100)]
PROX generator: performance optimization (1/4)

Improve PROX generator performance by
- Cleanup some old code checking for unset flags

Change-Id: Icd7ff0a8d17f11f1a1bd09bef4fb40574257c093
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoMerge changes Iaad9c95e,Iccd9c95e
Deepak S [Mon, 4 Mar 2019 05:39:34 +0000 (05:39 +0000)]
Merge changes Iaad9c95e,Iccd9c95e

* changes:
  Proposing Patrice Buriez a commiter in SampleVNF
  Proposing Xavier Simonart as a commiter in samplevnf

5 years agoMerge "Use link speed from device capability instead of negotiated speeda"
Deepak S [Mon, 4 Mar 2019 05:31:42 +0000 (05:31 +0000)]
Merge "Use link speed from device capability instead of negotiated speeda"

5 years agoMerge "Fixed typo in setting up ARP timers"
Deepak S [Mon, 4 Mar 2019 05:31:33 +0000 (05:31 +0000)]
Merge "Fixed typo in setting up ARP timers"

5 years agoMerge "Added use case "Forwaring Rate At Maximum Offered Load""
Deepak S [Mon, 4 Mar 2019 05:31:24 +0000 (05:31 +0000)]
Merge "Added use case "Forwaring Rate At Maximum Offered Load""

5 years agoMerge "Add check for configuration error (not enough mbuf)"
Deepak S [Mon, 4 Mar 2019 05:31:06 +0000 (05:31 +0000)]
Merge "Add check for configuration error (not enough mbuf)"

5 years agoUse link speed from device capability instead of negotiated speeda 51/66151/5
Xavier Simonart [Wed, 19 Dec 2018 14:30:38 +0000 (15:30 +0100)]
Use link speed from device capability instead of negotiated speeda

JIRA: SAMPLEVNF-151

link speed is used in gen and lat latency extrapolations.
Using a link_speed value lower than the actual link speed
might result in errors (e.g. negative latencies).
Negotiated link speed might be reported slowly (as reported through irq)
Hence it is better to use the device capability link speed.
In addition, this remove the check for link speed changes in fastpath.

Change-Id: I0f475fe5e139b046012de6cd0b710e4390735078
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoGambia 7.2 release notes update 47/66947/2
Deepak S [Tue, 12 Feb 2019 08:51:32 +0000 (14:21 +0530)]
Gambia 7.2 release notes update

Change-Id: I255c87b0c18565da479ecaa08e5ffce91232a7ce
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
5 years agoProposing Patrice Buriez a commiter in SampleVNF 83/66883/1
Deepak S [Thu, 7 Feb 2019 16:23:52 +0000 (21:53 +0530)]
Proposing Patrice Buriez a commiter in SampleVNF

Patrice has contributed greatly to SampleVNF E/F/G release.

Achievement/Contributions include:
 - Provided quite many high-quality review comments.
 - Enhanced PROX VNF and added new feature to PROX.
 - Fixed multiple Bugs in PROX VNF.
 - Jenkins verify test evolvement.
 - SampleVNF Architecture Improvement.

https://gerrit.opnfv.org/gerrit/#/q/owner:%22Patrice+Buriez%22

Change-Id: Iaad9c95e856269277ff09572e92e9fda7288734e
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
5 years agoProposing Xavier Simonart as a commiter in samplevnf 81/66881/1
Deepak S [Thu, 7 Feb 2019 16:16:55 +0000 (21:46 +0530)]
Proposing Xavier Simonart as a commiter in samplevnf

Xavier Simonart has contributed greatly to SampleVNF E/F/G release.

Achievement/Contributions include:
 - Provided quite many high-quality review comments.
 - Enhanced PROX VNF and added new feature to PROX.
 - Fixed multiple Bugs in PROX VNF.
 - Jenkins verify test evolvement.
 - SampleVNF Architecture Improvement.

https://gerrit.opnfv.org/gerrit/#/q/owner:%22Xavier+Simonart%22+project:samplevnf

Change-Id: Iccd9c95e856269277ff09572e92e9fda7288734e
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
5 years agoFixed typo in setting up ARP timers 89/66889/1
Xavier Simonart [Thu, 7 Feb 2019 13:02:42 +0000 (14:02 +0100)]
Fixed typo in setting up ARP timers

Change-Id: I5b550a42b27d697f77c4bafab890ba57279f8d13
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoAdd check for configuration error (not enough mbuf) 87/66887/1
Xavier Simonart [Wed, 23 Jan 2019 13:26:01 +0000 (14:26 +0100)]
Add check for configuration error (not enough mbuf)

Number of mbufs must at least cover for number of rx descriptors,
number of tx descriptors, number of mbuf cached and number of
mbufs handled by the application.

If this is not the case, a warning is returned.

This ony check for the more basic cases. This will not check for
instance for cases with multiples rings where more mbufs might be
cached.

Change-Id: If2c0c9fc76ed4500849d92cf7586bb0b25d8ab22
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoAdded use case "Forwaring Rate At Maximum Offered Load" 85/66885/1
Xavier Simonart [Wed, 6 Feb 2019 14:41:51 +0000 (15:41 +0100)]
Added use case "Forwaring Rate At Maximum Offered Load"

With this use case, the generator is generating at maximum speed
We measure the forwarding rate.

Throughput, latency, number of packets sent and received are printed
every seconds.

Change-Id: I05eb874d6ecefd58fb0c876bccf6a32872306076
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoMerge "Fix memory leak in L3 submode"
Deepak S [Thu, 7 Feb 2019 10:40:15 +0000 (10:40 +0000)]
Merge "Fix memory leak in L3 submode"

5 years agoMerge changes from topic 'fix_non_dataplane_pkt_count'
Deepak S [Thu, 7 Feb 2019 10:38:42 +0000 (10:38 +0000)]
Merge changes from topic 'fix_non_dataplane_pkt_count'

* changes:
  Prevent dropping ARP packets
  Do not add count of non dataplane packets to dropped count

5 years agoMerge "Add support for configurable arp timers in L3 mode"
Deepak S [Thu, 7 Feb 2019 10:38:20 +0000 (10:38 +0000)]
Merge "Add support for configurable arp timers in L3 mode"

5 years agoFix memory leak in L3 submode 87/66787/1
Xavier Simonart [Wed, 30 Jan 2019 14:27:20 +0000 (15:27 +0100)]
Fix memory leak in L3 submode

In L3 submodes, there were two memory leaks
- when a L3 core was restarted, causing around 2MB leak and a
  potential issue after 256 start/stop
- a potential mbuf leak when handling arp replies

Those have been fixed

Change-Id: I348478fa5967936297850432e93667e12b0adac4
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoAdd support for configurable arp timers in L3 mode 95/66695/4
Xavier Simonart [Thu, 13 Dec 2018 11:52:02 +0000 (12:52 +0100)]
Add support for configurable arp timers in L3 mode

L3 mode supports two timers:
- arp_update_time, defaulted to 1 second, which makes PROX to send
  arp request every second for active flows
- arp_timeout, previously defaulted to 30 seconds, which makes PROX
  consider a MAC address as invalid if no arp_reply was received
  within those 30 seconds.

Those timers values were hardcoded. They can now be configured through
the configuration file (within the core section), using resp.
"arp update time" and "arp timeout" keywords. Unit is milli seconds.
The default becomes respectively 1 second and 2 weeks.

Change-Id: I35e46e97df32ca44c2cdfae85a20ee015de5d6e1
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoConfigure RSS hashing to IP/UDP and check for with PMD support 13/66713/1
Xavier Simonart [Wed, 23 Jan 2019 12:51:47 +0000 (13:51 +0100)]
Configure RSS hashing to IP/UDP and check for with PMD support

RSS was enabled when rss=yes is set in the configuration or
when multiqueue is being used.
But when RSS was enabled the types of packets on which RSS
hashing was applied might not be supported by the PMD, as
almost every PMD supported a different set of packets.

Change-Id: I1d9516da61df7ef18c1d6953879ee15e33fca077
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoClean up port initialization 11/66711/1
Xavier Simonart [Wed, 23 Jan 2019 12:49:58 +0000 (13:49 +0100)]
Clean up port initialization

Change-Id: Ia9df816d522e5db460d9129109525d5d345d997f
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoImproved image build & packet loss measurements 51/66251/1
Luc Provoost [Mon, 7 Jan 2019 09:41:07 +0000 (10:41 +0100)]
Improved image build & packet loss measurements

Reworked deploycentos1.sh and deploycentos2.sh which is installing
a PROX version that deals with non data plane packet counting for
improved packet loss measurements. Fixed some issues with the packer
scripts.

Change-Id: I64aab09d364ab5abbbc5fc75c73afcbe11fed681
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
5 years agoPrevent dropping ARP packets 57/66157/1
Xavier Simonart [Wed, 26 Dec 2018 14:26:27 +0000 (15:26 +0100)]
Prevent dropping ARP packets

JIRA: SAMPLEVNF-152

When system is overloaded, ARP packets were sometimes dropped, as any
other packets.
This was causing two issues:
- The count of TX non dataplane packets was wrong
- If many consecutive ARP packets were dropped, the underlying switch might
  see its ARP timer expiring, causing performance degradation (packets being
  broadcasted).
ARP packets are now always sent as no-drop.

Change-Id: I9a86cbf8c4b56a178f86bc789153f1fa49ddf73f
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoDo not add count of non dataplane packets to dropped count 55/66155/1
Xavier Simonart [Thu, 20 Dec 2018 21:01:40 +0000 (22:01 +0100)]
Do not add count of non dataplane packets to dropped count

RX packets count = TX count + dropped (handled + discarded) count +
non dataplane packets count.
Hence non dataplane packets such as unexpected packets (e.g. dhcp request)
should not b considerded as handled.

Change-Id: I45cef19fed09bb4f86644d56d689a0959a9038db
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoMerge "Fix handing configuration error (missing tx port or ring in gen mode)"
Deepak S [Tue, 18 Dec 2018 15:06:44 +0000 (15:06 +0000)]
Merge "Fix handing configuration error (missing tx port or ring in gen mode)"

5 years agoMerge changes from topic 'fix_multiple_arp_issues'
Deepak S [Tue, 18 Dec 2018 15:06:09 +0000 (15:06 +0000)]
Merge changes from topic 'fix_multiple_arp_issues'

* changes:
  Fix arp handling when master core is on socket 1
  Add support for zero packet loss in PROX L3 mode.
  Fix issue in l3 mode when no arp reply was received
  Clean up debugging messages

5 years agoFix handing configuration error (missing tx port or ring in gen mode) 03/65803/2
Xavier Simonart [Thu, 13 Dec 2018 12:02:36 +0000 (13:02 +0100)]
Fix handing configuration error (missing tx port or ring in gen mode)

Gen mode requires a tx ring or a tx port. A configuration without those
should gracefully report an error. This was causing a crash.

Change-Id: Ia30d4d4c87a694da1dfed86587f90b9199c493ab
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoGambia 7.1 release notes update 97/65797/1
Deepak S [Thu, 13 Dec 2018 20:32:14 +0000 (02:02 +0530)]
Gambia 7.1 release notes update

Change-Id: I145c87b0c18565da479ecaa08e5ffce91232a7ce
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
5 years agoFix arp handling when master core is on socket 1 21/65421/2
Xavier Simonart [Tue, 27 Nov 2018 13:58:02 +0000 (14:58 +0100)]
Fix arp handling when master core is on socket 1

When master core was on socket 1, the rings setup to exchange
messages related to arp between dataplane cores and master core
was not properly setup, resulting in arp not working.

Change-Id: Icc08df81f2e39e53de7c212248cdc7b78d7e2618
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoAdd support for zero packet loss in PROX L3 mode. 25/65425/3
Xavier Simonart [Tue, 27 Nov 2018 14:33:20 +0000 (15:33 +0100)]
Add support for zero packet loss in PROX L3 mode.

In L3 mode, prox is extracting IP destination address in the packets.
It uses this destination address to find the MAC address.
If the MAC address is not found, it sends a ARP request.

It also sends ARP request when it realizes that some timeout expired.
However, PROX was using the mbuf of the existing packets (to be forwarded)
to send the ARP. This resulted in packet loss.

Now PROX is generating ARP requests using mbuf from an ARP mempool.
Some clean up was also done.

Change-Id: Icb6083a8cdf88789553ad23c32ca12d6b7ba7f08
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoFix issue in l3 mode when no arp reply was received 23/65423/3
Xavier Simonart [Tue, 27 Nov 2018 14:03:21 +0000 (15:03 +0100)]
Fix issue in l3 mode when no arp reply was received

When no arp reply was received in l3 mode, the requesting core
continuously sends ARP requests every seconds (which is correct).
But master core was keeping a list of all requests, while all
those requests are the same, resulting in potential table overflow.

Change-Id: I13aa1ec4ea88404a690a25678fb6ec72df19a9b9
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoClean up debugging messages 19/65419/2
Xavier Simonart [Tue, 27 Nov 2018 13:54:49 +0000 (14:54 +0100)]
Clean up debugging messages

Print IP address in a.b.c.d format instead of one 32-bit number.
Better align debugging information in log file

Change-Id: Icfab30836ba83d53f700fcfbdfbd7cf238ed7bf8
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoMerge "Fix potential crash when getting device info"
Deepak S [Thu, 6 Dec 2018 02:59:38 +0000 (02:59 +0000)]
Merge "Fix potential crash when getting device info"

5 years agoMerge "Add support for VLAN insert and stripping"
Deepak S [Thu, 6 Dec 2018 02:59:29 +0000 (02:59 +0000)]
Merge "Add support for VLAN insert and stripping"

5 years agoAdd support for VLAN insert and stripping 67/64467/2
Xavier Simonart [Sun, 4 Nov 2018 16:29:43 +0000 (17:29 +0100)]
Add support for VLAN insert and stripping

JIRA: SAMPLEVNF-149

VLAN can be enabled on a port by adding "vlan=yes" in the port section.
When VLAN is enabled on a port, then DEV_RX_OFFLOAD_VLAN_STRIP
and DEV_TX_OFFLOAD_VLAN_INSERT are enabled (if device supports it).
This will cause VLAN to be stripped from any packets received with
the proper tag, and VLAN to be added for any packets being transmitted.
The VLAN ID themselves are configured through the physical function
using something like (where ens801f1 isthe PF):
ip link set ens801f1 vf 0 vlan 1111

Change-Id: I945c87b0c18565da479ecaa08e5ffce91232a7ce
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoAdd index.rst 97/64997/1
Aric Gardner [Sat, 10 Nov 2018 21:15:16 +0000 (16:15 -0500)]
Add index.rst

We need an index file so that

https://opnfv-samplevnf.readthedocs.io/en/latest/

can build

Change-Id: I81a98f5264f8ffef0e157610c75f7a172278bcc7
Signed-off-by: Aric Gardner <agardner@linuxfoundation.org>
5 years agoFix potential crash when getting device info 65/64465/1
Xavier Simonart [Sun, 4 Nov 2018 16:23:32 +0000 (17:23 +0100)]
Fix potential crash when getting device info

In some cases, like when using virtual functions, getting device
info return a NULL device, which was potentially causing a crash.

Change-Id: Icc65f35bb54cd7d9bd8d837b3d6ec7ebb48b7c5e
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoUpdating release notes for Gambia... 13/64413/1
Deepak S [Fri, 2 Nov 2018 09:36:25 +0000 (15:06 +0530)]
Updating release notes for Gambia...

Change-Id: Ide712ee94254b506a0ad88c95a7e01b789f00e48
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
5 years agoAdd Gambia release notes 41/64341/1
Deepak S [Wed, 31 Oct 2018 23:46:33 +0000 (05:16 +0530)]
Add Gambia release notes

Change-Id: Ide712ee94254b506a0ad88c95a7e01b789f99d49
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
5 years agoMerge "Add support for counting non dataplane related packets"
Deepak S [Wed, 31 Oct 2018 17:45:16 +0000 (17:45 +0000)]
Merge "Add support for counting non dataplane related packets"

5 years agoMerge "Fix potential crash when shuffling mbufs"
Deepak S [Wed, 31 Oct 2018 17:44:59 +0000 (17:44 +0000)]
Merge "Fix potential crash when shuffling mbufs"

5 years agoSupport for DPDK 18.05 and DPDK 18.08 13/64313/1
Xavier Simonart [Sat, 27 Oct 2018 14:26:26 +0000 (16:26 +0200)]
Support for DPDK 18.05 and DPDK 18.08

Improve DPDK 18.05 support introduced by 3e532aca.
Support for DPDK 18.08.

Change-Id: Ide712ee94254b506a0ad88c95a7e01b789f99d48
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoFix potential crash when shuffling mbufs 21/64121/2
Xavier Simonart [Sun, 28 Oct 2018 14:54:28 +0000 (15:54 +0100)]
Fix potential crash when shuffling mbufs

Change-Id: I70de6345afc6a696906f006c1b0f44540ae4ecec
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoAdd support for counting non dataplane related packets 23/64123/2
Xavier Simonart [Mon, 22 Oct 2018 13:46:23 +0000 (15:46 +0200)]
Add support for counting non dataplane related packets

When performing some zero packet loss performance testing on dataplane, it
is important (not) to count non dataplane packets. For instance, one might
receive uexpected packets from a switch, or ARP packets. Or one might need
to transmit ARP packets. Such packets should not be counted as dataplane
packets as for thse packets there is no 1:1 mapping between transmitted
packets and received packets.
To support this, the counters reporting numbers of transmitted and received
packets remain unchanged but two new counters have been added to PROX,
counting respectively number of received and number of transmitted
non-dataplane packets.
On RX side, packets are counsidered as non-dataplane if being ARP or if
they do not countain the proper signature
On TX side, ARP packets are not considered as dataplane packets.
This feature requires configuration of signature.
"dp core stats" command has been added

Change-Id: I98e113cd02f36d540383d343a433592867ad86a9
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agotest improvements and fixes for image creation 19/63419/1
Luc Provoost [Thu, 11 Oct 2018 16:23:20 +0000 (18:23 +0200)]
test improvements and fixes for image creation

Updated and corrected the creation of an image containing the PROX
tool with packer.
Test will now only be declared successful when average and maximum
latency are below a certain threshold.
The start speed is now also a parameter of the *.test files.

Change-Id: I1112555c87e7a857e1c699921ae08f61281642e1
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
5 years agoLocal Documentation Builds 99/62499/1
Aric Gardner [Tue, 18 Sep 2018 15:05:14 +0000 (11:05 -0400)]
Local Documentation Builds

    This adds configuration for performing local documentation builds
    with the following simple command:

    tox -e docs

Change-Id: I84d69542d8c603e72d4af460834134d9711ac537
Signed-off-by: Aric Gardner <agardner@linuxfoundation.org>
5 years agoImprove l3fwd performance 19/61819/2
Xavier Simonart [Tue, 4 Sep 2018 09:58:36 +0000 (11:58 +0200)]
Improve l3fwd performance

JIRA: SAMPLEVNF-128

Improve performance of l3fwd use-case.
L3fwd did not disable TX offload flags, which resulted in
non-vector mode to be used in pmd in some cases like bare-metal.
Note that in some cases such as virtio, vector mode was already
used as OVS reports that it does not support TX-offload, hence
TX-offload was already disabled on virtio.
Using vector mode usually brings higher performance.

Change-Id: I102b846d604a9cf28c6b7dae8bedbe918ccfcf6c
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
5 years agoWorkaround DPDK net/virtio queue setup issue 73/61773/2
Patrice Buriez [Mon, 3 Sep 2018 16:55:24 +0000 (18:55 +0200)]
Workaround DPDK net/virtio queue setup issue

JIRA: SAMPLEVNF-127

PROX was crashing in the VM with vector mode enabled and multiple OVS
queues. This was not really a PROX bug, but a DPDK issue, which has been
fixed by DPDK commit https://git.dpdk.org/dpdk/commit/?id=efc83a1e7fc3
This "net/virtio: fix queue setup consistency" is included in DPDK 17.11
and subsequent versions, and has been backported into:
- DPDK 16.11.4:
  https://git.dpdk.org/dpdk-stable/commit/?h=16.11&id=516447a5056c
- DPDK 17.08.1:
  https://git.dpdk.org/dpdk-stable/commit/?h=17.08&id=907fe4fc263e

This means the fix is not included into any DPDK 17.02.x used by NSB.
Fortunately, a simple workaround consists of calling
rte_eth_tx_queue_setup() before rte_eth_rx_queue_setup().

This change implements this simple workaround, in order to make PROX
work, even with unfixed DPDK versions.

Change-Id: I818e9bb812babe023c6b7225c8b9769a359d9bec
Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
5 years agoupdate from src port in the pvt/pub handler 75/60775/1
Deepak S [Thu, 9 Aug 2018 05:00:51 +0000 (10:30 +0530)]
update from src port in the pvt/pub handler

Change-Id: Iccd72f6ab3db68bc093c42d60d225fe86f8fbda7
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
5 years agoEnable the local cache mac address 95/60695/1
Deepak S [Tue, 7 Aug 2018 03:20:01 +0000 (08:50 +0530)]
Enable the local cache mac address

Change-Id: If7d72f6ab3db68bc093c42d60d125fe86f8fbda7
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
5 years agoMerge "Initial support for DPDK 18.05"
Deepak S [Fri, 27 Jul 2018 16:13:49 +0000 (16:13 +0000)]
Merge "Initial support for DPDK 18.05"

5 years agoInitial support for DPDK 18.05 45/59545/3
Xavier Simonart [Wed, 4 Jul 2018 09:46:25 +0000 (11:46 +0200)]
Initial support for DPDK 18.05

This patch makes PROX compile with DPDK 18.05.
However some features are disabled or will not work as expected
such as:
"mem info" command
"police" mode
Those will need to be fixed later (see DPDK1805 within code).

Change-Id: Ie7d72f6ab3db68bc093c42d60d125fe86f8fbda7
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
5 years agoFix potential crash with latency accuracy 93/59593/1
Patrice Buriez [Sat, 7 Jul 2018 12:03:32 +0000 (14:03 +0200)]
Fix potential crash with latency accuracy

Detect, remember and skip bad/unexpected packets:
- too short to hold the latency-related values
- with bad signature
- with invalid generator_id
using a uint64_t-based bitmap.

Also moved variable declarations closer to usage,
added some likely/unlikely hints,
reworked some return statements, and
fixed 32-bit overflow (every ~4s) of rx_time_err computation.

Change-Id: Ib2aadc1af6b7a68601cc080ba66b10d41ff9a64e
Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
5 years agoUpdating release notes for OPNFV Fraser 6.2 05/59305/1
Deepak S [Fri, 29 Jun 2018 12:24:06 +0000 (17:54 +0530)]
Updating release notes for OPNFV Fraser 6.2

Change-Id: I9a9da79cb4ccb245ddb38b50b561da51a40a359d
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
5 years agoMerge "TempFix: vCGNAPT/vACL ipv4 perf issue"
Deepak S [Fri, 29 Jun 2018 06:53:05 +0000 (06:53 +0000)]
Merge "TempFix: vCGNAPT/vACL ipv4 perf issue"

5 years agoMerge "Temp Fix for vFW perf issue"
Deepak S [Fri, 29 Jun 2018 06:53:01 +0000 (06:53 +0000)]
Merge "Temp Fix for vFW perf issue"

5 years agoAdding centos.json to be used with packer to generate a VM with PROX 13/58613/2
Luc Provoost [Fri, 15 Jun 2018 20:39:28 +0000 (22:39 +0200)]
Adding centos.json to be used with packer to generate a VM with PROX

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>
5 years agoAdding support for Ubuntu 17.10... 47/58447/1
Deepak S [Tue, 12 Jun 2018 15:37:59 +0000 (21:07 +0530)]
Adding support for Ubuntu 17.10...

Change-Id: I9a9da79cb4ccb245ccb38b50b561da51a40a359d
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
5 years agoGet multiple port stats simultaneously 45/58345/1
Patrice Buriez [Thu, 7 Jun 2018 17:04:48 +0000 (19:04 +0200)]
Get multiple port stats simultaneously

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>
5 years agoTempFix: vCGNAPT/vACL ipv4 perf issue 25/58225/1
Deepak S [Tue, 5 Jun 2018 14:14:01 +0000 (19:44 +0530)]
TempFix: vCGNAPT/vACL ipv4 perf issue

Change-Id: I924fcac7a65c0d221d5d422f419deb9c0f864172
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
5 years agoTemp Fix for vFW perf issue 63/58163/1
Deepak S [Sat, 2 Jun 2018 22:06:25 +0000 (03:36 +0530)]
Temp Fix for vFW perf issue

Change-Id: I324fcac7a65c0d221d5d422f419deb9c0f864172
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
6 years agoUpdating release notes for OPNFV Farser 6.1 65/57865/1
Deepak S [Fri, 25 May 2018 09:14:36 +0000 (14:44 +0530)]
Updating release notes for OPNFV Farser 6.1

Change-Id: I333fcac7a65c0d221d5d422f419deb9c0f864172
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
6 years agoIncrease default mbuf size and code simplification/cleanup 09/56709/3
Xavier Simonart [Wed, 25 Apr 2018 23:03:05 +0000 (01:03 +0200)]
Increase default mbuf size and code simplification/cleanup

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>
6 years agofix code standard in VNFs/DPPD-PROX/handle_esp.c 07/57407/1
Igor Shaula [Tue, 15 May 2018 15:47:45 +0000 (17:47 +0200)]
fix code standard in VNFs/DPPD-PROX/handle_esp.c

Change-Id: I6c1a8f6d8e3bc84f7eb8e5780cde98dd9c03c805
Signed-off-by: Igor Shaula <igor.shaula@intel.com>
6 years agoMerge "Update Fraser document..."
Deepak S [Thu, 26 Apr 2018 06:07:13 +0000 (06:07 +0000)]
Merge "Update Fraser document..."

6 years agoUpdate Fraser document... 99/56599/1
Deepak S [Thu, 26 Apr 2018 11:25:59 +0000 (16:55 +0530)]
Update Fraser document...

Change-Id: I4ed02be7ca899db4f8f97355c180a92d69d38d8f
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
6 years agoMerge "Fix crc offloads."
Deepak S [Thu, 26 Apr 2018 05:22:45 +0000 (05:22 +0000)]
Merge "Fix crc offloads."

6 years agoMerge "Add support for multiple variables in core definition"
Deepak S [Thu, 26 Apr 2018 03:51:47 +0000 (03:51 +0000)]
Merge "Add support for multiple variables in core definition"

6 years agoMerge "Fix memory leak introduced by 4a65cd84"
Deepak S [Thu, 26 Apr 2018 03:51:38 +0000 (03:51 +0000)]
Merge "Fix memory leak introduced by 4a65cd84"

6 years agoMerge "Support for dpdk-stable-17.11.1 crypto"
Deepak S [Thu, 26 Apr 2018 03:51:28 +0000 (03:51 +0000)]
Merge "Support for dpdk-stable-17.11.1 crypto"

6 years agoMerge "Add support for generation of jumbo frames"
Deepak S [Thu, 26 Apr 2018 03:51:17 +0000 (03:51 +0000)]
Merge "Add support for generation of jumbo frames"

6 years agoFix crc offloads. 53/56553/1
Xavier Simonart [Sun, 15 Apr 2018 13:35:07 +0000 (15:35 +0200)]
Fix crc offloads.

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>
6 years agoSupport reading inline jumbo frame and dump them 51/56551/1
Xavier Simonart [Sun, 15 Apr 2018 13:14:01 +0000 (15:14 +0200)]
Support reading inline jumbo frame and dump them

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>
6 years agoAdd support for generation of jumbo frames 49/56549/1
Xavier Simonart [Sat, 14 Apr 2018 20:42:53 +0000 (22:42 +0200)]
Add support for generation of jumbo frames

Change-Id: I63af4e5c5c01a4412d517e33fc7111481fd0524a
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
6 years agoSupport for dpdk-stable-17.11.1 crypto 53/56353/1
Igor Shaula [Tue, 24 Apr 2018 11:14:54 +0000 (13:14 +0200)]
Support for dpdk-stable-17.11.1 crypto

Change-Id: I1a4aee3d550d007046be9d1677dd0ad980cb9817
Signed-off-by: Igor Shaula <igor.shaula@intel.com>
6 years agoFix memory leak introduced by 4a65cd84 65/56265/2
Xavier Simonart [Mon, 23 Apr 2018 12:19:58 +0000 (14:19 +0200)]
Fix memory leak introduced by 4a65cd84

Change-Id: I937bb38baa51d1902793fa8720a3ea740a583473
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
6 years agoAdd support for multiple variables in core definition 47/56247/1
Xavier Simonart [Mon, 23 Apr 2018 08:19:24 +0000 (10:19 +0200)]
Add support for multiple variables in core definition

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>
6 years agoMerge "Add support for reception of jumbo frames"
Deepak S [Fri, 20 Apr 2018 05:28:26 +0000 (05:28 +0000)]
Merge "Add support for reception of jumbo frames"

6 years agoMerge "Support async operation in handle_esp"
Deepak S [Fri, 20 Apr 2018 05:28:11 +0000 (05:28 +0000)]
Merge "Support async operation in handle_esp"

6 years agoFix link speed when link is down at startup. 21/55421/4
Xavier Simonart [Wed, 11 Apr 2018 14:15:55 +0000 (16:15 +0200)]
Fix link speed when link is down at startup.

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>
6 years agoSupport async operation in handle_esp 85/55785/2
Xavier Simonart [Mon, 16 Apr 2018 02:00:44 +0000 (04:00 +0200)]
Support async operation in handle_esp

Change-Id: Ibee77e31c0eb7a0e14e7aa0df092a278dfe75d6b
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
6 years agoAdd support for reception of jumbo frames 87/55787/1
Xavier Simonart [Sat, 14 Apr 2018 15:19:41 +0000 (17:19 +0200)]
Add support for reception of jumbo frames

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>
6 years agoMerge "Added missing file: rapidVMs.vms"
Deepak S [Fri, 6 Apr 2018 04:59:40 +0000 (04:59 +0000)]
Merge "Added missing file: rapidVMs.vms"

6 years agoMerge "Add support for multiple GEN tasks running on the same core"
Deepak S [Fri, 6 Apr 2018 04:59:22 +0000 (04:59 +0000)]
Merge "Add support for multiple GEN tasks running on the same core"

6 years agoMerge "Add support for crypto on multiple cores"
Deepak S [Fri, 6 Apr 2018 04:58:54 +0000 (04:58 +0000)]
Merge "Add support for crypto on multiple cores"

6 years agoAdded missing file: rapidVMs.vms 95/54795/1
Luc Provoost [Tue, 3 Apr 2018 11:59:35 +0000 (13:59 +0200)]
Added missing file: rapidVMs.vms

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>
6 years agoSupport additional MAC format in config file 49/54649/1
Igor Shaula [Fri, 30 Mar 2018 12:25:08 +0000 (14:25 +0200)]
Support additional MAC format in config file

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>
6 years agoAdd support for multiple GEN tasks running on the same core 47/54647/1
Igor Shaula [Fri, 30 Mar 2018 12:05:50 +0000 (14:05 +0200)]
Add support for multiple GEN tasks running on the same core

resolve memory allocation issue

Change-Id: I90bbf711a6a7a4869e5024c061470d9779839a60
Signed-off-by: Igor Shaula <igor.shaula@intel.com>
6 years agoAdd support for crypto on multiple cores 45/54645/1
Igor Shaula [Fri, 30 Mar 2018 11:45:00 +0000 (13:45 +0200)]
Add support for crypto on multiple cores

* Experimental, for dpdk-stable-17.05.2
* New improved ESP decapsulation function

Change-Id: If4862dacb3fcf53e21eb5932a195664f80c7c192
Signed-off-by: Igor Shaula <igor.shaula@intel.com>
6 years agoReplaced heat stack yaml files by individual server creation 11/54511/1
Luc Provoost [Tue, 27 Mar 2018 12:40:18 +0000 (14:40 +0200)]
Replaced heat stack yaml files by individual server creation

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>
6 years agoTrivial: fix trailing white-spaces 07/54407/1
Patrice Buriez [Fri, 23 Mar 2018 17:20:00 +0000 (18:20 +0100)]
Trivial: fix trailing white-spaces

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>
6 years agoMerge "Fix potential crash if link speed is null"
Deepak S [Fri, 16 Mar 2018 04:19:03 +0000 (04:19 +0000)]
Merge "Fix potential crash if link speed is null"

6 years agoMerge "Fix minimum latency"
Deepak S [Fri, 16 Mar 2018 04:18:54 +0000 (04:18 +0000)]
Merge "Fix minimum latency"

6 years agoAdding Farser preliminary documentation 29/53929/1
Deepak S [Fri, 16 Mar 2018 09:35:37 +0000 (15:05 +0530)]
Adding Farser  preliminary documentation

Change-Id: I3bbd7897deb6e452068c07ef68d395affa4a4b50
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
6 years agoFix minimum latency 85/52785/2
Xavier Simonart [Tue, 27 Feb 2018 22:59:52 +0000 (23:59 +0100)]
Fix minimum latency

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>
6 years agoFix potential crash if link speed is null 81/52781/1
Xavier Simonart [Tue, 27 Feb 2018 22:44:51 +0000 (23:44 +0100)]
Fix potential crash if link speed is null

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>
6 years agoMerge "Fixed the calculation of dropped packets and other changes"
Deepak S [Thu, 22 Feb 2018 14:48:39 +0000 (14:48 +0000)]
Merge "Fixed the calculation of dropped packets and other changes"

6 years agoMerge "Add support for comments in configuration variables"
Deepak S [Thu, 22 Feb 2018 14:48:27 +0000 (14:48 +0000)]
Merge "Add support for comments in configuration variables"

6 years agoMerge "Fix latency accuracy and dumping latencies to file"
Deepak S [Thu, 22 Feb 2018 14:48:19 +0000 (14:48 +0000)]
Merge "Fix latency accuracy and dumping latencies to file"

6 years agoFixed the calculation of dropped packets and other changes 23/52423/1
Luc Provoost [Wed, 21 Feb 2018 20:03:38 +0000 (21:03 +0100)]
Fixed the calculation of dropped packets and other changes

* 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>