summaryrefslogtreecommitdiffstats
path: root/VNFs/DPPD-PROX/Makefile
AgeCommit message (Collapse)AuthorFilesLines
2022-01-03Fix keyboard related issues when building with mesonXavier Simonart1-1/+0
Signed-off-by: Xavier Simonart <simonartxavier@gmail.com> Change-Id: I8186703b8ea3e88f91cd929898033eafecd686aa
2021-09-09Add support for building Prox with MesonHeinrich Kuhn1-1/+18
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
2020-09-21Add git version.Xavier Simonart1-1/+10
git version is now printed in prox.log file. - git_version.c is always recompiled - If source have been locally changed, the build is shown as dirty - If git is not available on the build system, a message such as 'make: git: Command not found' will be printed, but the build will succeed. Change-Id: If551832c6079f5e3bd04cd4d8ac5f8204e6be8cd Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2020-05-29Added initial support for NDP (IPv6)Xavier Simonart1-1/+1
Following messages are now handled by PROX - router_solicitation - neighbour_solicitation - router_advertisement - neighbour_advertisement The following parameters are supported (through the PROX config file) - sub mode=ndp This will enable handling of router and neighbour solicitation and advertisement. - local ipv6=xxxx:xxxx:xxxxx:xxxx:xxxx:xxxx:xxxx:xxxx This will configure the local IPv6 address of the port. This parameter is optional. If not specified, the local IPv6 will be calculated from the EUI. - global ipv6=xxxx:xxxx:xxxxx:xxxx:xxxx:xxxx:xxxx:xxxx This will configure the global IPv6 address of the port. This parameter is optional. If not specified, the global IPv6 will be calculated from the EUI and the router prefix received from the router. - ipv6 router=yes This will cause the core to behave as an IPv6 router i.e. it will generate Router Advertisement messages This is only useful in back to back cases, when no real IPv6 router is present in the setup. - router prefix=xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx The router prefix usedin the router advertisement The prefix will be used by the node to build an IPv6 global address in cases none were configured. "Unsollicited NA" parameter has been added within the core/task section. If set to yes (Unsollicited NA=yes), then an unsollicited neighbour Advertisement is sent at startup A same core/task cannot support both l3 and ndp mode. Those messages will be generated or handled when submode is set to "ndp": - neighbour sollicitation - neighbour advertisement - router sollicitation - router advertisement An example configuration is provided: config/ipv6.cfg in which port 0 / core 1 plays the role of the generator and port 1 / core 2 plays the role of the swap. Change-Id: Id0ab32d384448b4cf767fb4a1c486fc023f4f395 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2020-01-29Add Latency Distribution displayXavier Simonart1-3/+3
- Latency Distribution (i.e. histograms) has been added when latency is enabled. - Histograms are now compiled by default. - A bug has also been fixed, which was causing strange behavior in the histograms (due to bucket size being overwritten). - The default bucket size has been changed to "11" which means that the size of each bucket is now (1 cycle << 11) = 2048 cycles = 1 microsecond at 2GHz. It was (1 << (10 - 1)). As there are 128 latency buckets, it is not possible to show all of them on the display. Hence the latency buckets are displayed based on on the assumption that the minimum latency is usually relatively stable and that the maximum latency change more often. - The first empty buckets are not shown (i.e. buckets empty for all tasks) - If more than 15 buckets are non empty, then the buckets are combined, so that a maximum of 15 (bigger) buckets are shown - If less than 15 buckets are non empty, the following (empty) buckets are shown (this avoid seeing every x seconds some columns being added and removed). Change-Id: I27fe6ac0e513a5558e42ff2e74255c55ba79516d Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2019-10-09Added support for DPDK 19.02 and 19.05Xavier Simonart1-1/+9
This includes supporting following API changes - RTE_VER_... now in rte_config.h instead of rte_version.h - <rte_ethdev.h> now seems required by <rte_eth_ctrl.h> - rte_sched_port_pkt_write takes extra argument - rte_sched_port_pkt_read_tree_path takes extra argument - enum rte_meter_color replaced by rte_color The extra argument, sched_port, is initialized based on qos_conf parameters. Modes such as qinq_encap4 uses sched_port when doing classification, but does not set qos_conf params. It inherits the sched_port from QoS Change-Id: If8312918241e7d482161a7538f53faac6c303e86 Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2019-07-04Fix keyboard related issues on Ubuntu 18.04Xavier Simonart1-1/+25
On Ubuntu 18.04, the keyboard was not properly handled in PROX For instance, many keys pressed were silently discarded. The issue is related to a change in histedit/libedit version. Recent libedit have (silently) changed the prototype of the get_char function passed in el_set(el, EL_GETCFN, get_char), with some input parameters changing from char to wchar_t. As PROX used the old prototype (char based), this resulted in some uninitialized field (= garbage) in the wchar_t, causing libedit to discard the character. PROX now uses different get_char prototypes, depending of the libedit version being used. If PROX was already compiled and a the OS is updated (e.g. from Ubuntu 16.04 to Ubuntu 18.04), this will require a 'make clean'. Change-Id: Icb0e555a21e13cdaf98172bad17f2f838fb7bc3a Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
2018-04-24Support for dpdk-stable-17.11.1 cryptoIgor Shaula1-4/+0
Change-Id: I1a4aee3d550d007046be9d1677dd0ad980cb9817 Signed-off-by: Igor Shaula <igor.shaula@intel.com>
2018-01-16Integrate irq mode into PROX (support display and command line)Xavier Simonart1-2/+2
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>
2017-11-21fix prox crypto buildIgor Shaula1-1/+6
Change-Id: I4ea54763871c18b1bd6cec9dbb926f18f0f5833f Signed-off-by: Igor Shaula <igor.shaula@intel.com>
2017-11-07Merge "Rework handle_esp.c (proto, DPDK<17.08, cleanup)"Deepak S1-0/+2
2017-11-07Merge "lw_AFTR: IP Checksum required on generated packet."Deepak S1-0/+5
2017-11-01lw_AFTR: IP Checksum required on generated packet.DanielMartinBuckley1-0/+5
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 Buriez1-0/+2
- 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 Buriez1-1/+7
Change-Id: Ie6d4e7ce22c27967117a446626f5923643397812 Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
2017-10-19Makefile change and new task structures for IPSec Prox taskAlexander Komarov1-0/+1
Change-Id: I389389e5317d1a9d0d79cc1762d6f15d8287e36a Signed-off-by: Alexander Komarov <alexander.komarov@intel.com> Signed-off-by: Alexander Komarov <izard.ak@gmail.com>
2017-07-14Adding PROX(Packet pROcessing eXecution engine) VNF to sampleVNFDeepak S1-0/+204
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>