summaryrefslogtreecommitdiff
path: root/bgpd/bgp_zebra.h
diff options
context:
space:
mode:
authorJosh Bailey <joshb@google.com>2011-07-20 20:47:07 -0700
committerJosh Bailey <joshb@google.com>2011-07-20 20:47:07 -0700
commit8196f13d2ab7f3b09150c00328228f90391acb7c (patch)
tree18c0dcfac4f07cc4cf532cd134a41cfd1d03bc55 /bgpd/bgp_zebra.h
parentde8d5dff1523bb9fe47d54f31c9e5322bd805b44 (diff)
bgpd: Modify the BGP to zebra route announcement to support multipath
routes. Use a growable buffer (bgp_nexthop_buf) to collect nexthops that are included in the announcement. Use the BGP_INFO_MULTIPATH_CHG flag to trigger zebra announcement so zebra will be updated if the multipath set changes. Display all multipath nexthops in 'debug bgp zebra' output. * bgpd/bgp_main.c * bgp_exit(): Free bgp_nexthop_buf when exiting * bgpd/bgp_route.c * bgp_process_rsclient(): Clear BGP_INFO_MULTIPATH_CHG after processing * bgp_process_main(): Check BGP_INFO_MULTIPATH_CHG to trigger zebra announcement and clear aftr processing * bgpd/bgp_zebra.c * bgp_nexthop_buf: Growable buffer used to collect nexthops for zebra announcement * bgp_zebra_announce(): Grow bgp_nexthop_buf if needed. Include multipath count in zebra announcement and add all nexthops to bgp_nexthop_buf. Pass bgp_nexthop_buf data to zebra announcement. Added nexthops to debug output. * bgp_zebra_init(): Initialize bgp_nexthop_buf at startup * bgpd/bgp_zebra.h * BGP_NEXTHOP_BUF_SIZE: Default initial bgp_nexthop_buf size has room for 8 nexthops
Diffstat (limited to 'bgpd/bgp_zebra.h')
-rw-r--r--bgpd/bgp_zebra.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/bgpd/bgp_zebra.h b/bgpd/bgp_zebra.h
index 5172cb8a..461255e3 100644
--- a/bgpd/bgp_zebra.h
+++ b/bgpd/bgp_zebra.h
@@ -21,6 +21,10 @@ Boston, MA 02111-1307, USA. */
#ifndef _QUAGGA_BGP_ZEBRA_H
#define _QUAGGA_BGP_ZEBRA_H
+#define BGP_NEXTHOP_BUF_SIZE (8 * sizeof (struct in_addr *))
+
+extern struct stream *bgp_nexthop_buf;
+
extern void bgp_zebra_init (void);
extern int bgp_if_update_all (void);
extern int bgp_config_write_maxpaths (struct vty *, struct bgp *, afi_t,