diff options
author | vivek <vivek@cumulusnetworks.com> | 2020-03-24 22:38:37 +0100 |
---|---|---|
committer | vivek <vivek@cumulusnetworks.com> | 2020-03-31 05:12:31 +0200 |
commit | f7e1c681f4bf4e2cc1486318d24c42c9e5fb6349 (patch) | |
tree | a0b38a24651382b6f653fb34803aaa761b86a535 /bgpd/bgp_zebra.h | |
parent | bgpd: Announce cumulative link bandwidth to EBGP peers (diff) | |
download | frr-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.h | 3 |
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); |