Commit Graph

31 Commits

Author SHA1 Message Date
d4bc9af55f Load Balancer: Use FIB 2.0
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-05 09:33:07 +00:00
5e575b1d59 L2 over LISP and GRE (VPP-457)
Change-Id: I0d7f9c7f41a9f9e0acb0950adedb90d45df08c2a
Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-10-03 11:45:15 +00:00
0bfe5d8c79 A Protocol Independent Hierarchical FIB (VPP-352)
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-21 17:37:39 +00:00
5ccbaa97a8 Add structure to some of the documentation; VPP-223
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-20 10:53:04 +00:00
7a35ee91a4 Fix Coverity issue in trace_util.c (REVERSE_INULL), thanks to Damjan for highlighting this.
Change-Id: I22b1dc800624042e043e7632179f6281a6ccaafc
Signed-off-by: Vengada Govindan <venggovi@cisco.com>
2016-09-07 22:19:36 -07:00
07d2f84907 Move iOAM Trace as a plugin
Change-Id: I78322e91485e5429871bd356f668b8ed90f4265a
Signed-off-by: Vengada Govindan <venggovi@cisco.com>
2016-09-06 18:53:51 +00:00
f074eef040 VPP-341: iOAM plugin documentation
Change-Id: I0042ce8b8a70bb709765037c3636be667ad88aa2
Signed-off-by: Shwetha <shwethab@cisco.com>
2016-09-01 07:29:19 +01:00
5c377a1b7f Fix for vl_client_get_first_plugin_msg_id:266: plugin 'export_eb694f98' not registered
Change-Id: Iad6d8513e55a5f4609c7edb5505067d1136e84ea
Signed-off-by: Shwetha <shwethab@cisco.com>
2016-09-01 01:53:58 +00:00
5f9dcff39d VPP Python language binding - plugin support
- 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-25 00:29:40 +00:00
a91cbe6982 Raw export of IP6 packet with iOAM metadata
- 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-22 17:19:04 +00:00
5331c72daa VPP-337 Add per interface IN filtering
- 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-19 18:42:04 +00:00
c53191deb3 VPP-189 Fix another batch of coverity warnings
Change-Id: I1d56bc9377db161ae9226e2b2da7c1916c8d1c3b
Signed-off-by: Dave Barach <dave@barachs.net>
2016-08-15 08:43:57 -04:00
6304884468 VPP-130: LoadBal: Add lookup bypass and fix adjacency format function
Change-Id: Ib83c6ba04c41dbb80603c6a08c324d71eb44a102
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-08-11 16:04:05 +01:00
5bcb3391f9 Custom adjacency formatting fix (Revived)
Looks like something strange is going on with indentation.

Change-Id: I8e734a2119a4a744d7ce76ce83ecc7b237828d3b
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-08-11 14:55:35 +00:00
041eacc816 VPP-130: MagLev-like Load Balancer
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-08-11 14:05:40 +00:00
c11ce3ee25 plugins/vcgn-plugin: Fix vpp hang with pthread spinlock
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-29 13:01:38 +00:00
2828efcfb9 plugin/vcgn:Remove local defined ip4_interface_first_address
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-29 13:01:37 +00:00
4c3f39353d Add IP adjacency registration function
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>
2016-07-28 12:19:21 +00:00
59253a4989 ILA: Add direction option to disable ila2sir or sir2ila
In a ILA router use case as described by the draft, it is proposed
to disable ILA to SIR translation and do SIR to ILA only.

Change-Id: I8d0980bb75c8d925c1d1aa4563030919dd220620
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-07-20 08:39:38 +01:00
fd8181b694 Add ILA plugin
This plugin is implementation of Identifier Locator Addressing (ILA)
per IETF draft-herbert-nvo3-ila-2

Change-Id: I5d5f8fb55c490f358f628bceb5f57e7e7408e6ed
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
Signed-off-by: Wolfgang <wolfgang.beck01@gmail.com>
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-07-17 14:00:16 +02:00
bbae375ca2 Remove unnecessary and obsolete configure.ac directives
Also enable silent rules where missing

