Go to file
vivek 84915b0a15 *: Handle VRF configuration when VRF gets inactivated and activated
A VRF is active only when the corresponding VRF device is present in the
kernel. However, when the kernel VRF device is removed, the VRF container in
FRR should go away only if there is no user configuration for it. Otherwise,
when the VRF device is created again so that the VRF becomes active, FRR
cannot take the correct actions. Example configuration for the VRF includes
static routes and EVPN L3 VNI.

Note that a VRF is currently considered to be "configured" as soon as the
operator has issued the "vrf <name>" command in FRR. Such a configured VRF
is not deleted upon VRF device removal, it is only made inactive. A VRF that
is "configured" can be deleted only upon operator action and only if the VRF
has been deactivated i.e., the VRF device removed from the kernel. This is
an existing restriction.

To implement this change, the VRF disable and delete actions have been modified.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:   Mitesh Kanjariya <mkanjariya@cumulusnetworks.com>
Reviewed-by:   Don Slice <dslice@cumulusnetworks.com>

Ticket: CM-18553, CM-18918, CM-10139
Reviewed By: CCR-7022
Testing Done:
1. vrf and pim-vrf automation tests
2. Multiple VRF delete and readd (ifdown, ifup-with-depends)
3. FRR stop, start, restart
4. Networking restart
5. Configuration delete and readd

Some of the above tests run in different sequences (manually).
2018-01-23 16:24:35 -08:00
babeld *: Send/receive the nexthop vrf_id 2018-01-12 09:22:07 -05:00
bgpd bgpd: fix show bgp l2vpn evpn vni command 2018-01-23 16:23:31 -08:00
debianpkg debianpkg: fix indentation and variable name 2018-01-02 08:15:00 -05:00
doc Doc: Update OSPF-TE and ISIS-TE example 2018-01-19 16:27:26 +01:00
eigrpd *: Send/receive the nexthop vrf_id 2018-01-12 09:22:07 -05:00
fpm build: clean up BUILT_SOURCES 2017-08-04 11:13:55 +02:00
gdb gdb: Add a directory of files with gdb macros 2016-05-26 15:33:30 +00:00
include build: include our own copies of some linux kernel headers 2017-10-24 09:20:12 -02:00
init build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
isisd *: Send/receive the nexthop vrf_id 2018-01-12 09:22:07 -05:00
ldpd ldpd: Switch over to new debug style 2017-12-07 18:59:54 -05:00
lib *: Handle VRF configuration when VRF gets inactivated and activated 2018-01-23 16:24:35 -08:00
m4 build: non-recursive auxiliary directories 2017-07-31 23:03:30 +02:00
nhrpd *: Send/receive the nexthop vrf_id 2018-01-12 09:22:07 -05:00
ospf6d Merge pull request #1618 from donaldsharp/zebra_startup_ordering 2018-01-23 08:25:01 +01:00
ospfclient Merge pull request #911 from opensourcerouting/non-recursive-2 2017-08-09 14:38:07 -04:00
ospfd Merge pull request #1618 from donaldsharp/zebra_startup_ordering 2018-01-23 08:25:01 +01:00
pimd pim: fix compilation issue with pim 2018-01-22 13:52:24 +01:00
pkgsrc *: Remove cvs control points 2017-12-05 17:28:12 -05:00
ports pimd: merge pimd as of 2015-01-19 2016-05-25 20:38:32 -04:00
python zebra: unify the ipv4/ipv6 'show ip route' commands - part 1/2 2017-10-24 10:12:40 -02:00
qpb build: clean up BUILT_SOURCES 2017-08-04 11:13:55 +02:00
redhat redhat: Build with FPM 2018-01-18 09:31:20 -05:00
ripd *: Send/receive the nexthop vrf_id 2018-01-12 09:22:07 -05:00
ripngd *: Send/receive the nexthop vrf_id 2018-01-12 09:22:07 -05:00
sharpd *: Send/receive the nexthop vrf_id 2018-01-12 09:22:07 -05:00
snapcraft build: non-recursive auxiliary directories 2017-07-31 23:03:30 +02:00
solaris gitignore: update references to FRR 2017-07-12 11:55:04 -05:00
tests lib: fix a few bugs in ring buffers 2018-01-03 14:04:43 -05:00
tools tools: frr-reload 'vni' keyword does not always create a sub-context 2018-01-17 15:57:50 +00:00
vtysh Merge pull request #1634 from qlyoung/vtysh-output-file 2018-01-16 15:31:50 -05:00
watchfrr Merge pull request #1514 from donaldsharp/watchfrr 2017-12-12 08:51:25 -08:00
zebra *: Handle VRF configuration when VRF gets inactivated and activated 2018-01-23 16:24:35 -08:00
.clang-format ospfd: LSDB_LOOP treat it as a loop. 2018-01-17 13:29:58 -05:00
.dir-locals.el .dir-locals.el: show trailing whitespace 2017-11-07 12:05:09 -05:00
.gitignore debian/backports: include in distfile, don't put files in .. 2017-11-17 17:55:29 -08: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 config: switch a few references to say FRR 2017-07-12 11:25:33 -05:00
ChangeLog Rename: freerangerouting --> frrouting 2017-03-30 14:24:05 -04:00
common.am python/clippy: make output file writing less weird 2017-08-24 00:18:53 +02:00
COMMUNITY.md COMMUNITY.md: add paragraph on use of development list and discussing/documenting decisions 2017-12-12 08:42:54 -05:00
configure.ac Merge pull request #1515 from donaldsharp/selected_to_front1 2017-12-19 14:09:03 -02:00
COPYING *: make consistent & update GPLv2 file headers 2017-05-15 16:37:41 +02:00
COPYING-LGPLv2.1 build: remove LGPL v2.0, add LGPL v2.1 2016-11-15 17:19:38 +09:00
defaults.h *: reindent 2017-07-17 14:04:07 +02:00
git-reindent-branch.py *: update git-reindent-branch.py 2017-08-22 18:51:31 +02:00
indent.py *: add indent control files 2017-07-17 14:00:23 +02:00
Makefile.am sharpd: Add Super Happy Advanced Routing Protocol 2017-11-27 09:16:30 -05:00
NEWS release: 0.99.24 2016-06-03 15:56:44 -04:00
README frr: update README 2018-01-16 15:54:32 -05:00
README.NetBSD config: switch a few references to say FRR 2017-07-12 11:25:33 -05:00
render_md.py build: number sections in COMMUNITY.md HTML 2016-12-05 19:08:00 +01:00
REPORTING-BUGS config: switch a few references to say FRR 2017-07-12 11:25:33 -05:00
SERVICES babeld/eigrpd: flip VTY ports & fix rpm 2017-06-13 14:36:55 +02:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00
update-autotools * README.NetBSD: use update-autotools instead of autoreconf 2007-02-02 16:52:38 +00:00

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

Currently FRRouting supports BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1, RIPv2, RIPng,
IS-IS, PIM-SM/MSDP, LDP and Babel as well as very early support for EIGRP and
NHRP.

See the file REPORTING-BUGS to report bugs.

See COMMUNITY.md for information on contributing.

Free RRRouting is free software. See the file COPYING for copying conditions.

Public email discussion can be found at https://lists.frrouting.org/listinfo

Our public slack channel is at https://frrouting.slack.com