]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
4 years agoisisd: set TE link params on circuit creation
Emanuele Di Pascale [Tue, 19 May 2020 16:04:39 +0000 (18:04 +0200)]
isisd: set TE link params on circuit creation

if mpls-te is enabled in the area, on creating a circuit we
must refresh the link params - else interfaces that are enabled
for IS-IS after configuring 'mpls-te on' will not correctly
advertise link parameters.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
4 years agoMerge pull request #6389 from mjstapp/fix_recursive_label_type
Russ White [Tue, 19 May 2020 15:42:36 +0000 (11:42 -0400)]
Merge pull request #6389 from mjstapp/fix_recursive_label_type

zebra: prefer outer label_type for recursive nexthops

4 years agoMerge pull request #6419 from vivek-cumulus/zebra_macfdb_fixup
Sri Mohana Singamsetty [Tue, 19 May 2020 15:18:37 +0000 (08:18 -0700)]
Merge pull request #6419 from vivek-cumulus/zebra_macfdb_fixup

Zebra macfdb fixup

4 years agoMerge pull request #6351 from opensourcerouting/fpm-nh
Stephen Worley [Tue, 19 May 2020 15:01:03 +0000 (11:01 -0400)]
Merge pull request #6351 from opensourcerouting/fpm-nh

fpm: explicit next hop groups control

4 years agoMerge pull request #5077 from pguibert6WIND/vxlan_link
Donatas Abraitis [Tue, 19 May 2020 06:12:38 +0000 (09:12 +0300)]
Merge pull request #5077 from pguibert6WIND/vxlan_link

BGP EVPN vrf netns backend

4 years agoMerge pull request #6344 from dslicenc/ospf6-routemap-delete
Russ White [Mon, 18 May 2020 22:52:46 +0000 (18:52 -0400)]
Merge pull request #6344 from dslicenc/ospf6-routemap-delete

ospf6d: withdraw redistributed prefixes based on prefix-list changes

4 years agoMerge pull request #6420 from vivek-cumulus/bgpd-paths-cleanup
Russ White [Mon, 18 May 2020 21:24:48 +0000 (17:24 -0400)]
Merge pull request #6420 from vivek-cumulus/bgpd-paths-cleanup

bgpd: Free non-best paths also during table cleanup

4 years agoMerge pull request #6421 from vivek-cumulus/zebra_trust_onlink
Russ White [Mon, 18 May 2020 21:23:57 +0000 (17:23 -0400)]
Merge pull request #6421 from vivek-cumulus/zebra_trust_onlink

zebra: Trust onlink flag for nexthop active resolution

4 years agozebra: support for macvlan interfaces
Philippe Guibert [Thu, 6 Feb 2020 08:33:21 +0000 (09:33 +0100)]
zebra: support for macvlan interfaces

mac vlan interfaces are supported in different network namespaces.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agodoc: add some documentation about bgp evpn netns support
Philippe Guibert [Thu, 6 Feb 2020 08:32:21 +0000 (09:32 +0100)]
doc: add some documentation about bgp evpn netns support

a linux configuration gives some explanation on how to set up an evpn
overlay in network namespaces.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agozebra: dynamically detect vxlan link interfaces in other netns
Philippe Guibert [Mon, 6 Jan 2020 16:39:17 +0000 (17:39 +0100)]
zebra: dynamically detect vxlan link interfaces in other netns

this is used when parsing the newly network namespaces. actually, to
track the link of some interfaces like vxlan interfaces, both link index
and link nsid are necessary. if a vxlan interface is moved to a new
netns, the link information is in the default network namespace, then
LINK_NSID is the value of the netns by default in the new netns. That
value of the default netns in the new netns is not known, because the
system does not automatically assign an NSID of default network
namespace in the new netns. Now a new NSID of default netns, seen from
that new netns, is created. This permits to store at netns creation the
default netns relative value for further usage.
Because the default netns value is set from the new netns perspective,
it is not needed anymore to use the NETNSA_TARGET_NSID attribute only
available in recent kernels.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agobgpd: sanity check when updating nexthop from bgp to zebra
Philippe Guibert [Fri, 3 Jan 2020 18:03:18 +0000 (19:03 +0100)]
bgpd: sanity check when updating nexthop from bgp to zebra

nexthop may sometimes not be passed through zebra, like for onlink
messages.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agolib, zebra: reuse and adapt ns_list walk functionality
Philippe Guibert [Fri, 20 Dec 2019 16:51:37 +0000 (17:51 +0100)]
lib, zebra: reuse and adapt ns_list walk functionality

