mirror_frr/lib
vivek 5fe9f9631d Quagga: Make routemap updates or deletes work for VRFs
Updates to routemaps and delete of the routemap were not working properly
for VRFs. This was because while routemaps are global, the routemap update
processing timer and the processing were at the per-instance level. This
approach was unable to handle processing for multiple instances as the
routemap has no tracking of which instances are still pending processing.
This lead to the processing happening correctly only for the first instance
- which could be the default instance or some other instance. It could also
result in reference to freed memory for an instance.

The fix done is to make the update/delete processing also global and not per
instance. This means that the route-map delay timer will be global and a global
thread will handle the change (or delete) for all instances instead of spawning
a separate thread for each instance. To support this, a global BGP command
"bgp route-map delay-timer <value>" has been implemented. The existing command
per-instance is not deleted but will update the global timer.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>

Ticket: CM-6970, CM-9918
Reviewed By: CCR-4320
Testing Done: Manual, bgpsmoke
2016-03-22 17:46:30 +00:00
..
.gitignore build: include git info 2012-12-12 15:34:37 +01:00
agentx.c Fixup code to use correct XMALLOC operators 2015-08-26 07:44:57 -07:00
bfd.c Support for multi-client and client reg msg 2016-03-08 23:31:32 -08:00
bfd.h Support for multi-client and client reg msg 2016-03-08 23:31:32 -08:00
bitfield.h ospf6d: ospfv3-abr-ecmp-support.patch 2015-05-19 18:03:39 -07:00
buffer.c *: use array_size() helper macro 2012-10-25 10:15:59 -07:00
buffer.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
checksum.c lib: improve fletcher checksum validation 2012-10-25 10:15:58 -07:00
checksum.h lib: improve fletcher checksum validation 2012-10-25 10:15:58 -07:00
command.c lib: Fix assert in node_parent() 2016-03-17 16:12:55 -04:00
command.h vtysh: make HIDDEN commands work 2016-03-02 19:55:32 +00:00
csv.c This patch changes BGP from only listening mode for BFD status updates to interactive mode of dynamically registering/deregistering BFD enabled peers with PTM/BFD through zebra. Peer is registered with BFD when it goes into established state and de-registers when it goes out of establish state. 2015-06-12 07:59:11 -07:00
csv.h This patch changes BGP from only listening mode for BFD status updates to interactive mode of dynamically registering/deregistering BFD enabled peers with PTM/BFD through zebra. Peer is registered with BFD when it goes into established state and de-registers when it goes out of establish state. 2015-06-12 07:59:11 -07:00
daemon.c [warnings] Fix various SOS warnings 2008-08-22 19:52:59 +01:00
distribute.c quagga: remove babel 2016-02-11 08:55:24 -08:00
distribute.h babeld: Initial import, for Babel routing protocol. 2012-03-25 17:06:51 +01:00
filter.c Fix bugs reported by coverity scan 2015-07-23 08:47:21 -07:00
filter.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
getopt1.c *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
getopt.c *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
getopt.h 2005-08-10 Greg Troxel <gdt@fnord.ir.bbn.com> 2005-08-10 13:20:03 +00:00
gitversion.pl build: fix minimal mixup in gitinfo suffix 2013-04-09 17:05:08 +02:00
hash.c lib: lib-warnings.patch 2015-05-19 18:04:26 -07:00
hash.h lib: lib-warnings.patch 2015-05-19 18:04:26 -07:00
if_rmap.c lib: Fixup of NULL calls to XSTRDUP 2015-11-23 13:31:04 -08:00
if_rmap.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
if.c Quagga: Fix interface move from VRF to default VRF 2016-02-28 03:06:35 +00:00
if.h Zebra: Restrict IPv6 RA to valid interfaces 2016-03-22 16:52:35 +00:00
jhash.c Fix arm compilation failures of sockunion_hash issues 2015-09-08 16:18:30 -07:00
jhash.h Fix arm compilation failures of sockunion_hash issues 2015-09-08 13:26:57 -07:00
json.c Quagga: Fixup cli and json keyword 2015-11-18 15:36:04 -08:00
json.h Quagga: Fixup cli and json keyword 2015-11-18 15:36:04 -08:00
keychain.c Fixup code to use correct XMALLOC operators 2015-08-26 07:44:57 -07:00
keychain.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
libospf.h Lower the default OSPF spf timers to '0 50 5000' 2015-10-20 22:09:24 +00:00
linklist.c *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
linklist.h lib: remove ALL_LIST_ELEMENTS dead code branch 2013-01-11 22:09:34 +01:00
log.c Support for multi-client and client reg msg 2016-03-08 23:31:32 -08:00
log.h quagga: remove babel 2016-02-11 08:55:24 -08:00
Makefile.am Makfile issues to compile better 2016-03-18 09:35:58 -04:00
md5.c lib: lib-warnings.patch 2015-05-19 18:04:26 -07:00
md5.h lib: add support for keyed-hashing with MD5 2012-04-07 13:53:22 -07:00
memory.c lib: Memory reporting fails over 2GB 2015-10-29 05:59:23 -07:00
memory.h lib: add array_size() helper 2012-10-25 10:15:59 -07:00
memtypes.awk [lib] fix gensub call in memtypes.awk to pass "g", not g. 2006-03-30 14:30:19 +00:00
memtypes.c quagga: remove babel 2016-02-11 08:55:24 -08:00
network.c 2005-02-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu> 2005-02-16 16:25:39 +00:00
network.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
nexthop.c ZEBRA: Remove NEXTHOP_TYPE_XXX_IFNAME 2015-12-04 10:44:37 -08:00
nexthop.h ZEBRA: Remove NEXTHOP_TYPE_XXX_IFNAME 2015-12-04 10:44:37 -08:00
pid_output.c + pidfiles are now always created with 0644 perms instead if LOGFILE_MASK (0600) 2007-10-04 15:09:19 +00:00
plist_int.h lib: Fix missing plist_int.h 2015-11-03 10:00:30 -08:00
plist.c ip/ipv6 prefix-list seq number range needs to be fixed - wraps around to 2016-03-02 20:42:01 +00:00
plist.h lib: straighten out ORF prefix list support 2015-11-03 05:49:39 -08:00
pqueue.c lib: use heap to manage timers 2014-04-22 21:17:00 +02:00
pqueue.h lib: use heap to manage timers 2014-04-22 21:17:00 +02:00
prefix.c Quagga: prefix2str fixup 2015-11-23 13:31:11 -08:00
prefix.h Quagga: prefix2str fixup 2015-11-23 13:31:11 -08:00
privs.c *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
privs.h 2005-09-29 Paul Jakma <paul.jakma@sun.com> 2005-09-29 14:39:32 +00:00
ptm_lib.c Fixup of warnings in the code 2015-07-25 15:55:47 -07:00
ptm_lib.h Fixup of warnings in the code 2015-07-25 15:55:47 -07:00
queue.h *: fix detection and usage of sys/cdefs.h 2014-08-18 01:50:19 +02:00
regex-gnu.h *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
regex.c *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
route_types.pl zebra: zebra-nht-routemap.patch 2015-05-19 17:47:20 -07:00
route_types.txt quagga: remove babel 2016-02-11 08:55:24 -08:00
routemap.c Quagga: Make routemap updates or deletes work for VRFs 2016-03-22 17:46:30 +00:00
routemap.h Quagga: Make routemap updates or deletes work for VRFs 2016-03-22 17:46:30 +00:00
sigevent.c *: use array_size() helper macro 2012-10-25 10:15:59 -07:00
sigevent.h *: use array_size() helper macro 2012-10-25 10:15:59 -07:00
smux.c lib: fix vty.c and smux.c static variable clash 2015-10-13 11:37:15 -07:00
smux.h snmp: let handlers accept OID from a lesser prefix 2012-06-25 19:03:23 +02:00
snmp.c snmp: let handlers accept OID from a lesser prefix 2012-06-25 19:03:23 +02:00
sockopt.c lib: compile even without IPV6_TCLASS 2011-10-17 18:59:26 +04:00
sockopt.h IPv6 transport class suppport 2011-10-17 18:59:19 +04:00
sockunion.c Quagga: Fixup some compile warnings 2015-11-23 13:31:11 -08:00
sockunion.h Use a hash to store BGP peer structures 2015-10-23 17:34:50 +00:00
str.c * configure.ac: Test existance of strndup. 2005-09-19 09:53:21 +00:00
str.h * configure.ac: Test existance of strndup. 2005-09-19 09:53:21 +00:00
stream.c BGP: support for addpath TX 2015-11-05 17:29:43 +00:00
stream.h BGP: support for addpath TX 2015-11-05 17:29:43 +00:00
systemd.c lib: Add library code to interact with systemd 2016-02-10 15:06:59 -05:00
systemd.h lib: Add library code to interact with systemd 2016-02-10 15:06:59 -05:00
table.c lib: lib-warnings.patch 2015-05-19 18:04:26 -07:00
table.h lib/table: add route_table_get_next() and iterator 2012-09-26 21:50:48 +02:00
thread.c lib: Add ability to use poll() instead of select 2016-03-04 12:33:57 -05:00
thread.h lib: Add ability to use poll() instead of select 2016-03-04 12:33:57 -05:00
vector.c 2005-03-14 Paul Jakma <paul.jakma@sun.com> 2005-03-14 20:19:01 +00:00
vector.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
version.h.in build: include git info 2012-12-12 15:34:37 +01:00
vrf.c BGP: Fix interface list upon instance creation/deletion 2016-02-24 04:09:21 +00:00
vrf.h BGP: Fix interface list upon instance creation/deletion 2016-02-24 04:09:21 +00:00
vty.c lib: Allow daemons to startup without an actual conf file 2016-03-07 14:57:16 -05:00
vty.h Should be able to "no" the full text of any config line 2015-11-23 18:05:03 +00:00
workqueue.c lib: lib-warnings.patch 2015-05-19 18:04:26 -07:00
workqueue.h Some small enhancements to thread and workqueue libraries in zebra: 2015-05-19 17:58:10 -07:00
zassert.h Need RCS Id keyword. 2004-12-03 18:01:04 +00:00
zclient.c Quagga: Implement VRF change semantics for an interface 2016-02-25 19:46:57 +00:00
zclient.h Quagga: Implement VRF change semantics for an interface 2016-02-25 19:30:53 +00:00
zebra.h lib: fix MIN/MAX macros to not double-eval 2016-03-17 19:52:10 -04:00