BGP Link Bandwidth Extended Community
Pradosh Mohapatra
Sproute Networks
pradosh@sproute.com
Rex Fernando
Cisco Systems
170 W. Tasman Drive
San Jose
CA
95134
US
rex@cisco.com
Reshma Das, Ed.
Juniper Networks, Inc.
1133 Innovation Way,
Sunnyvale
CA
94089
US
dreshma@juniper.net
Satya Mohanty, Ed.
Zscaler
120 Holger Way,
San Jose
CA
95134
US
smohanty@zscaler.com
Mankamana Mishra
Cisco Systems
821 alder drive,
Milpitas
CA
95035
US
mankamis@cisco.com
Rafal Jan Szarecki
Google LLC
1160 N Mathilda Ave,,
Sunnyvale
CA
94089
US
rszarecki@gmail.com
2024-09-16
This document describes an application of BGP extended communities that allows a router to perform unequal cost load balancing.

Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

Introduction
Load balancing is a critical aspect of network design, enabling efficient utilization of available bandwidth and improving overall network performance. Traditional equal-cost multi-path (ECMP) routing does not account for the varying capacities of different paths. This document suggests that the external link bandwidth be carried in the network using one of two new extended communities [RFC4360] - the transitive and non-transitive link bandwidth extended community. The Link Bandwidth Extended Community provides a mechanism for routers to advertise the bandwidth of their downstream path(s), facilitating maximum utilisation of network resources.

Link Bandwidth Extended Community
The Link Bandwidth Extended Communities are defined as a BGP extended community that carries the bandwidth information of a router, represented by BGP Protocol Next Hop, connecting to remote network. This community can be used to inform other routers about the available bandwidth on trough a given route.
The Link bandwidth extended communities can be either transitive or non-transitive. Therefore the value of the high-order octet of the extended Type Field can be 0x00 or 0x40 respectively. The value of the low-order octet of the extended type field for this communities is 0x04. The value of the Global Administrator subfield in the Value Field SHOULD represent the Autonomous System of the router that attaches the Link Bandwidth Community, but in can be set to any 2-byte value. If four octet AS numbering scheme is used [RFC6793], AS_TRANS should be used in the Global Administrator subfield. The bandwidth of the link is expressed as 4 octets in [IEEE.754-2019] floating point format, units being bytes (not bits!) per second. It is carried in the Local Administrator subfield of the Value Field.

Link Bandwidth Extended Community

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Type=0x00/0x40   | SubType= 0x04 |       AS Number          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Link Bandwidth Value                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 Type:   1-octet field MUST be set to 0x00 or 0x40
         to indicate transitive/non-transitive.

 SubType: 1-octet field MUST be set to 0x04
          to indicate 'Link-Bandwidth'.

 Global Administrator sub-field:
          2-octet represent the Autonomous System.

 Local Administrator sub-field:
          Bandwidth value (bytes per sec) encoded as 4 octets
          in IEEE floating point format.

Protocol Procedures

Sender (Originating Link Bandwidth Community)
An originator of the link bandwidth community SHOULD be able to originate either a transitive or a non-transitive link bandwidth extended community. Implementation SHOULD provide configuration to set the transitivity type of the link bandwidth community, as well as Global Administrator filed value and bandwidth value in (Local Administrator filed), trough local policy. No more than one link bandwidth extended community SHALL be attached to a route.
An originator can attach link bandwidth community to BGP path in egress processing to adj-RIB-out only or in ingress processing in which case link bandwidth community is present in Local-RIB.
Note: Implementation MAY provide configuration option (knob) to allow sending non-transitive link bandwidth extended community on external BGP sessions.

Receiver (Receiving link bandwidth community)
A BGP receiver MUST be able to process link bandwidth community of both transitive or non-transitive type. The receiver MUST NOT flap or treat the route as malformed based on the transitivity of the link bandwidth community and/or BGP session type (internal vs. external).
Note: Implementation MAY provide configuration option (knob) to accept non-transitive link bandwidth extended community from external BGP sessions.

Re-advertisement Procedures

Re-advertisement with Next hop Self
When a BGP speaker re-advertises a route with the Link Bandwidth Extended Community and sets the next hop to itself, it SHOULD follow the same procedures as outlined in Section 3.1.
In the absence of any import or export policies that alter the Link Bandwidth Extended Community, any received Link Bandwidth extended community on the route will be re-advertised unchanged, in accordance with standard BGP procedures.

Re-advertisement with Next Hop Unchanged
A BGP speaker that receives a route with link bandwidth community, re-advertises or reflects the same without changing its next hop SHOULD NOT change the link bandwidth extended community in any way.

Link bandwidth community Arithmetic and BGP multipath
In a BGP multipath ECMP environment, the value of the link bandwidth community that is sent or re-advertised may be calculated based on the link bandwidth communities of the routes contributing to multipath in the Local Routing Information Base (Local-RIB). This topic is beyond the scope of this document.

Error Handling
If a receiver receives a route with more than one Link Bandwidth Extended Community, it SHOULD:
Prefer the lowest value of the attached link bandwidth community (Irrespective of the transitivity)
Prefer the transitive Link Bandwidth Extended Community when choosing between transitive and non-transitive types that have the same value
Implementations MAY provide configuration options (knobs) to change the above preference.

Document History
The BGP Link Bandwidth Extended Community has evolved over several versions of the IETF draft. In the earlier versions up to draft-ietf-idr-link-bandwidth-08, only the non-transitive version of the link bandwidth extended community was supported. However, starting from draft-ietf-idr-link-bandwidth-09, both transitive and non-transitive versions of the link bandwidth extended community are supported.
An old sender/receiver is a BGP speakers either use procedures upto draft (https://datatracker.ietf.org/doc/html/draft-ietf-idr-link-bandwidth-08) or any undocumented behavior for link bandwidth extended community.
A new sender/receiver is a BGP speaker that implements procedures specified in this document.
Receiving speaker needs to be upgraded to support the procedures defined in this document to provide full interop with both transitive and non-transitive versions of LBW. In order to keep changes to procedures simple, it is not a goal to provide interop between old Receiver and new Sender.

IANA Considerations
This document defines a specific application of the two-octet AS specific extended community. IANA is requested to assign a sub- type value of 0x04 for the link bandwidth extended community.
    Name                                           Value
    ----                                           -----
    non-transitive Link Bandwidth Ext. Community  0x4004
    Name                                           Value
    ----                                           -----
    transitive Link Bandwidth Ext. Community       0x0004

Security Considerations
There are no additional security risks introduced by this design.

Contributors
Kaliraj Vairavakkalai
Juniper Networks, Inc.
1133 Innovation Way,
Sunnyvale
CA
94089
US
kaliraj@juniper.net
Natrajan Venkataraman
Juniper Networks, Inc.
1133 Innovation Way,
Sunnyvale
CA
94089
US
natv@juniper.net

Acknowledgments
The authors would like to thank Yakov Rekhter, Srihari Sangli and Dan Tappan for proposing unequal cost load balancing as one possible application of the extended community attribute.
The authors would like to thank Bruno Decraene, Robert Raszuk, Joel Halpern, Aleksi Suhonen, Randy Bush, Jeff Haas and John Scudder for their comments and contributions.

Normative References
[IEEE.754-2019]

IEEE Standard for Floating-Point Arithmetic
IEEE
22 July 2019
[RFC2119]
[RFC4360]
[RFC6793]