the walk routine is used by vxlan service to identify some contexts in
each specific network namespace, when vrf netns backend is used. that
walk mechanism is extended with some additional paramters to the walk
routine.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agozebra: local mac entries populated in correct netnamespace
Philippe Guibert [Mon, 28 Oct 2019 11:02:17 +0000 (12:02 +0100)]
zebra: local mac entries populated in correct netnamespace

MAC address neighbours are read on the same netnamespace where the vxlan
interface is.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agozebra: when parsing local entry against dad, retrieve config
Philippe Guibert [Fri, 25 Oct 2019 12:25:00 +0000 (14:25 +0200)]
zebra: when parsing local entry against dad, retrieve config

when duplicate address detection is observed, some incrementation,
some timing mechanisms need to be done. For that the main evpn
configuration is retrieved. Until now, the VRF that was storing the dad
config parameters was the same VRF that hosted the VXLAN interface. With
netns backend, this is not true, as the VXLAN interface is in the
same VRF as the bridge interface. The modification takes same definition
as in BGP, that is to say that there is a single bgp evpn instance, and
this is that instance that will give the correct config settings.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agobgpd: evpn nexthop can be changed by default
Philippe Guibert [Fri, 11 Oct 2019 12:11:13 +0000 (14:11 +0200)]
bgpd: evpn nexthop can be changed by default

There can be cases where evpn traffic is not meshed across various
endpoints, but sent to a central pe. For this situation, remove the
nexthop unchanged default behaviour for bgp evpn. Also add route
reflector commands to bgp evpn node.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agozebra: zvni_map_to_vlan() adaptation for all namespaces
Philippe Guibert [Wed, 9 Oct 2019 11:59:37 +0000 (13:59 +0200)]
zebra: zvni_map_to_vlan() adaptation for all namespaces

this change is needed when a MAC/IP entry is learned by zebra, and the
entry happens to be in a different namespace. So that the entry be
active, the correct vni match has to be found.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agozebra: fdb and neighbor table are read for all zns
Philippe Guibert [Fri, 27 Sep 2019 13:46:22 +0000 (15:46 +0200)]
zebra: fdb and neighbor table are read for all zns

all network namespaces are read so as to collect interesting fdb and
neighbor tables for EVPN.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agozebra: add ns_id attribute to mac structure
Philippe Guibert [Wed, 9 Oct 2019 09:34:46 +0000 (11:34 +0200)]
zebra: add ns_id attribute to mac structure

this information is necessary for local information, because the
interface associated to the mac address is stored with its ifindex, and
the ifindex may not be enough to get to the right interface when it
comes with multiple network namespaces.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agozebra: bridge layer2 information records ns_id where bridge is
Philippe Guibert [Thu, 3 Oct 2019 15:11:37 +0000 (17:11 +0200)]
zebra: bridge layer2 information records ns_id where bridge is

when working with vrf netns backend, two bridges interfaces may have the
same bridge interface index, but not the same namespace. because in vrf
netns backend mode, a bridge slave always belong to the same network
namespace, then a check with the namespace id and the ns id of the
bridge interface permits to resolve correctly the interface pointer.
The problem could occur if a same index of two bridge interfaces can be
found on two different namespaces.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agozebra, lib: new API to get absolute netns val from relative netns val
Philippe Guibert [Wed, 2 Oct 2019 11:37:11 +0000 (13:37 +0200)]
zebra, lib: new API to get absolute netns val from relative netns val

when receiving a netlink API for an interface in a namespace, this
interface may come with LINK_NSID value, which means that the interface
has its link in an other namespace. Unfortunately, the link_nsid value
is self to that namespace, and there is a need to know what is its
associated nsid value from the default namespace point of view.
The information collected previously on each namespace, can then be
compared with that value to check if the link belongs to the default
namespace or not.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agozebra, lib: store relative default ns id in each namespace
Philippe Guibert [Wed, 2 Oct 2019 11:34:40 +0000 (13:34 +0200)]
zebra, lib: store relative default ns id in each namespace

to be able to retrieve the network namespace identifier for each
namespace, the ns id is stored in each ns context. For default
namespace, the netns id is the same as that value.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agozebra, lib: add an internal API to get relative default nsid in other ns
Philippe Guibert [Wed, 2 Oct 2019 10:14:13 +0000 (12:14 +0200)]
zebra, lib: add an internal API to get relative default nsid in other ns

