mirror_frr/lib
vivek d838ddbfd1 Quagga: Check and cleanup prior address when processing address add on interface
IPv4 addresses can be learnt from the kernel even when the interface is down.
Quagga notifis clients of addresses upon learning of them (initial read or
upon NEWADDR) as well as when the interface comes up. The problem is that
while zebra code itself has checks to ensure duplicate addresses aren't added
to an interface, that is not true for the clients.

This patch checks for duplicates when the client receives the address add.
Upon this, the patch does a delete and add as done in zebra - because there
is a possibility that some other parameter could have changed. The fix also
takes care of the extra memory allocation for 'connected' in clients.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Dinesh Dutt <ddutt@cumulusnetworks.com>

Ticket: CM-10745
Reviewed By: CCR-4660
Testing Done: Manual, bgp-min
2016-05-09 15:53:06 -07: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 zebra - BFD client de-registration support 2016-05-08 20:11:18 -07:00
bfd.h zebra - BFD client de-registration support 2016-05-08 20:11:18 -07: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, vtysh: Return actual problem further up 2016-04-06 20:07:27 -04:00
command.h lib: Swap show run ordering of interfaces and vrf's 2016-05-06 10:41:31 -04: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 lib, zebra: Refactor vrf creation a bit more 2016-04-12 20:19:28 -04:00
if.h quagga: Remove iflist global variable 2016-04-08 13:15:59 -04: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 lib: Fix json.c compile on older platforms 2016-04-15 15:02:58 -04: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 BGP: Trigger IPv6 router advertisements upon config of unnumbered neighbor 2016-05-02 13:53:38 -07:00
log.h lib: use constant to replace magic value for length of quagga_timestamp 2016-04-07 20:32:53 -04: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 lib, zebra: Rework zebra_ns to be a bit more modular 2016-04-14 20:56:57 -04: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 lib: plist should not CMD_WARNING when command has already been entered 2016-04-04 12:40:33 -04: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 isisd: add support to import routes from other protocols 2016-03-29 20:26:28 -04:00
prefix.h isisd: add support to import routes from other protocols 2016-03-29 20:26:28 -04:00
privs.c lib: Fix priviledge modification for vty group specified 2016-04-08 20:33:15 -04: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 isisd: add support to import routes from other protocols 2016-03-29 20:26:28 -04: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 quagga: Fixup startup to allow consistency between sysV and systemd 2016-04-27 16:04:48 -04:00
systemd.h quagga: Fixup startup to allow consistency between sysV and systemd 2016-04-27 16:04:48 -04: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 function to get precise remaining time of timer thread 2016-03-29 20:26:26 -04:00
thread.h lib: add function to get precise remaining time of timer thread 2016-03-29 20:26:26 -04: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 lib: Vrf disable hook was never being run 2016-05-06 10:41:33 -04:00
vrf.h lib: VRF_GET_ID should respect VRF_UNKNOWN 2016-05-02 13:17:06 -04:00
vty.c lib: use constant to replace magic value for length of quagga_timestamp 2016-04-07 20:32:53 -04: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: Check and cleanup prior address when processing address add on interface 2016-05-09 15:53:06 -07:00
zclient.h BGP: Trigger IPv6 router advertisements upon config of unnumbered neighbor 2016-05-02 13:53:38 -07:00
zebra.h BGP: Trigger IPv6 router advertisements upon config of unnumbered neighbor 2016-05-02 13:53:38 -07:00