summaryrefslogtreecommitdiffstats
path: root/bgpd/bgp_zebra.h
diff options
context:
space:
mode:
authorvivek <vivek@cumulusnetworks.com>2020-03-24 22:38:37 +0100
committervivek <vivek@cumulusnetworks.com>2020-03-31 05:12:31 +0200
commitf7e1c681f4bf4e2cc1486318d24c42c9e5fb6349 (patch)
treea0b38a24651382b6f653fb34803aaa761b86a535 /bgpd/bgp_zebra.h
parentbgpd: Announce cumulative link bandwidth to EBGP peers (diff)
downloadfrr-f7e1c681f4bf4e2cc1486318d24c42c9e5fb6349.tar.xz
frr-f7e1c681f4bf4e2cc1486318d24c42c9e5fb6349.zip
bgpd: Implement options for link bandwidth handling
Support configurable options to control how link bandwidth is handled by the receiver. The default behavior is to automatically honor the link bandwidths received and use it to perform a weighted ECMP BUT only if all paths in the multipath have associated link bandwidth; if one or more paths do not have link bandwidth, normal ECMP is performed among the multipaths. This behavior is as recommended by https://tools.ietf.org/html/draft-ietf-idr-link-bandwidth. The additional options available are to (a) completely ignore any link bandwidth (i.e., weighted ECMP is effectively disabled), (b) skip paths in the multipath which do not have link bandwidth and perform weighted ECMP among the other paths (if at least some paths have the bandwidth) or (c) use a default weight (value chosen is 1) for the paths which do not have link bandwidth. The command syntax is bgp bestpath bandwidth <ignore|skip-missing|default-weight-for-missing> Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Diffstat (limited to 'bgpd/bgp_zebra.h')
-rw-r--r--bgpd/bgp_zebra.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/bgpd/bgp_zebra.h b/bgpd/bgp_zebra.h
index e546cd5da..a069d0150 100644
--- a/bgpd/bgp_zebra.h
+++ b/bgpd/bgp_zebra.h
@@ -23,6 +23,9 @@
#include "vxlan.h"
+/* Default weight for next hop, if doing weighted ECMP. */
+#define BGP_ZEBRA_DEFAULT_NHOP_WEIGHT 1
+
extern void bgp_zebra_init(struct thread_master *master,
unsigned short instance);
extern void bgp_zebra_init_tm_connect(struct bgp *bgp);