as remind, the netns identifiers are local to a namespace. that is to
say that for instance, a vrf <vrfx> will have a netns id value in one
netns, and have an other netns id value in one other netns.
There is a need for zebra daemon to collect some cross information, like
the LINK_NETNSID information from interfaces having link layer in an
other network namespace. For that, it is needed to have a global
overview instead of a relative overview per namespace.
The first brick of this change is an API that sticks to netlink API,
that uses NETNSA_TARGET_NSID. from a given vrf vrfX, and a new vrf
created vrfY, the API returns the value of nsID from vrfX, inside the
new vrf vrfY.
The brick also gets the ns id value of default namespace in each other
namespace. An additional value in ns.h is offered, that permits to
retrieve the default namespace context.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agozebra: map vxlan interface to bridge interface with correct ns id
Philippe Guibert [Tue, 1 Oct 2019 09:07:13 +0000 (11:07 +0200)]
zebra: map vxlan interface to bridge interface with correct ns id

an incoming bridge index has been found, that is linked with vxlan
interface, and the search for that bridge interface is done. In
vrf-lite, the search is done across the same default namespace, because
bridge and vxlan may not be in the same vrf. But this behaviour is wrong
when using vrf netns backend, as the bridge and the vxlan have to be in
the same vrf ( hence in the same network namespace). To comply with
that, use the netnamespace of the vxlan interface. Like that, the
appropriate nsid is passed as parameter, and consequently, the search is
correct, and the mac address passed to BGP will be ok too.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agozebra: display interface slave type
Philippe Guibert [Fri, 27 Sep 2019 13:12:27 +0000 (15:12 +0200)]
zebra: display interface slave type

interface slave type is displayed.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agozebra: zvni_map_to_svi() adaptation for other network namespaces
Philippe Guibert [Fri, 27 Sep 2019 13:45:42 +0000 (15:45 +0200)]
zebra: zvni_map_to_svi() adaptation for other network namespaces

the function is called with all the network namespaces.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agozebra: zvni_from_svi() adaptation for other network namespaces
Philippe Guibert [Fri, 27 Sep 2019 09:17:20 +0000 (11:17 +0200)]
zebra: zvni_from_svi() adaptation for other network namespaces

other network namespaces are parsed because bridge interface can be
bridged with vxlan interfaces with a link in the default vrf that hosts
l2vpn.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agozebra: importation of bgp evpn rt5 from vni with other netns
Philippe Guibert [Thu, 26 Sep 2019 16:49:59 +0000 (18:49 +0200)]
zebra: importation of bgp evpn rt5 from vni with other netns

With vrf-lite mechanisms, it is possible to create layer 3 vnis by
creating a bridge interface in default vr, by creating a vxlan interface
that is attached to that bridge interface, then by moving the vxlan
interface to the wished vrf.
With vrf-netns mechanism, it is slightly different since bridged
interfaces can not be separated in different network namespaces. To make
it work, the setup consists in :
- creating a vxlan interface on default vrf.
- move the vxlan interface to the wished vrf ( with an other netns)
- create a bridge interface in the wished vrf
- attach the vxlan interface to that bridged interface

from that point, if BGP is enabled to advertise vnis in default vrf,
then vxlan interfaces are discovered appropriately in other vrfs,
provided that the link interface still resides in the vrf where l2vpn is
advertised.
to import ipv4 entries from a separate vrf, into the l2vpn, the
configuration of vni in the dedicated vrf + the advertisement of ipv4
entries in bgp vrf will import the entries in the bgp l2vpn.

the modification consists in parsing the vxlan interfaces in all network
namespaces, where the link resides in the same network namespace as the
bgp core instance where bgp l2vpn is enabled.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agozebra: across network namespace, vxlan remembers the link information
Philippe Guibert [Tue, 24 Sep 2019 08:44:58 +0000 (10:44 +0200)]
zebra: across network namespace, vxlan remembers the link information

the link information of vxlan interface is populated in layer 2
information, as well as in layer 2 vxlan information. This information
will be used later to collect vnis that are in other network namespaces,
but where bgp evpn is enabled on main network namespaces, and those vnis
have the link information in that namespace.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agoMerge pull request #6406 from donaldsharp/ospf_multi_instance_start_fix
Donatas Abraitis [Mon, 18 May 2020 11:51:17 +0000 (14:51 +0300)]
Merge pull request #6406 from donaldsharp/ospf_multi_instance_start_fix

