summaryrefslogtreecommitdiffstats
path: root/plugins
AgeCommit message (Collapse)AuthorFilesLines
2016-12-06acl: The ACL plugin.Andrew Yourtchenko20-0/+5664
This is the commit from the accumulated work in the github ACL branch, to move it to gerrit. Change-Id: I85a6b0df0d3dd3c3c7588e92a1e22c553e4b6ef7 Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2016-12-02snat: fix 1:1 NAT with multiple workersMatus Fabian2-3/+43
Assign worker when static mapping is created. Change-Id: I204e486e2ba5d1ef8e357759c35ba92a25a9a097 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-12-02Initialize the UDP checksum, or no supperDave Barach1-0/+1
Change-Id: I542fbe9ccdf83ee220080b2506b38016359e0ce5 Signed-off-by: Dave Barach <dave@barachs.net>
2016-12-02API: Packaging of JSON files.Ole Troan5-26/+64
Change-Id: If041b6faf1a091d4758b514f0a8cd800ee0e6a89 Signed-off-by: Ole Troan <ot@cisco.com> Signed-off-by: Ole Troan <otroan@ot-vpp.cisco.com> Signed-off-by: Ole Troan <ot@cisco.com>
2016-12-01Add rx interface, ip4 src+dst to the flow-per-packet recordsDave Barach2-15/+72
Change-Id: I1f49cdaf5879d9638742ed1ecc699f2e9a87f0f8 Signed-off-by: Dave Barach <dave@barachs.net>
2016-11-30VPP-530: adapt jvpp generation for VPP API splittingMarek Gradzki2-8/+8
Now jvpp uses *.json instead of *.py api representation. Multiple *.json files are supported. Change-Id: I89fa556c7d2a35d42833f2faaa28398ebd2ed012 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2016-11-28snat: fix coverity issuesMatus Fabian3-2/+10
Change-Id: Icb8239c02af8758a9e4bf299726a89677f53451d Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-11-28snat: thread safe (VPP-443)Matus Fabian6-188/+1032
All traffic corresponding to a specific SANT user is handled by a CPU core. in2out: Non-translated packets worker lookup by src address and VRF hash in snat-in2out-worker-handoff node. out2in: Translated packets worker lookup by dst address and port number hash in snat-out2in-worker-handoff node. Change-Id: Ia092a605689539469841d382588f3f486a29a769 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-11-21Add client-side msg_name_and_crc -> msg_index tableDave Barach8-3/+117
vppapigen now generates per-message crcs. Verified that whitespace and real changes in message A don't change the crc for message B, etc. Fixed the sample and flowperpkt plugins to participate. Others need the same treatment. They don't build due to python/java language binding build issues. To use the scheme: Client connects as usual. Then call: u32 vl_api_get_msg_index(char * name_and_crc) name_and_crc is a string like: "flowperpkt_tx_interface_add_del_753301f3", aka the message name with _%08x <expected crc> appended. Try these vpp-api-test commands to play with it: vat# dump_msg_api_table <snip> [366]: punt_reply_cca27fbe [367]: ipsec_spd_dump_5e9ae88e [368]: ipsec_spd_details_6f7821b0 [369]: sample_macswap_enable_disable_0f2813e2 [370]: sample_macswap_enable_disable_reply_476738e5 [371]: flowperpkt_tx_interface_add_del_753301f3 [372]: flowperpkt_tx_interface_add_del_reply_d47e6e0b vat# get_msg_id sample_macswap_enable_disable_reply_476738e5 'sample_macswap_enable_disable_reply_476738e5' has message index 370 vat# get_msg_id sample_macswap_enable_disable_reply_476738e3 'sample_macswap_enable_disable_reply_476738e3' not found CRCs may vary, etc. vppapigen is used to build a set of JSON representations of each API file from vpp-api/Makefile.am and that is in turn used by each language binding (Java, Python, Lua). Change-Id: I3d64582e779dac5f20cddec79c562c288d8fd9c6 Signed-off-by: Dave Barach <dave@barachs.net> Signed-off-by: Ole Troan <ot@cisco.com>
2016-11-17remove reference to Intel with dpdk docsPadraig Connolly2-2/+2
*Changed configure files to say DPDK instead of Intel DPDK *Changed rpm and deb config files to say DPDK instead of Intel DPDK *Changed vnet Makefile to say DPDK instead of Intel DPDK Change-Id: Ic6e3eacf2341af873d4bd2e036d5afa857ca6355 Signed-off-by: Padraig Connolly <padraig.connolly@intel.com>
2016-11-11Fix clang compile errors in pluginsNeale Ranns1-3/+3
Change-Id: I2c2df9b5ba567bde2564c924bd9ad2fbbac775c4 Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-11-11feature: convert all feature nodes to new feature infraDamjan Marion8-127/+44
Change-Id: I34c527ba910fb282a95458b78d1d684eb337905e Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-11-09Update sample plugin and plugin skeletons: use driver feature arcDave Barach2-13/+38
Change-Id: Ic0a1479e4a0408a4b93f47e50752d07c2bdccdde Signed-off-by: Dave Barach <dave@barachs.net>
2016-11-03Fail to register Java API for plugin that was not loaded (VPP-522)Marek Gradzki6-35/+38
Change-Id: Idb95888ae6fc7a9df197a919e3d3283f915f4a4c Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2016-11-03Remove unused jvpp dependency on plugins' control_pingMarek Gradzki2-2/+2
Change-Id: I6ebb69443e79e60c7ce6afded6a2d3af85048e6e Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2016-11-03Timestamp now a 64-bit integer: ns since 1/1/1970Dave Barach3-6/+24
Properly initialize allocated buffers Change-Id: Ib2005e605c89a164a4856790db6968fcd7520f5c Signed-off-by: Dave Barach <dave@barachs.net>
2016-11-03Adding Sequence Number - Per Packet Counter(PPC) support for iOAM6.AkshayaNadahalli9-10/+618
- Added support in classifier session to identify a flow to be iOAM6 encap/decap - Sequence number as part of iOAM6 E2E header is created as a plugin. Change-Id: Ib7605de45aecff25d684d099b525f8dc96ee7038 Signed-off-by: AkshayaNadahalli <anadahal@cisco.com>
2016-11-01VPP-437: ip6 hbh processing with FIB 2.0Shwetha3-14/+21
1. Modifies ip6 hbh selective processing in lookup only when non-recursive routes are present. 2. Adds ip6 hbh processing in load balance. 3. Cleanup of ip6 iOAM hbh plugin formatting and CLI handling found while testing the changes. 4. Deleted wrong asserts in dual loop for add and pop iOAM hbh nodes. The current data of the buffer ip6 start and will not be 0 5. Deleted set ioam destination cli and associate functions. iOAM add/pop is enabled via classifier, this cli is no longer used. Change-Id: I3aac71ad512762c0b2b602fe88fe0291b85d39c7 Signed-off-by: Shwetha <shwethab@cisco.com>
2016-11-01config: rename ip_config_main_t to vnet_feature_config_main_tDamjan Marion5-7/+7
It will not be used for IP only... Change-Id: I90ef3030aff7f9e24767553f019cabc1ea987126 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-10-31VPP-478: SNAT address range overlappingMatus Fabian1-0/+7
Ignore adding duplicate address. Change-Id: Icbb76bbcb3a78a18acb1a50d5d8ab777e9f9bd36 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-10-31VPP-459: SNAT dump API for in and out interfacesMatus Fabian4-61/+180
Change-Id: Ie0cba0778b094eaafa960d3f432199e1e3b2d116 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-10-27Per-packet IPFIX record generation pluginDave Barach12-0/+1476
Change-Id: Ia790aa018e70d67ed343e3e466d1b33b22560fc0 Signed-off-by: Dave Barach <dave@barachs.net>
2016-10-25Support IETF routing Yang models (VPP-503).Neale Ranns3-4/+4
Add support for special routes to send ICMP unreachable or admin prohibited. Change-Id: Ia1ac65b0e5e925c0f9ebc7824141833b4e18f05e Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-10-24Fix jvpp coverity issues #2Marek Gradzki1-14/+13
- synchronize AbstractFutureJvppInvoker.getRequests - handle registry & jvpp close in API usage examples Change-Id: I918bf864b8212fde04f0d9194037f1c6a810fc3f Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2016-10-21Java api generation for ioam trace pluginShwetha9-8/+321
Makefile, configure, jvpp changes follow snat plugin jvpp Fixes trace api handling for endianess Change-Id: Id5c950ed3c85d5e0dc28ba31b580987baa1b133f Signed-off-by: Shwetha <shwethab@cisco.com>
2016-10-19Fix coverity issues in jvpp (newlines + CompletableDumpFuture.ctxId)Marek Gradzki1-3/+3
Change-Id: I2931982ac1ae64313a6ab781212793620af24585 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2016-10-18LoadBal: Use intrinsics and use protocol numberPierre Pfister3-209/+307
This patch modifies the load balancer hash table such that it uses vector operations. It also fixes the hash computation logic such that the port is only looked-up for TCP and UDP. Some additional work is still needed for other types of traffic. Change-Id: I788b4c782a9923d3792f3985f0580c0c81b3aad3 Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-10-13VPP-446: 1:1 SNAT Inside overlapping interfacesMatus Fabian4-18/+32
Change-Id: Idabf89bd27ee95769da16331a6bd1439497b2765 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-10-13VPP-453: SNAT delete and dump addressesMatus Fabian3-26/+243
Delete operation for SNAT addresses Dump API for SNAT addresses Change-Id: I84e888d20286ec2523fbd4ca7e68e3eef5927984 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-10-10Test: Add test case for Load Balancer pluginPierre Pfister2-3/+13
This adds a basic test for the four existing encap modes for the load balancer plugin. - ip4 over gre4 - ip4 over gre6 - ip6 over gre4 - ip6 over gre6 Apparently, scapy does not support GRE and IPv6 combinations. Hence, those tests do send packets through VPP, but only ip4 over gre4 output is actually parsed and verified. Change-Id: I7cedb0f88fd0788ee51b1428ddf9cff7c037511f Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-10-10HONEYCOMB-228 Snat plugin jvpp supportMarek Gradzki6-0/+305
Change-Id: I5510a0ae3ecfeb5bd41c3a73e6e05465ebd96165 Signed-off-by: Marek Gradzki <mgradzki@cisco.com> Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
2016-10-05VPP-339: SNAT static mappingMatus Fabian6-155/+2017
1:1 NAT 1:1 NAT with ports 1:1 NAT static mapping only - add "static mapping only [connection tracking]" to snat startup config Change-Id: I37cd06a9d71d1943eb6618034d7c547c4a9348c4 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-10-05Load Balancer: Use FIB 2.0Pierre Pfister4-402/+358
This patch fixes load balancer, which was not working since FIB 2.0. Two FIB DPO types are defined: - One for IPv4 GRE - One for IPv6 GRE When an AS is created, the plugin automatically uses the result from the FIB in order to transmit the packet. Therefore, the packet does not need to visit ip-lookup twice. The 'bypass' command was removed, as it is now done automatically using this process. Change-Id: Ib505ba31bfc67897eaff752821087821c360360a Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-10-03L2 over LISP and GRE (VPP-457)Neale Ranns1-162/+163
Change-Id: I0d7f9c7f41a9f9e0acb0950adedb90d45df08c2a Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-09-21A Protocol Independent Hierarchical FIB (VPP-352)Neale Ranns10-427/+734
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-20Add structure to some of the documentation; VPP-223Chris Luke2-3/+2
Moves the random .md files, when rendered by Doxygen, into a config examples tree. We may later flesh this out into a more complete user documentation section. Change-Id: If423b82f1047f1c84f90876a786313054b5f7c77 Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-09-07Fix Coverity issue in trace_util.c (REVERSE_INULL), thanks to Damjan for ↵Vengada Govindan1-6/+7
highlighting this. Change-Id: I22b1dc800624042e043e7632179f6281a6ccaafc Signed-off-by: Vengada Govindan <venggovi@cisco.com>
2016-09-06Move iOAM Trace as a pluginVengada Govindan10-2/+1463
Change-Id: I78322e91485e5429871bd356f668b8ed90f4265a Signed-off-by: Vengada Govindan <venggovi@cisco.com>
2016-09-01VPP-341: iOAM plugin documentationShwetha2-0/+483
Change-Id: I0042ce8b8a70bb709765037c3636be667ad88aa2 Signed-off-by: Shwetha <shwethab@cisco.com>
2016-09-01Fix for vl_client_get_first_plugin_msg_id:266: plugin 'export_eb694f98' not ↵Shwetha1-1/+1
registered Change-Id: Iad6d8513e55a5f4609c7edb5505067d1136e84ea Signed-off-by: Shwetha <shwethab@cisco.com>
2016-08-25VPP Python language binding - plugin supportOle Troan2-2/+20
- 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-22Raw export of IP6 packet with iOAM metadataShwetha9-0/+1394
- is enabled on iOAM pop nodes with "set ioam export ipfix collector" - ioam_export_node Hooks into vlib graph b/n ip6-hop-by-hop node and ip6-pop-hop-by-hop node - A buffer per worker thread is created for collecting packet data to be exported - ioam_export_node exports first 3 cachelines by collecting it in a MTU sized frame, slaps on ipfix header for export - ioam_export_thread process node - checks for unsent record buffers for longer than 20 seconds and exports it - Added dual loop and prefetch in add, hop-by-hop and pop functions To be done: - IPfix template - Multi collector distribution of ipfix packets - Port to be configurable Change-Id: I959b4253036551382562bdaf10a83fd6f2f1c88b Signed-off-by: Shwetha <shwethab@cisco.com>
2016-08-19VPP-337 Add per interface IN filteringDave Barach3-10/+11
- 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-15VPP-189 Fix another batch of coverity warningsDave Barach4-6/+6
Change-Id: I1d56bc9377db161ae9226e2b2da7c1916c8d1c3b Signed-off-by: Dave Barach <dave@barachs.net>
2016-08-11VPP-130: LoadBal: Add lookup bypass and fix adjacency format functionPierre Pfister4-5/+125
Change-Id: Ib83c6ba04c41dbb80603c6a08c324d71eb44a102 Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-08-11Custom adjacency formatting fix (Revived)Pierre Pfister1-3/+3
Looks like something strange is going on with indentation. Change-Id: I8e734a2119a4a744d7ce76ce83ecc7b237828d3b Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-08-11VPP-130: MagLev-like Load BalancerPierre Pfister17-0/+2868
This plugin provides load balancing for VPP in a way that is largely inspired from Google's MagLev: http://research.google.com/pubs/pub44824.html More info in the README.md Change-Id: I1223f495d5c2d5200808a398504119f2830337e9 Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-07-29plugins/vcgn-plugin: Fix vpp hang with pthread spinlockMichael Qiu1-8/+12
Currently, pthread spinlock is initialized in macro ASSERT, thus the spinlock only will be initialized when CLIB_ASSERT_ENABLE is true. But CLIB_ASSERT_ENABLE depends on CLIB_DEBUG been set. Mostly, CLIB_DEBUG is zero, so spinlock will never been initialized, which will lead vpp hang when try to hold the lock. This patch fix this issue. Change-Id: If01982b5df849834ccbc705f8e9291f2b6c32d0a Signed-off-by: Michael Qiu <qiudayu@chinac.com>
2016-07-29plugin/vcgn:Remove local defined ip4_interface_first_addressMichael Qiu1-19/+1
Function ip4_interface_first_address has been defined in vnet/ip/ip4.h, and result an compile issue. CC vcgn/cnat_ipv4_icmp_error_outside_input.lo CC vcgn/cnat_logging.lo vcgn/cnat_logging.c:361:1: error: conflicting types for 'ip4_interface_first_address' ip4_interface_first_address (ip4_main_t * im, u32 sw_if_index) ^ In file included from /usr/include/vnet/ip/ip.h:57:0, from vcgn/cnat_logging.c:24: /usr/include/vnet/ip/ip4.h:390:1: note: previous declaration of 'ip4_interface_first_address' was here ip4_interface_first_address (ip4_main_t * im, u32 sw_if_index, ^ make: *** [vcgn/cnat_logging.lo] Error 1 Change-Id: I1165c9bb778263c195ed34ab438dcb27dfd207bc Signed-off-by: Michael Qiu <qiudayu@chinac.com>
2016-07-28Add IP adjacency registration functionPierre Pfister1-5/+17
Given that it is possible and easy to add dynamic IP adjacencies, it might be helpful to have an explicit call to do so. This way, additional information such as how to display the adjacency can be provided at the same time. Change-Id: I5c735ae45ed763560352f637e3462f2931dc97d9 Signed-off-by: Pierre Pfister <ppfister@cisco.com>