Change-Id: Ia521886815c862b013f01df4cc18fd8a298aaaa1
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-07-08 13:55:35 +00:00
905a7f5520 Multiple changes in the plugin build infra
- configure.ac - some plugins are enabled by default
- Plugin .so files are placed into corresponding subdirs
- WITH_PLUGIN_TOOLKIT macro is retired - not needed anymore
- plugins/build-data is removed
- plugin makefiles are not building static libs anymore
- plugin makefiles are not installing header files to /usr/include
  anymore

Change-Id: I55681bd9ce34811f7eb1b2b24d9f0ca42df1cf04
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-07-08 10:43:38 +00:00
dbacf85fed Finish cleanup of .../plugins/{configure.ac, Makefile.am}
To add a new plugin subdirectory, add this to Makefile.am:

if ENABLE_new_PLUGIN
SUBDIRS += new-plugin
endif

and add this to configure.ac:
PLUGIN(new)

Change-Id: I770a6f4f8f964fd7318a912be486accf46514b59
Signed-off-by: Dave Barach <dave@barachs.net>
2016-07-02 10:35:08 -04:00
20c02cb133 Simple ip4 NAT plugin
Change-Id: Iffe77bf2a05ced41474540ff54a842101aad7c41
Signed-off-by: Dave Barach <dave@barachs.net>
2016-07-01 18:20:13 +00:00
ea3e1fc875 Plugins: Clean up the plugin directory so that each plugin has its own
directory and GNU autotools setup.

Change-Id: I6c59d1297389c9413db0c0b9bdf3b759080bf1b8
Signed-off-by: Ole Troan <ot@cisco.com>
2016-06-27 15:04:00 +00:00
d6b3850c64 Move vcgn as plugin
Use appropriate libnames to copy

Change-Id: Iaa1e7e3ceed52f328e26e75ee7309fc6464d5c66
Signed-off-by: Shesha Sreenivasamurthy <shesha@cisco.com>
2016-06-24 11:25:13 -07:00
355cf68f92 Fix for build failure due to iOAM plugin header file path
Change-Id: Ie5d270a01e3ca0687a407aeebc42aacc53a01ddc
Signed-off-by: Shwetha <shwethab@cisco.com>
2016-06-22 10:16:47 +00:00
85b528e093 VPP-76:APIs for Proof of transit feature added to iOAM
Moved Proof of Transit utility as a plugin
Moved Proof of Transit option as a plugin

Change-Id: Idc9897205eb8ec80c5dea47b428e6209ac938c32
Signed-off-by: Shwetha <shwethab@cisco.com>
2016-06-17 09:43:40 +00:00
3b3688f9d3 6rd: Move to plugin
- Change toplevel plugins make target. Now builds all plugins under
  plugins/. (Apart from sample-plugin).
- Move sixrd code to plugins directory and make necessary changes to
  make it a plugin
- Remove 6rd hooks from IP lookup code

Change-Id: I447e92e3bee240cd8de01d0abac2e1708e8c27d1
Signed-off-by: Ole Troan <ot@cisco.com>
2016-06-15 16:10:08 +02:00
3535222f97 VPP-94: Add build-data directory for plugins and Makefile target
Commit e36af5f315 moved sample-plugin a dedicated directory.
The build system could not find sources for sample-plugin-* targets.
This commit adds a dedicated build-data/packages directory for
plugins and moves sample-plugin.mk there.

Change-Id: I9e3ee8858580e86ff6d4f7317300df0a5e239a01
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-06-05 13:56:19 +00:00
e36af5f315 Create /plugins directory, move sample-plugin
Change-Id: Ia58923c7c98dc04c027c8c5879a4dc5f5b144b8a
Signed-off-by: Dave Barach <dave@barachs.net>
2016-05-23 11:02:11 -04:00