mirror_frr/lib
radhika 986aa00f94 Addition on hidden command "bfd multihop/singlehop" and "ptm-enable" per interface command
CM-10435
Issue: IBGP BFD sessions are created as multi-hop even though peer is single-hop away. This is causing an interop issue with ICOS.
Root Cause: By design all IBGP peers are registered with BFD as multi-hop.
Fix:
• Changed the default behavior of always treating IBGP BFD sessions as mult-hop. shared_network variable is used to determine whether the IBGP peer is single hop or multi-hop away. The logic for determining whether EBGP peer is single hop or multi-hop has not been changed.
• Since the default behavior has been changed, it will cause interop issues between 2.5 and 3.0 IBGP BFD sessions. A new hidden command “bfd multihop/singlehop” has been introduced to overcome the interop issues.

dell-s6000-10(config-router)# neighbor 30.0.2.6 bfd
<2-255> Detect Multiplier
<cr>
dell-s6000-10(config-router)# neighbor 30.0.2.6 bfd multihop
dell-s6000-10(config-router)# no neighbor 30.0.2.6 bfd multihop
dell-s6000-10(config-router)#
dell-s6000-10(config-router)# neighbor 30.0.2.6 bfd multihop
dell-s6000-10(config-router)# do show running-config
!
router bgp 100
neighbor igroup peer-group
neighbor igroup bfd 5 500 500
neighbor igroup bfd multihop
neighbor 30.0.2.2 remote-as 100
neighbor 30.0.2.2 peer-group igroup
neighbor 3101🔤bcad::2 remote-as 100
neighbor 3101🔤bcad::2 peer-group igroup
neighbor 30.0.2.6 remote-as 200
neighbor 30.0.2.6 bfd multihop
neighbor 3102🔤bcad::6 remote-as 200
neighbor 3102🔤bcad::6 bfd
neighbor 3102🔤bcad::6 ebgp-multihop 255
!

CM-10260
Issue: “Unable to connect to socket” message keeps getting logged when ptmd process doesn’t exist.
Root Cause: BFD clients (bgpd, ospfd and ospf6d) during initialization try to register with BFD/PTM by default. This results in continuous logging If PTM does not exist since there is no max on number of retries.
Fix:
• Stop the retries to connect to PTM after max reconnect timer of 5 mins is reached.
• Added zebra debug event wrapper to message logging to prevent it from showing by default.

CM-4541
Issue: Addition of a new command "ptm-enable" or "no ptm-enable" per interface to enable/disable PTM link status checks for an interface.
Fix: Currently there is only one ptm-enable global command that enables/disables PTM status updates for all interfaces. This new command will give the handle to individually stop interface from reacting on the PTM status updates.
• by default interface uses the ptm-enable global configuration
• "no ptm-enable" on an interface will disable PTM status updates from taking affect for that interface. This can bring the interface up if it was brought down due to PTM status update.
• "ptm-enable" on an interface will cause the interface to fallback to the global ptm-enable configuration value and will bring the interface up or down based on the last stored PTM status update if global ptm is enabled.

Ticket: CM-10435, CM-10260 and CM-4541
Signed-off-by: Radhika Mahankali
Reviewed-by: Donald Sharp, Kanna Rajagopal
2016-04-21 15:39:38 -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 Addition on hidden command "bfd multihop/singlehop" and "ptm-enable" per interface command 2016-04-21 15:39:38 -07:00
bfd.h Addition on hidden command "bfd multihop/singlehop" and "ptm-enable" per interface command 2016-04-21 15:39:38 -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 quagga: "set community x:y" needs bounds checking 2016-04-14 18:16:43 +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 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 Support for multi-client and client reg msg 2016-03-08 23:31:32 -08: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 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 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 zebra: Only create vrf route-node if in the kernel 2016-04-21 16:15:07 +00:00
vrf.h lib, zebra: Refactor vrf creation a bit more 2016-04-12 20:19:28 -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 lib, bgpd: Refactor vrf handling through zclient 2016-04-15 08:42:03 -04:00
zclient.h lib, bgpd: Refactor vrf handling through zclient 2016-04-15 08:42:03 -04:00
zebra.h RDNBRD: Change default distance of imported table routes to 15 2016-03-22 19:04:58 +00:00