[quagga-dev 16390] [PATCH 56/57] bgpd: adj-in-rib table per VRF

2016-10-28 Thread Philippe Guibert
When enabling adj-rib-in for global RIB table, it automatically stores adj-rib-entries for VRF RIB tables. This commit introduces a new vty command to dump the adj-rib-in entries per vrf: show ip bgp vrf neighbor received-routes Signed-off-by: Philippe Guibert ---

[quagga-dev 16386] [PATCH 54/57] bgpd: VRF table exportation filters labels according to layer type

2016-10-28 Thread Philippe Guibert
From: Julien Courtat >From draft-ietf-bess-evpn-inter-subnet-forwarding-01#section-5.1.1, Label-1 and Label-2 is not exported systematically. Actually, Label-1 refers to MAC-VRF and is exported to LAYER_2 VRF. Label-2 will act the same with IP-VRF and is exported to

[quagga-dev 16387] [PATCH 53/57] bgpd: evpn import processing

2016-10-28 Thread Philippe Guibert
Enhancement of EVPN bgp information exportation to VRF RIBs. Currently, only IPv4 unicast VRF RIBs are filled in, according from EVPN information coming from Prefix route advertisements. Labels are processed differently according to the VRF layer type. In addition to this, routermac will not be

[quagga-dev 16389] [PATCH 57/57] bgpd: VRF adj rib in update

2016-10-28 Thread Philippe Guibert
This commit appends or withdraw entries in ADJ-RIB-IN entries of VRF RIB tables. Signed-off-by: Philippe Guibert --- bgpd/bgp_route.c | 45 + 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/bgpd/bgp_route.c

[quagga-dev 16388] [PATCH 55/57] bgpd: show ip bgp vrf enhancements.

2016-10-28 Thread Philippe Guibert
add vty command : show ipv6 bgp vrf [route] This command permits to dump IPv6 entries in VRF RIB filled by export RT facility. Type 1 route distinguishers are now supported by command show ip bgp vrf Signed-off-by: Philippe Guibert --- bgpd/bgp_route.c | 41

[quagga-dev 16384] [PATCH 52/57] bgpd: add VRF field layer type

2016-10-28 Thread Philippe Guibert
From: Julien Courtat On VRF creation, an additionnal parameter layer type can be provided to distinguish between layer 2 and layer 3 vrf. layer 2 is used by EVPN when dealing with MAC/IP route advertisement. layer 3 is used by any other route L3VPN or EVPN route

[quagga-dev 16377] [PATCH 44/57] bgpd: MAC/IP advertisements have next hop attribute

2016-10-28 Thread Philippe Guibert
When sending an EVPN MAC/IP attribute, the nexthop attribute is also appended. Signed-off-by: Philippe Guibert --- bgpd/bgp_attr.c | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bgpd/bgp_attr.c b/bgpd/bgp_attr.c index

[quagga-dev 16382] [PATCH 51/57] bgpd: avoid sending duplicated nlri attributed in bgp

2016-10-28 Thread Philippe Guibert
When configuring MPLS or EVPN entries, the NLRI is duplicated. Which is not wished. Signed-off-by: Philippe Guibert --- bgpd/bgp_attr.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bgpd/bgp_attr.c b/bgpd/bgp_attr.c index

[quagga-dev 16365] [PATCH 31/57] bgpd: evpn vty show commands are moved under show bgp l2vpn

2016-10-28 Thread Philippe Guibert
All current vty show commands related to evpn are moved from show bgp evpn node to show bgp l2vpn evpn node. Only two commands are kept: show bgp evpn rd <> [overlay] has been duplicated. Signed-off-by: Philippe Guibert --- bgpd/bgp_evpn.c | 105

[quagga-dev 16380] [PATCH 46/57] bgpd: mpath debug displays l2vpn prefix

2016-10-28 Thread Philippe Guibert
The introduction of L2VPN prefix in EVPN makes that the inner IP prefix must be retrieved to display correct information. Signed-off-by: Julien Courtat --- bgpd/bgp_mpath.c | 14 +- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git

[quagga-dev 16373] [PATCH 40/57] lib: afi_ether structure packing fix

