mirror_frr/lib
Daniel Walton adbac85e10 BGP: support for addpath TX
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:   Vivek Venkataraman <vivek@cumulusnetworks.com

Ticket: CM-8014

This implements addpath TX with the first feature to use it
being "neighbor x.x.x.x addpath-tx-all-paths".

One change to show output is 'show ip bgp x.x.x.x'.  If no addpath-tx
features are configured for any peers then everything looks the same
as it is today in that "Advertised to" is at the top and refers to
which peers the bestpath was advertise to.

root@superm-redxp-05[quagga-stash5]# vtysh -c 'show ip bgp 1.1.1.1'
BGP routing table entry for 1.1.1.1/32
Paths: (6 available, best #6, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:
  r1(10.0.0.1) r2(10.0.0.2) r3(10.0.0.3) r4(10.0.0.4) r5(10.0.0.5) r6(10.0.0.6) r8(10.0.0.8)
  Local, (Received from a RR-client)
    12.12.12.12 (metric 20) from r2(10.0.0.2) (10.0.0.2)
      Origin IGP, metric 0, localpref 100, valid, internal
      AddPath ID: RX 0, TX 8
      Last update: Fri Oct 30 18:26:44 2015
[snip]

but once you enable an addpath feature we must display "Advertised to" on a path-by-path basis:

superm-redxp-05# show ip bgp 1.1.1.1/32
BGP routing table entry for 1.1.1.1/32
Paths: (6 available, best #6, table Default-IP-Routing-Table)
  Local, (Received from a RR-client)
    12.12.12.12 (metric 20) from r2(10.0.0.2) (10.0.0.2)
      Origin IGP, metric 0, localpref 100, valid, internal
      AddPath ID: RX 0, TX 8
      Advertised to: r8(10.0.0.8)
      Last update: Fri Oct 30 18:26:44 2015

  Local, (Received from a RR-client)
    34.34.34.34 (metric 20) from r3(10.0.0.3) (10.0.0.3)
      Origin IGP, metric 0, localpref 100, valid, internal
      AddPath ID: RX 0, TX 7
      Advertised to: r8(10.0.0.8)
      Last update: Fri Oct 30 18:26:39 2015

  Local, (Received from a RR-client)
    56.56.56.56 (metric 20) from r6(10.0.0.6) (10.0.0.6)
      Origin IGP, metric 0, localpref 100, valid, internal
      AddPath ID: RX 0, TX 6
      Advertised to: r8(10.0.0.8)
      Last update: Fri Oct 30 18:26:39 2015

  Local, (Received from a RR-client)
    56.56.56.56 (metric 20) from r5(10.0.0.5) (10.0.0.5)
      Origin IGP, metric 0, localpref 100, valid, internal
      AddPath ID: RX 0, TX 5
      Advertised to: r8(10.0.0.8)
      Last update: Fri Oct 30 18:26:39 2015

  Local, (Received from a RR-client)
    34.34.34.34 (metric 20) from r4(10.0.0.4) (10.0.0.4)
      Origin IGP, metric 0, localpref 100, valid, internal
      AddPath ID: RX 0, TX 4
      Advertised to: r8(10.0.0.8)
      Last update: Fri Oct 30 18:26:39 2015

  Local, (Received from a RR-client)
    12.12.12.12 (metric 20) from r1(10.0.0.1) (10.0.0.1)
      Origin IGP, metric 0, localpref 100, valid, internal, best
      AddPath ID: RX 0, TX 3
      Advertised to: r1(10.0.0.1) r2(10.0.0.2) r3(10.0.0.3) r4(10.0.0.4) r5(10.0.0.5) r6(10.0.0.6) r8(10.0.0.8)
      Last update: Fri Oct 30 18:26:34 2015

superm-redxp-05#
2015-11-05 17:29:43 +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 *: add VRF ID in the API message header 2015-11-03 22:04:36 -08:00
bfd.h *: add VRF ID in the API message header 2015-11-03 22:04:36 -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 quagga errors parsing a valid config 2015-10-16 20:51:38 +00:00
command.h vtysh: Fix Quagga.conf file read in. 2015-09-28 13:17:36 -07: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 Fixup code to use correct XMALLOC operators 2015-08-26 07:44:57 -07: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: lib-warnings.patch 2015-05-19 18:04:26 -07:00
if_rmap.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
if.c lib, zebra, vtysh: configure an interface in non-default VRF 2015-10-29 18:08:53 -07:00
if.h lib, zebra, vtysh: configure an interface in non-default VRF 2015-10-29 18:08:53 -07: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 Key changes: 2015-06-12 07:59:11 -07:00
json.h Key changes: 2015-06-12 07:59:11 -07: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 lib: zlog_hexdump actually output printable ascii characters 2015-10-23 17:20:30 -07:00
log.h Add zlog_hexdump() for debugging 2015-10-21 01:46:55 +00:00
Makefile.am lib: hide internal prefix list structures 2015-11-03 05:42:24 -08: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 Merge branch 'cmaster' of ssh://stash.cumulusnetworks.com:7999/quag/quagga into cmaster 2015-11-03 22:05:02 -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 nexthop-tracking.patch 2015-05-19 17:40:34 -07:00
nexthop.h zebra: Remove HAVE_IPV6 from rib.h and zebra_rib.c 2015-10-22 17:19:34 -07: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: optimise prefix list setup 2015-11-03 05:54:27 -08: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 zebra: let FIB stand for its respective VRF 2015-10-29 23:38:03 -07:00
prefix.h zebra: let FIB stand for its respective VRF 2015-10-29 23:38:03 -07: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 zebra-redistribute-table.patch 2015-05-19 18:03:42 -07:00
routemap.c BGP: route-map scale 2015-10-28 19:12:24 +00:00
routemap.h lib: lib-warnings.patch 2015-05-19 18:04:26 -07: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 needs better debugs in lib/sockunion.c 2015-10-23 17:36:55 +00: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
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 Fix some more memory issues in Quagga 2015-09-02 05:19:44 -07:00
thread.h Fix some more memory issues in Quagga 2015-09-02 05:19:44 -07: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 *: add VRF ID in the API message header 2015-11-03 22:04:36 -08:00
vrf.h *: add VRF ID in the API message header 2015-11-03 22:04:36 -08:00
vty.c lib: fix vty.c and smux.c static variable clash 2015-10-13 11:37:15 -07:00
vty.h Quagga processes should not die if they read an unrecognized line in 2015-07-27 20:30:22 -07: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 *: add VRF ID in the API message header 2015-11-03 22:04:36 -08:00
zclient.h *: add VRF ID in the API message header 2015-11-03 22:04:36 -08:00
zebra.h *: add VRF ID in the API message header 2015-11-03 22:04:36 -08:00