]> git.proxmox.com Git - mirror_frr.git/commit - bgpd/bgp_zebra.c
bgpd: Implement options for link bandwidth handling
authorvivek <vivek@cumulusnetworks.com>
Tue, 24 Mar 2020 21:38:37 +0000 (14:38 -0700)
committervivek <vivek@cumulusnetworks.com>
Tue, 31 Mar 2020 03:12:31 +0000 (20:12 -0700)
commitf7e1c681f4bf4e2cc1486318d24c42c9e5fb6349
treea0b38a24651382b6f653fb34803aaa761b86a535
parent7b651a321e7207ef72597400156fe6c79c9a6da3
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>
bgpd/bgp_mpath.c
bgpd/bgp_mpath.h
bgpd/bgp_route.c
bgpd/bgp_vty.c
bgpd/bgp_zebra.c
bgpd/bgp_zebra.h
bgpd/bgpd.c
bgpd/bgpd.h