tools: Only load instances or daemon

4 years agoMerge pull request #6422 from rudis/master
Donatas Abraitis [Sun, 17 May 2020 11:31:02 +0000 (14:31 +0300)]
Merge pull request #6422 from rudis/master

Doc: minor fixes

4 years agodoc: ospf_fundamentals: fix typos
Simon Ruderich [Sat, 16 May 2020 08:16:53 +0000 (10:16 +0200)]
doc: ospf_fundamentals: fix typos

Signed-off-by: Simon Ruderich <simon@ruderich.org>
4 years agodoc: bgp: fix rst syntax
Simon Ruderich [Sat, 25 Apr 2020 06:41:49 +0000 (08:41 +0200)]
doc: bgp: fix rst syntax

Signed-off-by: Simon Ruderich <simon@ruderich.org>
4 years agodoc: wecmp_linkbw: fix typo
Simon Ruderich [Sat, 25 Apr 2020 06:41:41 +0000 (08:41 +0200)]
doc: wecmp_linkbw: fix typo

Signed-off-by: Simon Ruderich <simon@ruderich.org>
4 years agodoc: bgp: fix typos
Simon Ruderich [Sat, 25 Apr 2020 06:17:03 +0000 (08:17 +0200)]
doc: bgp: fix typos

Signed-off-by: Simon Ruderich <simon@ruderich.org>
4 years agodoc: zebra: use correct format for `show ip/ipv6 forward` command
Simon Ruderich [Sat, 25 Apr 2020 06:02:08 +0000 (08:02 +0200)]
doc: zebra: use correct format for `show ip/ipv6 forward` command

Signed-off-by: Simon Ruderich <simon@ruderich.org>
4 years agozebra: Trust onlink flag for nexthop active resolution
vivek [Fri, 15 May 2020 23:22:01 +0000 (16:22 -0700)]
zebra: Trust onlink flag for nexthop active resolution

When checking if a nexthop is active, if it has been marked as onlink,
just check on the presence and status of the nexthop's interface. When
handling client request to create a route, if the client says that the
nexthop is onlink, trust it; when internally (in zebra) determining
that the nexthop is onlink, ensure it is only done in the case of an
interface with a /32 IP address which is the case for OSPF unnumbered.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agobgpd: Free non-best paths also during table cleanup
vivek [Fri, 15 May 2020 21:32:38 +0000 (14:32 -0700)]
bgpd: Free non-best paths also during table cleanup

Non-best paths (path info structures) also need to be freed during
table cleanup not only to release their memory but to also ensure
any linkages are updated correctly. One such example is for EVPN
where there is a link between the imported path info (in a L2 or
L3 vrf instance) and its parent path info.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
4 years agozebra: Install bridge FDB entries with correct VTEP IP
vivek [Fri, 15 May 2020 21:01:59 +0000 (14:01 -0700)]
zebra: Install bridge FDB entries with correct VTEP IP

Fixes: zebra: adapt and export rmac netlink functions
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
4 years agozebra: Pass correct buffer to MAC FDB netlink message build
vivek [Fri, 15 May 2020 20:58:30 +0000 (13:58 -0700)]
zebra: Pass correct buffer to MAC FDB netlink message build

Fixes: zebra: adapt and export rmac netlink functions
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
4 years agoMerge pull request #6404 from FRRouting/dev_isis_sr
Donald Sharp [Fri, 15 May 2020 12:38:06 +0000 (08:38 -0400)]
Merge pull request #6404 from FRRouting/dev_isis_sr

isisd: IS-IS Segment Routing support

4 years agoMerge pull request #6401 from volta-networks/fix_c++_keywords
Donald Sharp [Fri, 15 May 2020 11:49:10 +0000 (07:49 -0400)]
Merge pull request #6401 from volta-networks/fix_c++_keywords

zebra: avoid using c++ keywords in headers

4 years agoMerge pull request #6400 from mjstapp/fix_sa_zebra_nb_state
Renato Westphal [Fri, 15 May 2020 02:52:14 +0000 (23:52 -0300)]
Merge pull request #6400 from mjstapp/fix_sa_zebra_nb_state

zebra: fix SA warning in zebra_nb_state.c

4 years agotools: Only load instances or daemon
Donald Sharp [Thu, 14 May 2020 18:07:23 +0000 (14:07 -0400)]
tools: Only load instances or daemon

