summaryrefslogtreecommitdiffstats
path: root/VNFs/DPPD-PROX
AgeCommit message (Collapse)AuthorFilesLines
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>
2018-01-04Add support for DPDK 17.11Xavier Simonart16-68/+250
Change-Id: I5611ead4b61b23d6c1c983852e8c75619e08ecf9 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2017-12-20Initialize fields of outer IP headerXavier Simonart1-5/+4
As it was non being initialized, fragment offset was sometimes non null. prox_ip_cksum_sw (as well as prox_ip_cksum_hw) require the hdr_checksum field to be initialized to 0. Change-Id: I3824682023782edb555982e558e5ae68062c3c9b Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2017-12-19Merge "Adding Security gateway testing"Deepak S18-367/+1225
2017-12-19Merge "Add l3 support for tasks without physical tx ports"Deepak S2-8/+5
2017-12-18Add support for multiple tasks generating to same ip in l3 mode.Xavier Simonart1-6/+23
When multiple tasks generate to the same ip in l3 mode (i.e. with arp support), all those tasks generate arp requests. we need to make sure that they all receive a arp-reply i.e. that the master broadcast the reply to all those cores. Change-Id: I7e89196497a1016a94dde167f212b1f6ed03bcfe Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2017-12-18Add l3 support for tasks without physical tx portsXavier Simonart2-8/+5
This adds support for tasks in l3 submode receiving from ports but transmitting to rings. ARP related information is exchanged between tasks through master core. Tasks transmitting to physical ports are responsible to transmit arp related packets. Tasks not transmitting to physical ports (and using rings) should not try to transmit arp packets. Transmitting arp packets through ring would be more complex, as we would need extra information (within the mbuf) to distinguish for instance an arp reply comoing from the network and an arp reply coming from a core (as a reply to an arp request). Change-Id: Ib55dc8c39d5e55703a933faa16bcc008f1274929 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2017-12-18Adding Security gateway testingProvoost18-367/+1225
Using now .test files describing the test to be executed. Also desribed in the README file how to deal with SRIOV ports. Change-Id: I3eb1551d7f205fef3fa1914bc6959c2126d63425 Signed-off-by: Provoost <luc.provoost@intel.com>
2017-12-08Merge "Fix command parser"Deepak S1-13/+12
2017-12-08Merge "Fix checks done when changing generator pkt_size"Deepak S1-10/+25
2017-12-06Fix qos statisticsXavier Simonart1-1/+1
Packets dropped by QoS (because queues were full) were erroneously shown as idle cycles. There aee now shown as discarded packets. Change-Id: I01a619de621a3dfbfe11cabef257f9dec311e208 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2017-12-06Fix checks done when changing generator pkt_sizeXavier Simonart1-10/+25
Different checks were done when setting the generator pkt_size. In case of wrong pkt_size (e.g. too big) an error was printed but the pkt_size was still set causing a potential corruption. In addition, in case of a packet size incompatible with some of the packet fields (e.g. latency data) PROX was panicing while this should not happen runtime for such an error. Change-Id: Ifa11475bf295aaac7b0255c1bf9b5feed8ef90c4 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2017-12-06Fix command parserXavier Simonart1-13/+12
Command parser could have been crashing if a wrong core/task was used in pkt_size command. For some other commands both an error and a warning were printed in case of errors. Change-Id: I6648bfca1b5bcde3c6393d49687ed84900326d49 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2017-11-22correct prox ipsec vnfIgor Shaula1-107/+90
reapply the latest changes (47355 and 47521) due to gerrit merge problem * fix crypto init for both encryptor and decryptor * improve performance: preallocate crypto op memory in init * finalize enabling routed ipsec traffic (proper IP/MAC addresses) * correct handling of dropped packets at encryptor * Fix receive packets with size > 1024 bytes Change-Id: I51cccc9bef0b9564ea1a3465ad28fb985eee06d1 Signed-off-by: Igor Shaula <igor.shaula@intel.com>
2017-11-21fix prox crypto buildIgor Shaula1-1/+6
Change-Id: I4ea54763871c18b1bd6cec9dbb926f18f0f5833f Signed-off-by: Igor Shaula <igor.shaula@intel.com>
2017-11-21Merge "Add support for nop mode with l3 submode"Deepak S7-23/+52
2017-11-17* fix encryption: ESP packet formatIgor Shaula1-45/+129
* fix traffic routing * enqueue packets in a bulk (improve crypto performance: TBD) * improve code clarity * fix crypto dequeuing * complete decryption path implementation * NOTE: the code works in a chain mode; crypto init to be fixed next Change-Id: I058a906f4f4f5691ebf25d2cdf5b5faded88e11d Signed-off-by: Igor Shaula <igor.shaula@intel.com>
2017-11-15Add support for nop mode with l3 submodeXavier Simonart7-23/+52
The l3 submode was not supported in nop mode, as the nop mode uses some specific nop thread (and not generic). When L3 is specified, the nop mode must use the generic thread. In addition the l3 submode is implemented differently than other submodes. It is not supported through task_init structures (i.e. each task does not have to explicitely tell that it supports l3 submode). But this prevented to run both a nop with no submode and a nop with a l3 submode. Note that nop with l3 is usually not very useful - it handles arp (requests and response) but as nop, it does not swap IP addresses. So with a real switch, the packets transmitted will be received back... and l3 mode is usually mainly usefull when using a switch. However, there is at least one nop mode where l3 submode makes sense: when the nop does not transmit. In such cases, for instace used in conjunction with a gen l3, the nop receives all packets and forward the arp requests and responses to the master for handling. Change-Id: I992121db285ba25a11cbb494092a6afc6fe55a58 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2017-11-09Merge "Fix changing impair delay through command line"Deepak S1-1/+3
2017-11-09Fix latency commands in l3 submodeXavier Simonart2-21/+29
Change-Id: I9c46b57f98b566efc8ca3ea5966befe2a150315b Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2017-11-08Fix changing impair delay through command lineXavier Simonart1-1/+3
Change-Id: I7797241a1d384fa184bdf4d73b81babb21f7383d Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2017-11-07Merge "Rework handle_esp.c (proto, DPDK<17.08, cleanup)"Deepak S2-73/+34
2017-11-07Merge "lw_AFTR: IP Checksum required on generated packet."Deepak S2-0/+15
2017-11-01lw_AFTR: IP Checksum required on generated packet.DanielMartinBuckley2-0/+15
In lwAFTR (ipv6 de-encapsulate) the generated ipv4 packet requires an IP checksum, otherwise this packet is dropped in Openstack. (Openstack is much stricter than baremetal) Some fields in the header need to be initialized. Add flag in Makefile which when enabled will build to include the generate the IP checksum in the build. FLAG = GEN_DECAP_IPV6_TO_IPV4_CKSUM=y Not include in default build. Change-Id: If94e7cff64b03c66362021f05e48fb9265fc8210 Signed-off-by: Daniel Martin Buckley <daniel.m.buckley@intel.com>
2017-10-27Rework handle_esp.c (proto, DPDK<17.08, cleanup)Patrice Buriez2-73/+34
- Adjust handle functions to PROX-v035+ prototype, returning 0 when all packets have been handled. - Because cryptodev API was modified in DPDK 17.08, many changes would be necessary to support it. For the moment, just exclude handle_esp.c from PROX build when using DPDK 17.08+, which will be supported later. - Cleanup: - consistent use of PROX_PANIC to cleanly fail on errors - consistent use of OUT_DISCARD to drop unhandled packets - remove "__attribute__((unused))" when parameter is actually used - remove unused defines, fields and variables Change-Id: I10d84fa184a866b4a5f87272875612aace5dd5b1 Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
2017-10-25Merge changes from PROX-v041Patrice Buriez39-511/+1630
Change-Id: Ie6d4e7ce22c27967117a446626f5923643397812 Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
2017-10-19Makefile change and new task structures for IPSec Prox taskAlexander Komarov3-1/+6
Change-Id: I389389e5317d1a9d0d79cc1762d6f15d8287e36a Signed-off-by: Alexander Komarov <alexander.komarov@intel.com> Signed-off-by: Alexander Komarov <izard.ak@gmail.com>
2017-10-18Added IPSec/ESP performance demo building block to DPPD-PROXAlexander Komarov2-0/+621
Change-Id: I25ab50297cd7d2f80a5206ddc3c55ffad36bd8d8 Signed-off-by: Alexander Komarov <alexander.komarov@intel.com> Signed-off-by: Alexander Komarov <izard.ak@gmail.com>
2017-09-25Remove default section in the createrapidDeepak S1-1/+0
Change-Id: Id9c22f92955b64242971ff768a64132451c8350e Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-09-19Splitting the script in 2 parts: createrapid.py and runrapid.pyLuc Provoost11-528/+1098
The split of the scripts is documented in the README file. The VM also runs now devbind.sh with the proper MAC address to bind the dataplane interface with the DPDK poll mode driver. Change-Id: I3e7a6235379dc80530934376c7799ac3396b5325 Luc Provoost <luc.provoost@intel.com> Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-09-12Enabling Prox to be compatible with Titanium CloudDeepak S1-0/+1
Change-Id: I65e8b2d1cea2a1edfa738671e460b6a0170d3363 Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-09-11Support 5 tuple load balancing for IP addresses other than 0.0.0.XDanielMartinBuckley1-5/+5
Currently packets generated with IP addresses 10.1.1.x when handled by 5 Tuple Load Balancer are discarded/dropped. These addresses are outhside the range of the hash algorithm. Change-Id: Idf2cea0ff299a3fa75554f0d103e13391eae02fa Signed-off-by: Daniel Martin Buckley <daniel.m.buckley@intel.com>
2017-07-14Adding PROX(Packet pROcessing eXecution engine) VNF to sampleVNFDeepak S362-0/+64273
JIRA: SAMPLEVNF-55 PROX is a DPDK-based application implementing Telco use-cases such as a simplified BRAS/BNG, light-weight AFTR... It also allows configuring finer grained network functions like QoS, Routing, load-balancing... (We are moving PROX version v039 to sampleVNF https://01.org/intel-data-plane-performance-demonstrators/prox-overview) Change-Id: Ia3cb02cf0e49ac5596e922c197ff7e010293d033 Signed-off-by: Deepak S <deepak.s@linux.intel.com>