2016-10-28 Thread Philippe Guibert
'packed' keyword had no effect on packing the afi_ethernet structure. The attribute keyword has been eppended in order to take into account the packed feature. Signed-off-by: Julien Courtat --- lib/prefix.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff

[quagga-dev 16368] [PATCH 37/57] bgpd: introduction of vxlan tunnel attribute

2016-10-28 Thread Philippe Guibert
As per draft-ietf-idr-tunnel-encaps-02, section 3.2.1, BGP Encap attribute supports vxlan tunnel type. A new tunnel attribute has been appended to subtlv list, describing the vxlan network identifier to be used for the routing information of the BGP update message. Signed-off-by: Philippe Guibert

[quagga-dev 16371] [PATCH 39/57] bgpd: fix compilation warning due to AFI_ETHER

2016-10-28 Thread Philippe Guibert
This commits avoids keeping a warning of compilation. Signed-off-by: Philippe Guibert --- bgpd/bgp_open.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bgpd/bgp_open.c b/bgpd/bgp_open.c index 75c840ef4958..ce1fea16971e 100644 --- a/bgpd/bgp_open.c +++

[quagga-dev 16369] [PATCH 35/57] bgpd: support for router mac extended community

2016-10-28 Thread Philippe Guibert
As per draft-ietf-bess-evpn-inter-subnet-forwarding-01, chapter 6.1, a new extended community called router's MAC Extended Community is provided. This community is appended to extended community list. Note that a show API has been changed in order to be able to not display (or not) this new type.

[quagga-dev 16366] [PATCH 33/57] bgpd: enhance network command for evpn route type 5

2016-10-28 Thread Philippe Guibert
A new vty command available under evpn address family. This command takes following format: (af-evpn)# network A.B.C.D/M rd ASN:nn_or_IP-address:nn ethtag WORD label WORD esi WORD gwip A.B.C.D routermac WORD Among new parameters, ethtag stands for the ethernet tag indentifier.

[quagga-dev 16370] [PATCH 38/57] bgpd: handling router mac extended community

2016-10-28 Thread Philippe Guibert
For each received routermac extended community, the mac address is copied into routermac extended community context. For each emission, a check is done against routermac extended community, if L2VPN is enabled. If enabled, the extended community is appended. Signed-off-by: Philippe Gubiert

[quagga-dev 16358] [PATCH 27/57] bgpd: route type 5 internal structures plus processing

2016-10-28 Thread Philippe Guibert
The commit introduces the changes to be done to carry route type 5 EVPN information in bgp extra attribute information. The commit also handles the update processing for route type 5 information. Signed-off-by: Philippe Guibert --- bgpd/bgp_attr.c | 16 -

[quagga-dev 16363] [PATCH 30/57] bgpd: enhance EPVN vty show commands

2016-10-28 Thread Philippe Guibert
This patch introduces show show bgp evpn commands to dump NLRI entries configured or received on BGP, related to EVPN route type 5. New command introduced is the following: show bgp evpn [all | rd ] [overlay] This command displays gw ip field of the RT-5 message in the nexthop field of the show

[quagga-dev 16362] [PATCH 29/57] bgpd: evpn RT-5 bgp update carries nexthop attribute

2016-10-28 Thread Philippe Guibert
This patch appends nexthop attribute to EVPN message, in addition to appending gateway IP in RT-5 NLRI itself. In reception, if both informations are stored, then the GW IP information will supersede the NLRI nexthop attribute. Signed-off-by: Philippe Guibert ---

[quagga-dev 16359] [PATCH 26/57] bgpd: handling EVPN Route Type 5 NLRI message

