mirror_frr/zebra
ßingen fea12efb86 Implement generic label manager
Label Manager allows to share MPLS label space among different
daemons. Each daemon can request a chunk of consecutive labels and
release it if it doesn't need them anymore. Label Manager stores the
daemon protocol and instance to identify the owner client. It uses them
to perform garbage collection, releasing all label chunks from a client
when it gets disconnected or reconnected.

Additionally, every client can request that the chunk is never garbage
collected. In that case client has the responsibility to release
non-used labels.

Zebra can host the label manager itself (if no -l param is provided) or
connect to an external one using zserv/zclient (providing its address
with -l param).

Client code is in lib/zclient.c, but currently only LDP is using it.

TODO: Allow for custom ranges requests, i.e., specify the start label
besides the chunk.
TODO: Release labels from LDP.

Signed-off-by: Bingen Eguzkitza <bingen@voltanet.io>
2017-03-20 17:10:41 +01:00
..
.gitignore [administrivia] Update gitignore files 2008-08-22 20:02:08 +01:00
client_main.c nhrpd: implement next hop resolution protocol 2017-03-07 16:20:29 +01:00
connected.c zebra: receive ZAPI IPv6 source prefix 2017-01-30 13:47:04 +01:00
connected.h frr: Remove HAVE_IPV6 from code base 2017-01-13 08:05:50 -05:00
debug.c all: Fix underfull doc strings, part 1 2016-11-04 23:03:03 +00:00
debug.h Quagga: Static LSP configuration 2016-09-23 09:30:54 -04:00
GNOME-PRODUCT-ZEBRA-MIB Initial revision 2002-12-13 20:15:29 +00:00
GNOME-SMI Initial revision 2002-12-13 20:15:29 +00:00
if_ioctl_solaris.c *: get rid of zlog(*, LOG_LEVEL, ...) 2017-03-08 00:15:39 +01:00
if_ioctl.c zebra: Fix signed/unsigned comparison 2017-01-18 19:31:52 -05:00
if_netlink.c zebra: Add knowledge of whether or not we are acting under startup conditions 2017-03-01 08:08:05 -05:00
if_netlink.h zebra: Add knowledge of whether or not we are acting under startup conditions 2017-03-01 08:08:05 -05:00
if_null.c lib, zebra: Rework zebra_ns to be a bit more modular 2016-04-14 20:56:57 -04:00
if_sysctl.c *: get rid of zlog(*, LOG_LEVEL, ...) 2017-03-08 00:15:39 +01:00
interface.c frr: Remove HAVE_IPV6 from code base 2017-01-13 08:05:50 -05:00
interface.h lib, zebra: unify link layer type and hardware address handling 2016-09-03 11:05:50 -04:00
ioctl_null.c Add missing GPL headers, and copyright claims that certainly apply. 2016-05-26 01:06:59 +00:00
ioctl_solaris.c *: get rid of zlog(*, LOG_LEVEL, ...) 2017-03-08 00:15:39 +01:00
ioctl_solaris.h build/solaris: create ioctl_solaris.h 2016-06-09 10:51:59 -04:00
ioctl.c *: get rid of zlog(*, LOG_LEVEL, ...) 2017-03-08 00:15:39 +01:00
ioctl.h frr: Remove HAVE_IPV6 from code base 2017-01-13 08:05:50 -05:00
ipforward_proc.c frr: Remove HAVE_IPV6 from code base 2017-01-13 08:05:50 -05:00
ipforward_solaris.c frr: Remove HAVE_IPV6 from code base 2017-01-13 08:05:50 -05:00
ipforward_sysctl.c *: get rid of zlog(*, LOG_LEVEL, ...) 2017-03-08 00:15:39 +01:00
ipforward.h frr: Remove HAVE_IPV6 from code base 2017-01-13 08:05:50 -05:00
irdp_interface.c all: Fix all underfull doc strings 2016-11-29 23:07:11 +00:00
irdp_main.c lib: convert vrf code to use red-black trees as well 2016-11-28 16:18:35 -02:00
irdp_packet.c *: create a helper function to set the IP_MULTICAST_LOOP sockoption 2016-11-25 11:46:06 -02:00
irdp.h zebra: deal with irdp compile warnings 2009-12-10 14:22:44 +03:00
kernel_netlink.c *: get rid of zlog(*, LOG_LEVEL, ...) 2017-03-08 00:15:39 +01:00
kernel_netlink.h zebra: Add knowledge of whether or not we are acting under startup conditions 2017-03-01 08:08:05 -05:00
kernel_null.c zebra: add srcdest support to rib 2017-01-30 13:54:46 +01:00
kernel_socket.c *: get rid of zlog(*, LOG_LEVEL, ...) 2017-03-08 00:15:39 +01:00
kernel_socket.h zebra: Refactor Error codes to proper place 2017-01-30 11:48:38 -05:00
label_manager.c Implement generic label manager 2017-03-20 17:10:41 +01:00
label_manager.h Implement generic label manager 2017-03-20 17:10:41 +01:00
main.c Implement generic label manager 2017-03-20 17:10:41 +01:00
Makefile.am Implement generic label manager 2017-03-20 17:10:41 +01:00
misc_null.c zebra: clean up misc_null pragmas 2016-06-07 09:43:32 -04:00
redistribute_null.c zebra: add srcdest support to rib 2017-01-30 13:54:46 +01:00
redistribute.c zebra: add srcdest support to rib 2017-01-30 13:54:46 +01:00
redistribute.h zebra: add srcdest support to rib 2017-01-30 13:54:46 +01:00
rib.h lib: Enhance prefix dump for EVPN prefixes 2017-02-14 13:58:58 +01:00
router-id.c Merge branch 'stable/2.0' 2016-12-05 19:48:38 +01:00
router-id.h zebra: maintain the router-id per VRF 2015-10-30 00:19:15 -07:00
rt_netlink.c Merge pull request #233 from donaldsharp/ecmp1 2017-03-03 12:42:52 -03:00
rt_netlink.h zebra: Add knowledge of whether or not we are acting under startup conditions 2017-03-01 08:08:05 -05:00
rt_socket.c *: get rid of zlog(*, LOG_LEVEL, ...) 2017-03-08 00:15:39 +01:00
rt.h zebra: add srcdest support to rib 2017-01-30 13:54:46 +01:00
rtadv_null.c BGP: Trigger IPv6 router advertisements upon config of unnumbered neighbor 2016-05-02 13:53:38 -07:00
rtadv.c frr: Remove HAVE_IPV6 from code base 2017-01-13 08:05:50 -05:00
rtadv.h zebra: fix build with rtadv disabled 2016-06-08 14:15:47 -04:00
rtread_getmsg.c zebra: receive ZAPI IPv6 source prefix 2017-01-30 13:47:04 +01:00
rtread_netlink.c all: removed all DEFUN command stomps (fix build errors) 2016-10-06 20:23:13 +00:00
rtread_sysctl.c *: split & distribute memtypes and stop (re|ab)using lib/ MTYPEs 2016-09-19 16:31:04 -04:00
test_main.c *: fix some user-visible Quagga remnants 2017-03-08 16:15:10 +01:00
testrib.conf zebra: Build the test client, can be useful, and add IPv6 to testrib.conf 2016-05-26 01:13:58 +00:00
zebra_fpm_dt.c zebra: fpm: fix --enable-dev-build 2017-02-01 13:24:37 +01:00
zebra_fpm_netlink.c bgpd, zebra: Allow setting ecmp from daemon cli 2017-03-01 07:58:32 -05:00
zebra_fpm_private.h zebra: optionally use protobuf with FPM 2016-09-23 12:12:16 -04:00
zebra_fpm_protobuf.c bgpd, zebra: Allow setting ecmp from daemon cli 2017-03-01 07:58:32 -05:00
zebra_fpm.c Merge pull request #104 from opensourcerouting/time-cleanup 2017-01-24 11:43:32 -05:00
zebra_fpm.h zebra: optionally use protobuf with FPM 2016-09-23 12:12:16 -04:00
zebra_memory.c *: split & distribute memtypes and stop (re|ab)using lib/ MTYPEs 2016-09-19 16:31:04 -04:00
zebra_memory.h zebra/lib: plug several memleaks 2016-11-28 16:15:27 -02:00
zebra_mpls_netlink.c *: fix some licensing SNAFUs 2016-11-14 11:27:08 +09:00
zebra_mpls_null.c zebra: add missing license headers to two files 2016-11-28 17:34:54 +01:00
zebra_mpls_openbsd.c bgpd, zebra: Allow setting ecmp from daemon cli 2017-03-01 07:58:32 -05:00
zebra_mpls_vty.c *: fix ambiguous commands 2017-02-10 16:57:20 +01:00
zebra_mpls.c zebra: fix installation of LDP labels on static routes 2017-02-07 10:22:30 -02:00
zebra_mpls.h zebra/ldpd: allow MPLS ECMP on unnumbered interfaces 2016-12-14 13:21:08 -05:00
zebra_mroute.c zebra: Allow the collection of sg stats on more platforms. 2017-01-17 22:01:36 -05:00
zebra_mroute.h lib, pimd, zebra: Allow pimd to ask the kernel about mroute info 2016-12-21 20:26:06 -05:00
zebra_ns.c zebra/lib: move some code around 2016-11-28 16:18:35 -02:00
zebra_ns.h zebra/lib: plug several memleaks 2016-11-28 16:15:27 -02:00
zebra_ptm_null.c Zebra and bgpd: VRF support for BFD 2016-03-08 05:10:56 -08:00
zebra_ptm_redistribute.c *: split & distribute memtypes and stop (re|ab)using lib/ MTYPEs 2016-09-19 16:31:04 -04:00
zebra_ptm_redistribute.h Zebra and bgpd: VRF support for BFD 2016-03-08 05:10:56 -08:00
zebra_ptm.c zebra: Don't leak socket with failure condition 2017-02-08 08:26:07 -05:00
zebra_ptm.h bfd: Fix for missing BFD client regs/deregs from quagga clients 2016-06-21 03:39:58 -07:00
zebra_rib.c lib: hide away logging internals 2017-03-08 00:15:40 +01:00
zebra_rnh_null.c Merge branch 'stable/2.0' 2016-12-05 19:48:38 +01:00
zebra_rnh.c Merge branch 'stable/2.0' 2017-03-10 14:20:40 +01:00
zebra_rnh.h zebra: plug more memory leaks 2016-11-28 16:18:35 -02:00
zebra_routemap.c *: Fix redistribute issue 2017-01-27 15:52:12 -05:00
zebra_routemap.h *: Consistently support 32-bit route tags 2016-10-07 21:05:05 -04:00
zebra_snmp.c zebra: fix sign warning in SNMP code 2016-11-15 14:06:13 +09:00
zebra_static.c zebra: fix uninstallation of LDP labeled static routes 2017-02-08 10:50:03 -02:00
zebra_static.h zebra: support static srcdest routes 2017-01-30 13:54:46 +01:00
zebra_vrf.c zebra: fix SEGV on exit or vrf delete 2017-02-01 15:39:02 +01:00
zebra_vrf.h zebra: plug more memory leaks 2016-11-28 16:18:35 -02:00
zebra_vty.c *: fix some user-visible Quagga remnants 2017-03-08 16:15:10 +01:00
zebra.conf.sample Initial revision 2002-12-13 20:15:29 +00:00
zserv_null.c all: removed all DEFUN command stomps 2016-10-06 19:56:13 +00:00
zserv.c Implement generic label manager 2017-03-20 17:10:41 +01:00
zserv.h Implement generic label manager 2017-03-20 17:10:41 +01:00