Go to file
Lou Berger 65efcfce42 bgpd: add L3/L2VPN Virtual Network Control feature
This feature adds an L3 & L2 VPN application that makes use of the VPN
and Encap SAFIs.  This code is currently used to support IETF NVO3 style
operation.  In NVO3 terminology it provides the Network Virtualization
Authority (NVA) and the ability to import/export IP prefixes and MAC
addresses from Network Virtualization Edges (NVEs).  The code supports
per-NVE tables.

The NVE-NVA protocol used to communicate routing and Ethernet / Layer 2
(L2) forwarding information between NVAs and NVEs is referred to as the
Remote Forwarder Protocol (RFP). OpenFlow is an example RFP.  For
general background on NVO3 and RFP concepts see [1].  For information on
Openflow see [2].

RFPs are integrated with BGP via the RF API contained in the new "rfapi"
BGP sub-directory.  Currently, only a simple example RFP is included in
Quagga. Developers may use this example as a starting point to integrate
Quagga with an RFP of their choosing, e.g., OpenFlow.  The RFAPI code
also supports the ability import/export of routing information between
VNC and customer edge routers (CEs) operating within a virtual
network. Import/export may take place between BGP views or to the
default zebera VRF.

BGP, with IP VPNs and Tunnel Encapsulation, is used to distribute VPN
information between NVAs. BGP based IP VPN support is defined in
RFC4364, BGP/MPLS IP Virtual Private Networks (VPNs), and RFC4659,
BGP-MPLS IP Virtual Private Network (VPN) Extension for IPv6 VPN . Use
of both the Encapsulation Subsequent Address Family Identifier (SAFI)
and the Tunnel Encapsulation Attribute, RFC5512, The BGP Encapsulation
Subsequent Address Family Identifier (SAFI) and the BGP Tunnel
Encapsulation Attribute, are supported. MAC address distribution does
not follow any standard BGB encoding, although it was inspired by the
early IETF EVPN concepts.

The feature is conditionally compiled and disabled by default.
Use the --enable-bgp-vnc configure option to enable.

The majority of this code was authored by G. Paul Ziemba
<paulz@labn.net>.

[1] http://tools.ietf.org/html/draft-ietf-nvo3-nve-nva-cp-req
[2] https://www.opennetworking.org/sdn-resources/technical-library

Now includes changes needed to merge with cmaster-next.
2016-10-03 08:17:02 -04:00
bgpd bgpd: add L3/L2VPN Virtual Network Control feature 2016-10-03 08:17:02 -04:00
cumulus Merge remote-tracking branch 'origin/cmaster' into cmaster-next 2016-08-17 20:52:04 -04:00
debian debian: Update release information 2016-09-09 14:42:59 -04:00
doc bgpd: add L3/L2VPN Virtual Network Control feature 2016-10-03 08:17:02 -04:00
fpm Use only the ISC license for .proto files. 2016-09-23 12:12:16 -04:00
gdb gdb: Add a directory of files with gdb macros 2016-05-26 15:33:30 +00:00
init build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
isisd Make route flags a 32bit field 2016-09-23 12:12:43 -04:00
ldpd ldpd: always advertise labels upon receiving a redistributed route 2016-09-28 16:05:42 -04:00
lib bgpd: add L3/L2VPN Virtual Network Control feature 2016-10-03 08:17:02 -04:00
m4 build: fix "pragma weak" mixups 2013-02-09 03:00:12 +01:00
ospf6d Make route flags a 32bit field 2016-09-23 12:12:43 -04:00
ospfclient lib: migrate to new memory-type handling 2016-09-19 18:35:50 +02:00
ospfd ospfd: Fix OSPF daemon pid file param 2016-09-29 20:03:28 -04:00
pimd Make route flags a 32bit field 2016-09-23 12:12:43 -04:00
pkgsrc build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
ports pimd: merge pimd as of 2015-01-19 2016-05-25 20:38:32 -04:00
qpb fpm/protobuf: fix compile errors & warnings 2016-09-23 12:12:17 -04:00
redhat bgpd: add L3/L2VPN Virtual Network Control feature 2016-10-03 08:17:02 -04:00
ripd bgpd: add L3/L2VPN Virtual Network Control feature 2016-10-03 08:17:02 -04:00
ripngd bgpd: add L3/L2VPN Virtual Network Control feature 2016-10-03 08:17:02 -04:00
solaris solaris: fix SMF manifest dependency model and start method 2016-05-26 15:25:13 +00:00
tests bgpd: add L3/L2VPN Virtual Network Control feature 2016-10-03 08:17:02 -04:00
tools tools: quagga-reload should raise Exception instead of exiting 2016-09-27 16:00:47 +00:00
vtysh bgpd: add L3/L2VPN Virtual Network Control feature 2016-10-03 08:17:02 -04:00
watchquagga Fix for CM-12450 Ensure quagga logs at startup are sent to syslog (until log configuration is processed) 2016-08-17 19:36:54 -07:00
zebra bgpd: add L3/L2VPN Virtual Network Control feature 2016-10-03 08:17:02 -04:00
.gitignore qpb: Add support for protobuf. 2016-09-23 12:12:16 -04:00
AUTHORS Initial revision 2002-12-13 20:15:29 +00:00
bootstrap.sh autoreconf -i 2007-02-06 19:28:28 +00:00
buildtest.sh build: remove --disable-ipv6 2016-06-03 15:51:36 -04:00
ChangeLog [trivia] Make 'make dist' happy about ChangeLog expunge 2008-08-23 08:36:42 +01:00
common.am qpb: Add support for protobuf. 2016-09-23 12:12:16 -04:00
configure.ac bgpd: add L3/L2VPN Virtual Network Control feature 2016-10-03 08:17:02 -04:00
COPYING *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
COPYING.LIB *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
HACKING.md HACKING: Change format to MarkDown 2016-05-26 15:33:32 +00:00
HACKING.pending HACKING.pending: Add Quagga-RE details 2012-03-02 11:56:38 +00:00
INSTALL.quagga.txt build: goodbye, gawk 2016-09-19 16:31:08 -04:00
Makefile.am bgpd: add L3/L2VPN Virtual Network Control feature 2016-10-03 08:17:02 -04:00
NEWS release: 0.99.24 2016-06-03 15:56:44 -04:00
README 2004-11-12 Paul Jakma <paul@dishone.st> 2004-11-12 10:30:21 +00:00
README.NetBSD Omit --opaque-lsa from build (now default). 2011-06-28 15:05:05 -04:00
REPORTING-BUGS Update for git and emphasize asking for good reports. 2010-05-05 07:51:26 -04:00
SERVICES pimd: merge pimd as of 2015-01-19 2016-05-25 20:38:32 -04:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00
TODO doc: update TODO for ospf6d work & bgp multipath 2013-04-16 11:56:11 +02:00
update-autotools * README.NetBSD: use update-autotools instead of autoreconf 2007-02-02 16:52:38 +00:00

Quagga is free software that manages various IPv4 and IPv6 routing
protocols.

Currently Quagga supports BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1,
RIPv2, and RIPng as well as very early support for IS-IS.
  
See the file INSTALL.quagga.txt for building and installation instructions.
  
See the file REPORTING-BUGS to report bugs.
  
Quagga is free software. See the file COPYING for copying conditions.