Original start/stop of FRR prior to David's rewrite in
PR 3507, when configuring multi-instance would
only start multi-instance (-1 -2 -3 -4...) or
just the daemon, not both.  If you happened
to start a ospfd instance of 1 then both
the default and instance 1 would react to cli.

Do not allow this, put it back to original behavior

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #6342 from Orange-OpenSource/dev_isis_sr
Renato Westphal [Thu, 14 May 2020 17:23:03 +0000 (14:23 -0300)]
Merge pull request #6342 from Orange-OpenSource/dev_isis_sr

isisd: Preparation to merge Segment-Routing into master

4 years agoMerge pull request #6377 from ton31337/fix/bgpd_statistics
Sri Mohana Singamsetty [Thu, 14 May 2020 17:00:07 +0000 (10:00 -0700)]
Merge pull request #6377 from ton31337/fix/bgpd_statistics

bgpd: Use default AFI_IP6/SAFI_UNICAST when displaying statistics

4 years agozebra: avoid using c++ keywords in headers
Emanuele Di Pascale [Thu, 14 May 2020 13:57:23 +0000 (15:57 +0200)]
zebra: avoid using c++ keywords in headers

to make sure that c++ code can include them, avoid using reserved
keywords like 'delete' or 'new'.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
4 years agoisisd: Update documentation for Segment Routing
Olivier Dugeon [Tue, 5 May 2020 14:40:35 +0000 (16:40 +0200)]
isisd: Update documentation for Segment Routing

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
4 years agoisisd: Update Segment Routing Show Commands
Olivier Dugeon [Tue, 5 May 2020 14:29:46 +0000 (16:29 +0200)]
isisd: Update Segment Routing Show Commands

 * Improve `show isis segment-routing prefix-sids` output
 * Add new `show isis segment-routing node' command

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
4 years agoisisd: IS-IS-SR preparation for master 5/5
Olivier Dugeon [Mon, 4 May 2020 17:39:20 +0000 (19:39 +0200)]
isisd: IS-IS-SR preparation for master 5/5

Update comments (doxygen style) for all functions.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
4 years agoisisd: IS-IS-SR preparation for master 4/5
Olivier Dugeon [Mon, 4 May 2020 16:26:21 +0000 (18:26 +0200)]
isisd: IS-IS-SR preparation for master 4/5

 * Regroup fonctions to install label for Prefix and Adjacency SID
 * Change 'replace_semantics' variable name by 'make_before_break' in
   sr_prefix_reinstall() function and adjust comments
 * Call directly lsp_regenerate_schedule() from isis_nb_config.c when MSD
   is updated

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
4 years agoisisd: IS-IS-SR preparation for master 3/5
Olivier Dugeon [Mon, 4 May 2020 07:40:36 +0000 (09:40 +0200)]
isisd: IS-IS-SR preparation for master 3/5

Add debug macro and debug messages

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
4 years agoisisd: IS-IS-SR preparation for master 2/5
Olivier Dugeon [Sun, 3 May 2020 18:01:20 +0000 (20:01 +0200)]
isisd: IS-IS-SR preparation for master 2/5

 * Rename functions following rules: isis_sr_XXX is kept for external functions
   and isis_sr prefix remove for static ones
 * Rename local_label & remote_label variables by input_label & output_label
 * Change parameter order (to follow other functions) in sr_node_srgb_update()

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
4 years agoisisd: IS-IS-SR preparation for master 1/5
Olivier Dugeon [Thu, 30 Apr 2020 09:23:15 +0000 (11:23 +0200)]
isisd: IS-IS-SR preparation for master 1/5

 * Rename RB-TREE variable from tree_sr_XXX to srdb_XXX
 * Replace parse_flags by an enum and rename it srdb_state which reflects
   more the role of this flag: determined the state of SR-Node and SR-Prefix
   stored in the SRDB: VALIDATED, NEW, MODIFIED, UNCHANGED

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
4 years agozebra: fix SA warning in zebra_nb_state.c
Mark Stapp [Thu, 14 May 2020 13:41:59 +0000 (09:41 -0400)]
zebra: fix SA warning in zebra_nb_state.c

Fix an SA warning in zebra_nb_state.c.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agozebra: format files to make polychaeta happy
Rafael Zalamena [Wed, 13 May 2020 16:56:16 +0000 (13:56 -0300)]
zebra: format files to make polychaeta happy

Use clang-format to make code match what polychaeta wants for
formatting.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
4 years agoMerge pull request #6227 from pguibert6WIND/show_nexthop_group_permit_netns
Stephen Worley [Wed, 13 May 2020 14:53:52 +0000 (10:53 -0400)]
Merge pull request #6227 from pguibert6WIND/show_nexthop_group_permit_netns

zebra: permit usage of show nexthop-group with namespace based vrfs

4 years agoMerge pull request #6220 from kuldeepkash/bgp_graceful_restart
Martin Winter [Wed, 13 May 2020 13:09:08 +0000 (15:09 +0200)]
Merge pull request #6220 from kuldeepkash/bgp_graceful_restart

tests: Add bgp-graceful-restart test suites

4 years agozebra: permit usage of show nexthop-group with namespace based vrfs
Philippe Guibert [Wed, 15 Apr 2020 08:22:32 +0000 (10:22 +0200)]
zebra: permit usage of show nexthop-group with namespace based vrfs

namespace based vrfs can be used along with show nexthop-group command.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agoMerge pull request #6387 from donaldsharp/reload
Donatas Abraitis [Wed, 13 May 2020 06:10:06 +0000 (09:10 +0300)]
Merge pull request #6387 from donaldsharp/reload

tools: revert frr-reload.py remove stderr redirects"

4 years agoMerge pull request #6384 from kooky/set-src-doc
Donatas Abraitis [Wed, 13 May 2020 06:09:05 +0000 (09:09 +0300)]
Merge pull request #6384 from kooky/set-src-doc

doc: Improve Zebra set src documentation.  (IPv6)

4 years agoMerge pull request #6383 from opensourcerouting/init-config-perms
Donatas Abraitis [Wed, 13 May 2020 06:05:18 +0000 (09:05 +0300)]
Merge pull request #6383 from opensourcerouting/init-config-perms

build: use configfile mode in init script

4 years agoMerge pull request #6250 from chiragshah6/yang_nb6
Renato Westphal [Wed, 13 May 2020 00:17:36 +0000 (21:17 -0300)]
Merge pull request #6250 from chiragshah6/yang_nb6

*: RIB operational northbound callbacks implementation

4 years agoyang: align keys and leafs
Chirag Shah [Mon, 11 May 2020 16:25:23 +0000 (09:25 -0700)]
yang: align keys and leafs

Align leafs according to keys order.
Fix some of the nits seen in yanglint -f yang format.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agoyang: add unified protocol types in rib model
Chirag Shah [Tue, 28 Apr 2020 23:01:19 +0000 (16:01 -0700)]
yang: add unified protocol types in rib model

Add v4/v6 unified protocol list to rib operational
model.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agozebra: rib northbound callback implementation
Chirag Shah [Wed, 25 Mar 2020 04:41:49 +0000 (21:41 -0700)]
zebra: rib northbound callback implementation

- add RIB's northbound list create/destory callback changes.
- add RIB's northbound callbacks implementation.
- add RIB's nexthop callbacks implementation.
- add RIB's nexthop weight field callback changes.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agodoc: Improve Zebra set src documentation. (IPv6)
Tim Bray [Tue, 12 May 2020 10:41:13 +0000 (11:41 +0100)]
doc: Improve Zebra set src documentation.  (IPv6)

Include an IPv6 example for set src

And a note that the IP address has to exist.   This is to try and make
people aware to avoid things like issue #4249
https://github.com/FRRouting/frr/issues/4249

Signed-off-by: Tim Bray <tim@kooky.org>
4 years agozebra: afi-safi identity to value apis
Chirag Shah [Tue, 12 May 2020 21:09:57 +0000 (14:09 -0700)]
zebra: afi-safi identity to value apis

Helper APIs to convert afi-safi identity to values.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agozebra: route node first next node
Chirag Shah [Wed, 25 Mar 2020 04:41:49 +0000 (21:41 -0700)]
zebra: route node first next node

Add macros for route entry first and next node walk.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agozebra: add zebra container to rib model
Chirag Shah [Mon, 16 Mar 2020 19:09:26 +0000 (12:09 -0700)]
zebra: add zebra container to rib model

Add zebra container in rib tree.
When displaying RIB under vrf, it displays
zebra module name.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agozebra: northbound changes for the rib model
Chirag Shah [Fri, 28 Feb 2020 02:38:24 +0000 (18:38 -0800)]
zebra: northbound changes for the rib model

This commit implements:
RIB operational list create/destroy.
Walk over RIB tables using keys.
The first RIB table will be IPV4/unicast (table-id 254)
will be fetched.
Create a new api to fetch RIB table based on
afi-safi and table id as the keys.

remove mandatory true statement from the leaf which
is part of the list key.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agozebra: prefer outer label_type for recursive nexthops
Mark Stapp [Tue, 12 May 2020 18:27:02 +0000 (14:27 -0400)]
zebra: prefer outer label_type for recursive nexthops

When resolving a recursive nexthop, prefer the "outer"
label type, if present.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agotools: revert frr-reload.py remove stderr redirects"
Donald Sharp [Tue, 12 May 2020 17:31:05 +0000 (13:31 -0400)]
tools: revert frr-reload.py remove stderr redirects"

This reverts commit 3fa139a65be70e5a81b5f078530094f09a247416.

This is being reverted because this commit completely
breaks the invocation of frr-reload.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #6334 from ton31337/fix/labeled_unicast_table_scount
Sri Mohana Singamsetty [Tue, 12 May 2020 15:31:42 +0000 (08:31 -0700)]
Merge pull request #6334 from ton31337/fix/labeled_unicast_table_scount

bgpd: Set a proper SAFI for labaled-unicast when looking for scount

4 years agoMerge pull request #6340 from opensourcerouting/yang-license
Lou Berger [Tue, 12 May 2020 15:29:52 +0000 (11:29 -0400)]
Merge pull request #6340 from opensourcerouting/yang-license

Adopt the BSD-2-Clause license for our YANG modules

4 years agoMerge pull request #6366 from volta-networks/fix_pw_show
Renato Westphal [Tue, 12 May 2020 01:12:26 +0000 (22:12 -0300)]
Merge pull request #6366 from volta-networks/fix_pw_show

ldpd and Zebra:  Expand existing debug commands.

4 years agoMerge pull request #6370 from barajus/patch-1
Quentin Young [Mon, 11 May 2020 20:35:34 +0000 (16:35 -0400)]
Merge pull request #6370 from barajus/patch-1

overview.rst: add RFC to VRRP

4 years agoldpd and Zebra: Expand existing debug commands.
lynne [Thu, 7 May 2020 16:31:40 +0000 (12:31 -0400)]
ldpd and Zebra:  Expand existing debug commands.

L2VPN PW are very hard to determine why they do not come up.  The following
fixes expand the existing show commands in ldp and zebra to display a
reason why the PW is in the DOWN state and also display the labeled nexthop
route selected to reach the PW peer.  By adding this information it will
provide the user some guidance on how to debug the PW issue.  Also fixed an
assert if labels were changed for a PW that is between directly connected
peers.

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
4 years agobuild: use configfile mode in init script
David Lamparter [Mon, 11 May 2020 19:37:08 +0000 (21:37 +0200)]
build: use configfile mode in init script

This only applies for split-config;  the init script would create an
empty config file with default permissions.

Reported-by: Robert Scheck <robert@fedoraproject.org>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
4 years agodoc: add RFC to VRRP
Julien D [Fri, 8 May 2020 13:21:02 +0000 (15:21 +0200)]
doc: add RFC to VRRP

Add the VRRP bloc + RFC associated

Signed-off-by: barajus <julien.dhaille@gmail.com>
4 years agoMerge pull request #6381 from qlyoung/clean-grpc
Renato Westphal [Mon, 11 May 2020 19:36:00 +0000 (16:36 -0300)]
Merge pull request #6381 from qlyoung/clean-grpc

lib: remove unnecessary rpc request in grpc

4 years agolib: remove unnecessary rpc request in grpc
Quentin Young [Sun, 10 May 2020 18:36:41 +0000 (14:36 -0400)]
lib: remove unnecessary rpc request in grpc

Bit of leftover copypaste code there.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agoMerge pull request #6379 from donaldsharp/ip_as_path_removal_really
Donatas Abraitis [Mon, 11 May 2020 14:22:19 +0000 (17:22 +0300)]
Merge pull request #6379 from donaldsharp/ip_as_path_removal_really

Ip as path removal really

4 years agodoc: Fix doc to reflect reality on the ground
Donald Sharp [Mon, 11 May 2020 12:46:34 +0000 (08:46 -0400)]
doc: Fix doc to reflect reality on the ground

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agobgpd: really remove the `no ip as-path...` command
Donald Sharp [Mon, 11 May 2020 12:45:11 +0000 (08:45 -0400)]
bgpd: really remove the `no ip as-path...` command

We had already removed the `ip as-path..` command
to have `bgp as-path` but for some reason a `no ip as-path..`
command ALIAS was still around.  Kill with extreme prejudice.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years ago*: Update version string
Donald Sharp [Mon, 11 May 2020 12:04:15 +0000 (08:04 -0400)]
*: Update version string

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #6374 from opensourcerouting/grpc-undue-warning
Quentin Young [Mon, 11 May 2020 04:24:54 +0000 (00:24 -0400)]
Merge pull request #6374 from opensourcerouting/grpc-undue-warning

lib: fix undue warning during gRPC module initialization

4 years agobgpd: Use default AFI_IP6/SAFI_UNICAST when displaying statistics
Donatas Abraitis [Sat, 9 May 2020 18:33:51 +0000 (21:33 +0300)]
bgpd: Use default AFI_IP6/SAFI_UNICAST when displaying statistics

Without specifying a default afi/safi we get a segfault:

```
(gdb) frame 4
bgp_table_stats (..., afi=32724, safi=SAFI_UNICAST, ...
11349 if (!bgp->rib[afi][safi]) {
(gdb)
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agolib: fix undue warning during gRPC module initialization
Renato Westphal [Sat, 9 May 2020 03:50:45 +0000 (00:50 -0300)]
lib: fix undue warning during gRPC module initialization

This warning only shows up when a daemon is started with --log=stdout.
Fix it.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agoMerge pull request #6368 from qlyoung/async-grpc
Renato Westphal [Sat, 9 May 2020 03:48:52 +0000 (00:48 -0300)]
Merge pull request #6368 from qlyoung/async-grpc

Async grpc

4 years agolib: convert GRPC plugin to async
Quentin Young [Wed, 6 May 2020 23:36:19 +0000 (19:36 -0400)]
lib: convert GRPC plugin to async

Synchronous GRPC services are called from arbitrary threads. This makes
access to anything outside the GRPC module unsafe. We need to convert
the plugin to use the async model that allows us to control our own
threads.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agolib: use frr_pthread to spawn grpc pthread
Chirag Shah [Wed, 22 Apr 2020 23:09:15 +0000 (16:09 -0700)]
lib: use frr_pthread to spawn grpc pthread

start grpc thread with frr_pthread library
callbacks to integrate with rcu infrastructure.

If a thread is created using native pthread callbacks
and if zlog is used then it leads to crash.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agoMerge pull request #6348 from dslicenc/frr-reload-bfd
Donatas Abraitis [Fri, 8 May 2020 15:56:01 +0000 (18:56 +0300)]
Merge pull request #6348 from dslicenc/frr-reload-bfd

tools: fix frr traceback on bgp neighbor bfd deletion

4 years agoMerge pull request #6362 from donaldsharp/typedef_i_hatez_it
Mark Stapp [Fri, 8 May 2020 13:44:58 +0000 (09:44 -0400)]
Merge pull request #6362 from donaldsharp/typedef_i_hatez_it

Typedef replacements

4 years agozebra: remove typedef rib_update_event_t from system
Donald Sharp [Thu, 7 May 2020 13:47:23 +0000 (09:47 -0400)]
zebra: remove typedef rib_update_event_t from system

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agozebra: Remove typedef rib_table_info_t from system
Donald Sharp [Thu, 7 May 2020 12:59:27 +0000 (08:59 -0400)]
zebra: Remove typedef rib_table_info_t from system

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agozebra: Remove typedef rib_tables_iter_state from system
Donald Sharp [Thu, 7 May 2020 12:57:04 +0000 (08:57 -0400)]
zebra: Remove typedef rib_tables_iter_state from system

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agozebra: Remove typedef rnh_type_t from system
Donald Sharp [Thu, 7 May 2020 12:55:55 +0000 (08:55 -0400)]
zebra: Remove typedef rnh_type_t from system

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agozebra: Remove typedef netlink_route_info_t
Donald Sharp [Thu, 7 May 2020 12:52:38 +0000 (08:52 -0400)]
zebra: Remove typedef netlink_route_info_t

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agozebra: Remove the typedef netlink_nh_info_t
Donald Sharp [Thu, 7 May 2020 12:50:04 +0000 (08:50 -0400)]
zebra: Remove the typedef netlink_nh_info_t

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>