bgpd: Add new configuration cli for eBGP and iBGP multipath.
There is support to configure this for each (AFI,SAFI), but
currently this configuration is only present for IPv4 unicast:
maximum-paths [ibgp] <1-255>
no maximum-paths [ibgp] [<1-255>]
* bgpd/Makefile.am
* Add bgp_mpath.h and bgp_mpath.c to build
* bgpd/bgp_mpath.h
* New file for bgp multipath declarations
* define BGP_DEFAULT_MAXPATHS
* bgpd/bgp_mpath.c
* bgp_maximum_paths_set(): Configure maximum paths for the given
afi, safi and bgp instance
* bgp_maximum_paths_unset(): Return maximum paths configuration to
the default setting for the given afi, safi and bgp instance
* bgpd/bgp_vty.c
* Define command strings for above CLI
* bgp_config_write_maxpaths(): Outputs configuration for the given
afi, safi and bgp instance
* Install command elements for IPv4 unicast
* bgpd/bgp_zebra.h
* bgp_config_write_maxpaths(): External declaration
* bgpd/bgpd.c
* bgp_create(): Initialize bgp instance to default maximum paths setting
* bgp_config_write_family(): Output maximum paths configuration
for the given address family
* bgp_config_write(): Output maximum paths configuration for
IPv4 unicast address family
* bgpd/bgpd.h
* struct bgp: Add storage for maximum paths configuration for
each afi, safi
diff --git a/bgpd/bgpd.h b/bgpd/bgpd.h
index 4da19e7..bd03f65 100644
--- a/bgpd/bgpd.h
+++ b/bgpd/bgpd.h
@@ -162,6 +162,12 @@
/* BGP graceful restart */
u_int32_t restart_time;
u_int32_t stalepath_time;
+
+ /* Maximum-paths configuration */
+ struct bgp_maxpaths_cfg {
+ u_int16_t maxpaths_ebgp;
+ u_int16_t maxpaths_ibgp;
+ } maxpaths[AFI_MAX][SAFI_MAX];
};
/* BGP peer-group support. */