2016-10-28 Thread Philippe Guibert
This patch introduces code to receive a NLRI message with route type 5, as defined in draft-ietf-bess-evpn-prefix-advertisement-02. It It increases the number of parameters to extract from the NLRI and to store into bgp extra information structure. Those parameters are the ESI (ethernet segment

[quagga-dev 16360] [PATCH 28/57] bgpd: evpn NLRI route type 5 forging

2016-10-28 Thread Philippe Guibert
This patch introduces the ability to make route type 5 message when EVPN is enabled. Picked up paramters are collected from the bgp extra attribute structure and are the ESI, the ethernet tag information. In addition to this, nexthop attribute is collected too. Signed-off-by: Philippe Guibert

[quagga-dev 16345] [PATCH 13/57] bgpd: apply multipath algorithm to VRF

2016-10-28 Thread Philippe Guibert
This commit checks for the maximum path per VRF before running the multipath algorithm. This makes it possible to limit the number of paths for a specific VRF, and not for an other one. Signed-off-by: Philippe Guibert --- bgpd/bgp_mpath.c | 34

[quagga-dev 16356] [PATCH 22/57] tests: update safi_valid_indices API

2016-10-28 Thread Philippe Guibert
There has been a change in API safi_valid_indices. This modification is updating the call API. Signed-off-by: Philippe Guibert --- tests/bgp_capability_test.c | 13 +++-- tests/bgp_mp_attr_test.c| 9 + 2 files changed, 12 insertions(+), 10

[quagga-dev 16333] [PATCH 00/57] Ethernet VPN RFC Patch

2016-10-28 Thread Philippe Guibert
As explained in a previous mail addressed to quagga-dev, Tue, Oct 25, 2016 at 2:46 PM, the proposed implementation covers the following: - EVPN route type 2 aka MAC/IP advertisement - EVPN route type 5 aka Prefix IP advertisement. It is possible to statically set abovementioned messages. It also

[quagga-dev 16344] [PATCH 09/57] bgpd: VRF import processing

2016-10-28 Thread Philippe Guibert
From: Christian Franke This enhancement permits to export received or locally set route entries for MPLS VPN, to the appropriate VRF. By introducing the RFC4360 and BGP extended communities, some export route target are received on BGP update, or some import route

[quagga-dev 16342] [PATCH 11/57] bgpd: vty command for vrf maximum path configuration

2016-10-28 Thread Philippe Guibert
From: Julien Courtat Enhancement of new vty command to configure the maximum number of multipath entries that are possible within a VRF RIB table. The following command is available: - vrf rd maximum-path <1-64> - no vrf rd maximum-path <1-64> Vrfs with a

[quagga-dev 16346] [PATCH 14/57] bgpd: sanity check against accessing invalid table pointer.

2016-10-28 Thread Philippe Guibert
This sanity check has been discovered when running bgp mpath_tests that are available in tests folder. Signed-off-by: Philippe Guibert --- bgpd/bgp_mpath.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bgpd/bgp_mpath.c b/bgpd/bgp_mpath.c index

[quagga-dev 16339] [PATCH 05/57] bgpd: multiple label stack support

2016-10-28 Thread Philippe Guibert
From: David Lamparter Support for multiple label support handling in NLRI messages. Ability to receive and sent BGP updates with NLRI containing multiple labels. The commit follows label encoding rules, contained in RFC3107. Signed-off-by: David Lamparter

[quagga-dev 16353] [PATCH 20/57] bgpd: basic vty support for EVPN

2016-10-28 Thread Philippe Guibert
Introduction of EVPN address-family node that is reachable under BGP node, like follow: address-family evpn. Under that node, only some commands are available for configuring a neighbor or setting some basic settings like attribute unchanged behaviour. Currently, no vty command is available for

[quagga-dev 16337] [PATCH 02/57] bgpd: vpnv4 af exports extended communities

2016-10-28 Thread Philippe Guibert
If the user preconfigures a vrf with import and export rules, before creating a new network on vpnv4 address, then BGP update emitted will contain the exported rts mentioned by the vrf export rule. Signed-off-by: Philippe Guibert --- bgpd/bgp_route.c | 11 +++

[quagga-dev 16349] [PATCH 19/57] vtysh: add support of address-family evpn

2016-10-28 Thread Philippe Guibert
From: Julien Courtat Update extract.pl ignore list to prevent from installing address_family_evpn_cmd twice and have "Ambiguous command" return by vtysh when trying to configure address-family evpn. Signed-off-by: Julien Courtat ---

[quagga-dev 16336] [PATCH 03/57] tests: enhance bgpd testing with label value

2016-10-28 Thread Philippe Guibert
bgp NLRI has a specific format for label, terminating with bottom of stack bit. This value is updated in all BGP attribute tests. A specific test has been added to check for a list of labels contained in a single NLRI. Signed-off-by: Philippe Guibert ---

[quagga-dev 16351] [PATCH 17/57] bgpd: basic support for EVPN

2016-10-28 Thread Philippe Guibert
To handle BGP NLRI EVPN messages, bgp is modified to handle AFI_L2VPN and SAFI_EVPN values. Signed-off-by: Philippe Guibert --- bgpd/bgp_attr.c | 25 ++- bgpd/bgp_open.c | 29 ++- bgpd/bgp_packet.c | 28

[quagga-dev 16341] [PATCH 10/57] bgpd: VRF RIB log updates enhancement

2016-10-28 Thread Philippe Guibert
On adding/removing/updating NLRI entries into VRF RIB tables, a BGP event is fired. Note that only selected entries, and entries that are part of multipath entries, and where one of the multipath entry is selected. Signed-off-by: Philippe Guibert --- bgpd/bgp_route.c

[quagga-dev 16347] [PATCH 15/57] bgpd: avoid looping when unselecting a list of mpath entries

2016-10-28 Thread Philippe Guibert
sometimes, when electing best route algorithm, a static route may be injected, thus causing all old multipath entries to be removed from multipath list. As a loop is removing each mpath entry from mpath list, it is necessary to update the pointer. Signed-off-by: Philippe Guibert

[quagga-dev 16334] [PATCH 01/57] bgpd: VRF vty configuration, RIB table creation

2016-10-28 Thread Philippe Guibert
This commit introduces the BGP VRF configuration, and BGP VRF RIB table. It includes the ability for a BGP to configure its own route distinguisher ( aka VRF). New vty commands introduced: (config-router)# vrf rd This structure permits configuring import and export route targets, which is

[quagga-dev 16335] [PATCH 04/57] lib: 3byte stream foo

2016-10-28 Thread Philippe Guibert
From: David Lamparter API enhancement to be able to write and read 3 byte series in stream structures. Signed-off-by: David Lamparter Signed-off-by: Philippe Guibert --- lib/stream.c | 77

[quagga-dev 16354] [PATCH 18/57] bgpd: bgp open graceful restart capability fix with mpls

2016-10-28 Thread Philippe Guibert
If vpnv4 capability has to be sent, then the correct safi parameter is sent instead of internal value. In case BGP open graceful restart capability is applied to EVPN, then the flags to be set are modified to be official afi and safi parameters, and not internal value. Signed-off-by: Philippe

[quagga-dev 16338] [PATCH 07/57] bgpd: BGP VRF processing handling

2016-10-28 Thread Philippe Guibert
NLRI entries received from MP-BGP peer exchange are exported in VRF RIB tables. This commit introduces the BGP VRF processing handler that can be used for further processing into VRF RIB tables: best selection algorithm, multipath. Signed-off-by: Philippe Guibert ---

[quagga-dev 16352] [PATCH 21/57] bgpd: safi_valid_indices ability to return internal afi identifier

2016-10-28 Thread Philippe Guibert
Because afi numbers can reach high values, a conversion is necessary to return associate afi internal identifier. The safi_valid_indices API has been changed for that. Signed-off-by: Philippe Guibert --- bgpd/bgp_open.c | 22 +++--- bgpd/bgp_open.h

[quagga-dev 16343] [PATCH 08/57] bgpd: detect if bgp_info is multipath entry

2016-10-28 Thread Philippe Guibert
Enhance a function that permits knowing if two entries belong to the same multipath group. Signed-off-by: Philippe Guibert --- bgpd/bgp_mpath.c | 15 +++ bgpd/bgp_mpath.h | 1 + 2 files changed, 16 insertions(+) diff --git a/bgpd/bgp_mpath.c

[quagga-dev 16340] [PATCH 06/57] tests: fix BGP VRF interactions

2016-10-28 Thread Philippe Guibert
From: David Lamparter Signed-off-by: David Lamparter Signed-off-by: Philippe Guibert --- tests/Makefile.am | 2 +- tests/bgp_mpath_test.c | 15 +++ 2 files changed, 16 insertions(+), 1