summaryrefslogtreecommitdiffstats
path: root/vpp
AgeCommit message (Collapse)AuthorFilesLines
2016-10-17oam: fix compilation with gcc6Damjan Marion1-5/+6
gcc6 reports: vpp/oam/oam.c:560:531: error: self-comparison always evaluates to true [-Werror=tautological-compare] Change-Id: I7a086099c14c6661d0c6b4cf0370631fc06bc23d Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-10-14FIB2.0: Adjacency complete pull model (VPP-487)Neale Ranns1-1/+3
Change the adjacency completion model to pull not push. A complete adjacency has a rewirte string, an incomplete one does not. the re-write string for a peer comes either from a discovery protocol (i.e. ARP/ND) or can be directly derived from the link type (i.e. GRE tunnels). Which method it is, is interface type specific. For each packet type sent on a link to a peer there is a corresponding adjacency. For example, if there is a peer 10.0.0.1 on Eth0 and we need to send to it IPv4 and MPLS packets, there will be two adjacencies; one for the IPv4 and one for the MPLS packets. The adjacencies are thus distinguished by the packets the carry, this is known as the adjacency's 'link-type'. It is not an L3 packet type, since the adjacency can have a link type of Ethernet (for L2 over GRE). The discovery protocols are not aware of all the link types required - only the FIB is. the FIB will create adjacencies as and when they are required, and it is thus then desirable to 'pull' from the discovery protocol the re-write required. The alternative (that we have now) is that the discovery protocol pushes (i.e. creates) adjacencies for each link type - this creates more adjacencies than we need. To pull, FIB now requests from the interface-type to 'complete' the adjacency. The interface can then delegate to the discovery protocol (on ethernet links) or directly build the re-write (i.e on GRE). Change-Id: I61451789ae03f26b1012d8d6524007b769b6c6ee Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-10-14Add macro for sending large data structures to API clientsFlorin Coras1-3/+18
Change-Id: I1c4ec4dd02ce5a16e33aa0908a606496ad0d64cc Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-10-13vpp_lite: add cpu pinning support (VPP-467)Pavel Kotucek1-1/+18
Proper cpu pinning in vpp_lite platform, like in normal vpp image. Extended “show threads” command to show propper information. Changed handling of coreID and socketID for threads in "show threads" CLI, pthread_getaffinity is used instead of info stored in DPDK. Change-Id: Ic8299ec5e284472bb10a37a95fadeed57b6edae8 Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
2016-10-12Fix coverity warnings, VPP-486Dave Barach2-2/+9
Change-Id: I7a14d9a28514cdb49f65fab1b120b53239fed7e3 Signed-off-by: Dave Barach <dave@barachs.net>
2016-10-12VPP-362 Implement dumping of LISP adjacenciesFilip Tehlar3-1/+138
Change-Id: Ieea56f3bf9e749878d9f2b35d39d9f7a9cdabde4 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-10-10ipfix: add classification nodes for flow statistics (VPP-204)Juraj Sloboda3-2/+163
In order to have meaningfull IPFIX implementation we should be able to classify all packets flowing through vpp. But existing IPv4 and IPv6 classifier nodes are called only if destination IP address is local to vpp. This commit adds new IPv4 and IPv6 classifier nodes that should be used for collecting flow statistics. Change-Id: I60e60105663ba15b5200862a23bb817047fe4d1a Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2016-10-07VPP-395 Add udp-punt node(s) and APIAlexander Popovsky (apopovsk)3-5/+77
Uses existing UDP local API in order to register requested UDP port punt to the host. CLI: set punt udp [del] <port> API: punt protocol <l4-protocol> [ip <ver>] [port <l4-port>] [del] * Only UDP (l4-protocol = 17) is supported at this time Change-Id: I9232af1c891d1ed174d77f3e0dfe60c4b9d85e40 Signed-off-by: Alex Popovsky <apopovsk@cisco.com>
2016-10-07VPP-466: PG pg_create_interface API returns wrong interface indexPavel Kotucek1-2/+3
Change-Id: Ife7b2907012a79e6893cfa7f2cf61c7a54865248 Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
2016-10-05Fix sw_interface_set_unnumbered API for FIB2.0Igor Mikhailov (imichail)1-4/+4
ip[4|6]_sw_interface_enable_disable() should be called for the unnumbered interface (and not on the interface with IP address) Change-Id: Iffd347c539567c1302fa8136eea9c4e06b24d1bd Signed-off-by: Igor Mikhailov (imichail) <imichail@cisco.com>
2016-10-04VPP-355: add PBB (802.1ah) tag rewritePavel Kotucek3-2/+98
- new API/CLI to define pbb tag rewrite on interface - encapsulation/decapsulation of PBB tags - tracing of PBB header - PBB tag rewrite operations Change-Id: I538b3025a8b2e41cdeed9f10fea94bbcd28b5f5f Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
2016-10-03L2 over LISP and GRE (VPP-457)Neale Ranns1-27/+41
Change-Id: I0d7f9c7f41a9f9e0acb0950adedb90d45df08c2a Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-09-30VPP-450 Fix adding LISP adjacencies via CLIFilip Tehlar3-14/+14
Change-Id: If90c9c630629e727fffc5d450516045a04433661 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-09-28DPDK HQoS: Enable Hierarchical Scheduler in VPPJasvinder Singh3-2/+277
This commit extends the vpp framework with new thread type "hqos-threads" that runs the Hierarchical Quality of Service (HQoS) scheduler associted with output interface. HQoS Scheduler prioritize the packets from different users and ensures sufficient bandwidth to pass the more important traffic. At high level, HQoS scheduler is a buffer that can temporarily store a large number of packets. In otherwords, it is a collection of large number of queues organized into hierarchy of 5 levels; the port (i.e. the physical interface) is at the root of the hierarchy followed by the subport (a set of users), the pipes (individual users), the traffic classes (each with a strict priority) and at the leaves, the queues. In each HQoS scheduler, three operations are performed; classification (setting HQoS port, subport, pipe, traffic class and queue within traffic class from packet fields), enqueue (selecting HQoS queue for the packet, and to drop the packet if the queue is full) and dequeue (schedule the packet based on its length and available credits, and handover the scheduled packet to the output interface). In vpp, the number of hqos threads will be equal to cpu cores specified in corelist-hqos-threads parameter cpu section of the vpp configuration file. One hqos thread can run HQoS for multiple output interfaces. A particular HQoS instance is initialised with default parameters required to configure hqos port, subport, pipe and queues. Some of them can be re-configured in run-time through CLI commands as well binary APIs. Following illustrates the sample startup configuration file with 4x worker threads feeding 2x hqos threads that handle each HQoS for 1x output interface. For more details on HQoS configuration please refer to DPDK Programmer's Guide. dpdk { socket-mem 16384,16384 dev 0000:02:00.0 { num-rx-queues 2 hqos } dev 0000:06:00.0 { num-rx-queues 2 hqos } num-mbufs 1000000 } cpu { main-core 0 corelist-workers 1, 2, 3, 4 corelist-hqos-threads 5, 6 } Change-Id: I635c3395a7c4ddf0a239ef77b0b0a31a6dfc4767 Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
2016-09-27Scheduler policy & priority config, few minor fixes (VPP-425)Pavel Kotucek1-0/+10
- scheduler-prio -> scheduler-priority - improve formatting of "show threads" output - add description to "startup.conf" - bail out of priority is set without rr or fifo policy Change-Id: Idf897f7603d989d6c2d0093eea89c5d1653eaa8c Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
2016-09-27VPP-448 Fix LISP APIs using binary dataFilip Tehlar1-4/+19
* use zero length array in LISP API to avoid confusion * add missing LISP data structure definitions in API documentation * fix wrong memory allocation in VAT Change-Id: I9b5e656a071fc24cb698c164db953c09b66deeeb Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-09-27LISP Source/Dest control plane support, VPP-197Florin Coras3-0/+99
Change-Id: If88e4161e0944b657e6183b7b44348f7f46ba0a8 Signed-off-by: Florin Coras <fcoras@cisco.com> Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-09-21A Protocol Independent Hierarchical FIB (VPP-352)Neale Ranns6-833/+483
Main Enhancements: - Protocol Independent FIB API - Hierarchical FIB entries. Dynamic recursive route resolution. - Extranet Support. - Integration of IP and MPLS forwarding. - Separation of FIB and Adjacency databases. - Data-Plane Object forwarding model. Change-Id: I52dc815c0d0aa8b493e3cf6b978568f3cc82296c Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-09-20VPP-189: fix coverity issue in api_format.cFilip Tehlar1-0/+2
Change-Id: Ib16fd69abe93c1afb2ee1d38144763f57888585c Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-09-19Add support for transparent ethernet bridging to GREDavid Hotham3-0/+7
Change-Id: Iaa3cefe223eb48b128893029a17e092b72a5157c Signed-off-by: David Hotham <david.hotham@metaswitch.com>
2016-09-14Add vlan-strip-offload help into startup.confAlex Popovsky1-0/+4
Change-Id: Icb240ce9c62e9a2e2ff18107729cffb8e4884a0c Signed-off-by: Alex Popovsky <apopovsk@cisco.com>
2016-09-13Add some help into startup.confDamjan Marion1-0/+54
Change-Id: I84e9d7c3ccd32814c3eebf1cef0a4887c75812a8 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-09-13VPP-376: Refactor LISP dump API + VATFilip Tehlar3-105/+136
- refactor VAT so it won't cache data - remove unused filter flag from locator dump API call - json structure changed for locator and EID table dump calls - remote mapping VAT cli now accepts string for negative mapping action Change-Id: I776fb50659aaa7e98ad93715d282a83f78287344 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-09-07Fix bugs in IPFIX code discovered by coverityJuraj Sloboda1-12/+9
Change-Id: Ibe6ccb99c3c29c14efb34191f209a2f6a14293f7 Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2016-09-07VPP-204 Rework and finish IPFIX implementationJuraj Sloboda3-33/+370
Rework flow report registration system - add streams Add support for IPv6 and src and dst ports for TCP and UDP protocols Implement binary API for IPFIX classifier module Change-Id: Id05cc0127a7b95ceaeebf9c79a32c6936449bd63 Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2016-09-06Move iOAM Trace as a pluginVengada Govindan2-85/+21
Change-Id: I78322e91485e5429871bd356f668b8ed90f4265a Signed-off-by: Vengada Govindan <venggovi@cisco.com>
2016-09-02Add in-message cli_request/cli_reply APIOle Troan3-0/+82
This new CLI API is meant to replace the cli_request/cli_reply that uses shared memory. PS: checkstyle -- *hate* Change-Id: I6318f8f6b9be2c2398b49dac9e2193c1998ea724 Signed-off-by: Ole Troan <ot@cisco.com>
2016-08-31VPP-369 Add an L2 output classification featureDave Barach4-23/+34
Change-Id: If03162d328c1ea179249e734537ebb01bade3331 Signed-off-by: Dave Barach <dave@barachs.net>
2016-08-31VPP-358: Add IPv6 ND Event Notification and TerminationJohn Lo3-27/+272
Add IPv6 equivalent of IPv4 ARP event notification which covers address resolution for L3 and MAC/IP binding in L2 BD and ARP termination in BD. For IPv6, ICMP6 neighbor solicitation and advertisement packets are utilized instead of ARP request and response packets for IPv4. Change-Id: I0088fa173e4480de297c8053ea2fcd0821322815 Signed-off-by: John Lo <loj@cisco.com>
2016-08-31VPP-240: delete subinterfacePavel Kotucek3-2/+45
Added new CLI and API command to delete subinterface. Change-Id: Ia92a8facc6ad84634bdec430093e6add02ee674e Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
2016-08-30VPP-353: Fully support LISP negative mappings in APIFilip Tehlar2-6/+17
Change-Id: I71943fb4ae2a2f71bcf1ad73512812edf96c06da Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-08-26VPP-356: Fix wrong byte order in LISP APIFilip Tehlar2-5/+6
Change-Id: Ib2284025b8394a87f1d5765713adb7070b450cba Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-08-26VPP-329: Add L2 support to lisp_eid_table_map_dumpFilip Tehlar3-6/+33
Change-Id: Idfb115cd1f95394f4a4a569dc34c0488a1d58558 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-08-25VPP-328: Add dump call for listing LISP VNIsFilip Tehlar3-0/+73
Change-Id: I45c054ad638a0e918dddefa4468ff65452949970 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-08-25Fix issues with vhost-user when dpdk vhost-user is disabled, fixes VPP-347, ↵Damjan Marion1-26/+23
VPP-349 Change-Id: I774bab98e43d55678a67a7708ca50edbbd4cbb06 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-08-25VPP Python language binding - plugin supportOle Troan1-6/+6
- Moved Python generator tool to tools directory - Added build-vpp-api Makefile target - Generator now only creates a Python representation of the .api the rest of the framework is in the vpp_papi script - Each plugin has its own namespace. - Plugin Python files are installed in vpp_papi_plugins for easy use inside the build tree. Change-Id: I272c83bb7e5d5e416bdbd8a790a3cc35c5a04e38 Signed-off-by: Ole Troan <ot@cisco.com>
2016-08-24VPP-321: Fix param order of unformat_lisp_eid_apiFilip Tehlar1-3/+2
Change-Id: Ib00ca0f0dab4784a3fb34ffd91c18a3940e9a5d5 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-08-23VPP-323: Add LISP locator set index to reply API messageFilip Tehlar2-1/+8
Change-Id: Id798f63f4cf1a8aa7a75931bc23d3c7f5d738938 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-08-23VPP-342: Don't allow remote mapping to overwrite local or static mappingFilip Tehlar1-1/+1
Change-Id: I9888d7c087da538b81a6a1967edbdf1103cc095a Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-08-19VPP-337 Add per interface IN filteringDave Barach1-4/+8
- ip post-rewrite feature subgraph arc support Change-Id: Ia4b07197463021ade916326231af246e2559a290 Signed-off-by: Dave Barach <dave@barachs.net> Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-08-17VPP-202: L2-GRE over IPSecMatus Fabian3-2/+193
GRE encapsulate layer 2 traffic and IPSec encrypt what is encapsulated by GRE. The whole point of L2-GRE over IPSec is to tunnel layer 2 over GRE and IPSec by bridging the physical interface with IPSec-GRE tunnel interface. Change-Id: Ia4cf9ed407bf663770e0d8905c0ad44ce73bd23b Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-08-15VPP-257 Coding standards cleanup for vnet/vnet/l2Dave Barach1-4/+4
Change-Id: Iba5f33675bb2eb806e9becdc42b11da5d3932d55 Signed-off-by: Dave Barach <dave@barachs.net>
2016-08-15VPP-198: LISP map-resolver failover algorithmFilip Tehlar1-5/+4
Change-Id: Iadd49e58a359a2e58610bd1793818ec8a25d51f1 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-08-15VPP-327 Coding standards cleanup for vppinfraDave Barach2-19/+19
Fix additional a few additional deviations reported elsewhere by checkstyle Change-Id: I026a8ae1c5b1856bbe3c4a555e1b690e7501b045 Signed-off-by: Dave Barach <dave@barachs.net>
2016-08-15VPP-236 Support 64-bit vector lengths, shared memory segments >4 GBDave Barach2-4/+29
Change-Id: I02aee33e96e7ae32094b9f82f6a667d30bb52f59 Signed-off-by: Dave Barach <dave@barachs.net>
2016-08-12VPP-237: indent fixes in prep for checkstyleEd Warnicke2-111/+122
Ran indent *twice* Change-Id: If9c18b81983bb859cc8dc3b415c67cbf318fc618 Signed-off-by: Ed Warnicke <eaw@cisco.com>
2016-08-12VPP-189 fix more coverity warningsDave Barach1-104/+78
Change-Id: If464a5f06ab15eead9eaf12e89792d3761796956 Signed-off-by: Dave Barach <dave@barachs.net>
2016-08-12VPP-321: Fix filtering in LISP EID dump callFilip Tehlar1-2/+2
Change-Id: Ide5d461cf324c0d9010f20732748d9c71cf6f02e Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-08-11VPP-319: Fix handling of ERANGE from getgrnam_rEd Warnicke1-4/+16
Change-Id: I1c5b3ed678622a0352fb881f2236a514743f3c50 Signed-off-by: Ed Warnicke <eaw@cisco.com>
2016-08-11VPP-321: Fix wrong checking of LISP mapping local flagFilip Tehlar1-20/+14
Change-Id: Ia1d5a53742a5ebe34566de0a68c2d0a81e002ffa Signed-off-by: Filip Tehlar <ftehlar@cisco.com>