draft-ietf-idr-aigp-13.txt   draft-ietf-idr-aigp-14.txt 
Network Working Group Pradosh Mohapatra Network Working Group Pradosh Mohapatra
Internet Draft Cumulus Networks Internet Draft Cumulus Networks
Intended Status: Proposed Standard Intended Status: Proposed Standard
Expires: June 3, 2014 Rex Fernando Expires: June 16, 2014 Rex Fernando
Eric C. Rosen Eric C. Rosen
Cisco Systems, Inc. Cisco Systems, Inc.
James Uttaro James Uttaro
ATT ATT
December 3, 2013 December 16, 2013
The Accumulated IGP Metric Attribute for BGP The Accumulated IGP Metric Attribute for BGP
draft-ietf-idr-aigp-13.txt draft-ietf-idr-aigp-14.txt
Abstract Abstract
Routing protocols that have been designed to run within a single Routing protocols that have been designed to run within a single
administrative domain ("IGPs") generally do so by assigning a metric administrative domain ("IGPs") generally do so by assigning a metric
to each link, and then choosing as the installed path between two to each link, and then choosing as the installed path between two
nodes the path for which the total distance (sum of the metric of nodes the path for which the total distance (sum of the metric of
each link along the path) is minimized. BGP, designed to provide each link along the path) is minimized. BGP, designed to provide
routing over a large number of independent administrative domains routing over a large number of independent administrative domains
("autonomous systems"), does not make its path selection decisions ("autonomous systems"), does not make its path selection decisions
skipping to change at page 3, line 20 skipping to change at page 3, line 20
3.1 Applicability Restrictions and Cautions ............... 6 3.1 Applicability Restrictions and Cautions ............... 6
3.2 Handling a Malformed AIGP Attribute ................... 6 3.2 Handling a Malformed AIGP Attribute ................... 6
3.3 Restrictions on Sending/Receiving ..................... 7 3.3 Restrictions on Sending/Receiving ..................... 7
3.4 Creating and Modifying the AIGP Attribute ............. 7 3.4 Creating and Modifying the AIGP Attribute ............. 7
3.4.1 Originating the AIGP Attribute ........................ 7 3.4.1 Originating the AIGP Attribute ........................ 7
3.4.2 Modifications by the Originator ....................... 9 3.4.2 Modifications by the Originator ....................... 9
3.4.3 Modifications by a Non-Originator ..................... 9 3.4.3 Modifications by a Non-Originator ..................... 9
4 Decision Process ...................................... 11 4 Decision Process ...................................... 11
4.1 When a Route has an AIGP Attribute .................... 11 4.1 When a Route has an AIGP Attribute .................... 11
4.2 When the Route to the Next Hop has an AIGP attribute .. 12 4.2 When the Route to the Next Hop has an AIGP attribute .. 12
5 Deployment Considerations ............................. 12 5 Deployment Considerations ............................. 13
6 IANA Considerations ................................... 13 6 IANA Considerations ................................... 13
7 Security Considerations ............................... 13 7 Security Considerations ............................... 13
8 Acknowledgments ....................................... 13 8 Acknowledgments ....................................... 13
9 Authors' Addresses .................................... 13 9 Authors' Addresses .................................... 14
10 Normative References .................................. 14 10 Normative References .................................. 14
11 Informative References ................................ 14 11 Informative References ................................ 14
1. Specification of requirements 1. Specification of requirements
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
2. Introduction 2. Introduction
skipping to change at page 6, line 23 skipping to change at page 6, line 23
- Accumulated IGP Metric. - Accumulated IGP Metric.
The value field of the AIGP TLV is always 8 bytes long. IGP The value field of the AIGP TLV is always 8 bytes long. IGP
metrics are frequently expressed as 4-octet values, and this metrics are frequently expressed as 4-octet values, and this
ensures that the AIGP attribute can be used to hold the sum of an ensures that the AIGP attribute can be used to hold the sum of an
arbitrary number of 4-octet values. arbitrary number of 4-octet values.
When an AIGP attribute is created, it SHOULD contain no more than one When an AIGP attribute is created, it SHOULD contain no more than one
AIGP TLV. However, if it contains more than one AIGP TLV, only the AIGP TLV. However, if it contains more than one AIGP TLV, only the
first one is is used as described in Section 3.4 and Section 4. In first one is used as described in Section 3.4 and Section 4. In the
the remainder of this document, we will use the term "value of the remainder of this document, we will use the term "value of the AIGP
AIGP TLV" to mean the value of the first AIGP TLV in the AIGP TLV" to mean the value of the first AIGP TLV in the AIGP attribute.
attribute. Any other AIGP TLVs in the AIGP attribute MUST be passed Any other AIGP TLVs in the AIGP attribute MUST be passed along
along unchanged if the AIGP attribute is passed along. unchanged if the AIGP attribute is passed along.
3.1. Applicability Restrictions and Cautions 3.1. Applicability Restrictions and Cautions
This document only considers the use of the AIGP attribute in This document only considers the use of the AIGP attribute in
networks where each router uses tunneling of some sort to deliver a networks where each router uses tunneling of some sort to deliver a
packet to its BGP next hop. Use of the AIGP attribute in networks packet to its BGP next hop. Use of the AIGP attribute in networks
that do not use tunneling is outside the scope of this document. that do not use tunneling is outside the scope of this document.
If a Route Reflector supports the AIGP attribute, but some of its If a Route Reflector supports the AIGP attribute, but some of its
clients do not, then the routing choices that result may not all clients do not, then the routing choices that result may not all
skipping to change at page 7, line 36 skipping to change at page 7, line 36
- The default value of AIGP_SESSION, for IBGP and confederation- - The default value of AIGP_SESSION, for IBGP and confederation-
EBGP sessions, SHOULD be "enabled." EBGP sessions, SHOULD be "enabled."
The AIGP attribute MUST NOT be sent on any BGP session for which The AIGP attribute MUST NOT be sent on any BGP session for which
AIGP_SESSION is disabled. AIGP_SESSION is disabled.
If an AIGP attribute is received on a BGP session for which If an AIGP attribute is received on a BGP session for which
AIGP_SESSION is disabled, the attribute MUST be treated exactly as if AIGP_SESSION is disabled, the attribute MUST be treated exactly as if
it were an unrecognized non-transitive attribute. That is, "it MUST it were an unrecognized non-transitive attribute. That is, "it MUST
be quietly ignored and not passed along to other BGP peers" (see be quietly ignored and not passed along to other BGP peers" (see
[BGP], section 5). [BGP], section 5). However, the fact that the attribute was received
SHOULD be logged (in a rate-limited manner).
3.4. Creating and Modifying the AIGP Attribute 3.4. Creating and Modifying the AIGP Attribute
3.4.1. Originating the AIGP Attribute 3.4.1. Originating the AIGP Attribute
An implementation that supports the AIGP attribute MUST support a An implementation that supports the AIGP attribute MUST support a
configuration item, AIGP_ORIGINATE, that enables or disables its configuration item, AIGP_ORIGINATE, that enables or disables its
creation and attachment to routes. The default value of creation and attachment to routes. The default value of
AIGP_ORIGINATE MUST be "disabled". AIGP_ORIGINATE MUST be "disabled".
A BGP speaker MUST NOT add the AIGP attribute to any route whose path A BGP speaker MUST NOT add the AIGP attribute to any route whose path
leads outside the "AIGP administrative domain" to which the BGP leads outside the "AIGP administrative domain" to which the BGP
speaker belongs. It may be added only to routes that satisfy one of speaker belongs. It may be added only to routes that satisfy one of
the following conditions: the following conditions:
- The route is a static route that is being redistributed into BGP - The route is a static route that is being redistributed into BGP;
- The route is an IGP route that is being redistributed into BGP - The route is an IGP route that is being redistributed into BGP;
- The route is an IBGP-learned route whose AS_PATH attribute is - The route is an IBGP-learned route whose AS_PATH attribute is
empty. empty;
- The route is an EBGP-learned route whose AS_PATH contains only - The route is an EBGP-learned route whose AS_PATH contains only
ASes that are in the same AIGP Administrative Domain as the BGP ASes that are in the same AIGP Administrative Domain as the BGP
speaker. speaker.
A BGP speaker R MUST NOT add the AIGP attribute to any route for A BGP speaker R MUST NOT add the AIGP attribute to any route for
which R does not set itself as the next hop. which R does not set itself as the next hop.
It SHOULD be possible to set AIGP_ORIGINATE to "enabled for the It SHOULD be possible to set AIGP_ORIGINATE to "enabled for the
routes of a particular IGP that are redistributed into BGP" (where "a routes of a particular IGP that are redistributed into BGP" (where "a
skipping to change at page 9, line 30 skipping to change at page 9, line 34
that R1 is about to redistribute that route on a BGP session that is that R1 is about to redistribute that route on a BGP session that is
enabled for sending/receiving the attribute. enabled for sending/receiving the attribute.
If R1 does not change the Next Hop of the route, then R1 MUST NOT If R1 does not change the Next Hop of the route, then R1 MUST NOT
change the AIGP attribute value of the route. change the AIGP attribute value of the route.
In all the computations discussed in this section, the AIGP value In all the computations discussed in this section, the AIGP value
MUST be capped at its maximum unsigned value 0xffffffffffffffff. MUST be capped at its maximum unsigned value 0xffffffffffffffff.
Increasing the AIGP value MUST NOT cause the value to wrap around. Increasing the AIGP value MUST NOT cause the value to wrap around.
If R1 changes the Next Hop of the route from R2 to R1, and if R1's Suppose R1 changes the Next Hop of the route from R2 to R1. If R1's
route to R2 is an IGP-learned route, or a static route that does not route to R2 is either (a) an IGP-learned route or (b) a static route
require recursive next hop resolution, then R1 MUST increase the that does not require recursive next hop resolution, then R1 MUST
value of the AIGP TLV by adding to A the distance from R1 to R2. increase the value of the AIGP TLV by adding to A the distance from
This distance is either the IGP-computed distance from R1 to R2, or R1 to R2. This distance is either the IGP-computed distance from R1
some value determined by policy. However, A MUST be increased by a to R2, or some value determined by policy. However, A MUST be
non-zero amount. increased by a non-zero amount.
Note that if R1 and R2 above are EBGP neighbors, and there is a It is possible that R1 and R2 above are EBGP neighbors, and that
direct link between them on which no IGP is running, then when R1 there is a direct link between them on which no IGP is running. Then
changes the next hop of a route from R2 to R1, the AIGP TLV value when R1 changes the next hop of a route from R2 to R1, the AIGP TLV
MUST be increased by a non-zero amount. The amount of the increase value MUST be increased by a non-zero amount. The amount of the
SHOULD be such that it is properly comparable to the IGP metrics. increase SHOULD be such that it is properly comparable to the IGP
E.g., if the IGP metric is a function of latency, then the amount of metrics. E.g., if the IGP metric is a function of latency, then the
the increase should be a function of the latency from R1 to R2. amount of the increase should be a function of the latency from R1 to
R2.
Suppose R1 changes the Next Hop of the route from R2 to R1, and R1's
route to R2 is either (a) a BGP-learned route or (b) a static route
that requires recursive next hop resolution. Then the AIGP TLV value
needs to be increased in several steps, according to the following
procedure. (Note that this procedure is ONLY used when recursive
next hop resolution is needed.)
If R1 changes the Next Hop of the route from R2 to R1, and if R1's
route to R2 is a BGP-learned route, or a static route that requires
recursive next hop resolution, then the AIGP TLV value needs to be
increased in several steps, according to the following procedure.
(Note that this procedure is ONLY used when recursive next hop
resolution is needed.)
1. Let Xattr be the new AIGP TLV value. 1. Let Xattr be the new AIGP TLV value.
2. Initialize Xattr to A. 2. Initialize Xattr to A.
3. Set the XNH to R2. 3. Set the XNH to R2.
4. Find the route to XNH. 4. Find the route to XNH.
5. If the route to XNH does not require recursive next hop 5. If the route to XNH does not require recursive next hop
resolution, get the distance D from R1 to XNH. (Note that this resolution, get the distance D from R1 to XNH. (Note that this
condition cannot be satisfied the first time through this condition cannot be satisfied the first time through this
procedure.) If D is above a configurable threshold, set the procedure.) If D is above a configurable threshold, set the
AIGP TLV value to Xattr+D. If D is below a configurable AIGP TLV value to Xattr+D. If D is below a configurable
threshold, set the AIGP TLV value to Xattr. In either case, threshold, set the AIGP TLV value to Xattr. In either case,
exit this procedure. exit this procedure.
6. If the route to XNH is a BGP-learned route, and the route does 6. If the route to XNH is a BGP-learned route that does NOT have
NOT have an AIGP attribute, then exit this procedure and do not an AIGP attribute, then exit this procedure and do not pass on
pass on any AIGP attribute. If the route has an AIGP attribute any AIGP attribute. If the route has an AIGP attribute without
without an AIGP TLV, then the AIGP attribute MAY be passed an AIGP TLV, then the AIGP attribute MAY be passed along
along unchanged. unchanged.
7. If the route to XNH is a BGP-learned route, and the route has 7. If the route to XNH is a BGP-learned route that has an AIGP TLV
an AIGP TLV value of Y, then set Xattr=Xattr+Y, and set XNH to value of Y, then set Xattr=Xattr+Y and set XNH to the next hop
the next hop of this route. (The intention here is that Y is of this route. (The intention here is that Y is the AIGP TLV
the AIGP TLV value of the route as it was received by R1, value of the route as it was received by R1, without having
without having been modified by R1.) been modified by R1.)
8. Go to step 4. 8. Go to step 4.
The AIGP TLV value of a given route depends on (a) the AIGP TLV The AIGP TLV value of a given route depends on (a) the AIGP TLV
values of all the next hops that are recursively resolved during this values of all the next hops that are recursively resolved during this
procedure, and (b) the IGP distance to any next hop that is not procedure, and (b) the IGP distance to any next hop that is not
recursively resolved. Any change due to (a) in any of these values recursively resolved. Any change due to (a) in any of these values
MUST trigger a new AIGP computation for that route. Whether a change MUST trigger a new AIGP computation for that route. Whether a change
due to (b) triggers a new AIGP computation depends upon whether the due to (b) triggers a new AIGP computation depends upon whether the
change in IGP distance exceeds a configurable threshold. change in IGP distance exceeds a configurable threshold.
skipping to change at page 12, line 21 skipping to change at page 12, line 24
- neither of the two routes has an AIGP attribute containing an - neither of the two routes has an AIGP attribute containing an
AIGP TLV. AIGP TLV.
The BGP decision process as specified in [BGP] makes use, in its tie The BGP decision process as specified in [BGP] makes use, in its tie
breaker procedures, of "interior cost", defined as follows: breaker procedures, of "interior cost", defined as follows:
"interior cost of a route is determined by calculating the metric "interior cost of a route is determined by calculating the metric
to the NEXT_HOP for the route using the Routing Table." to the NEXT_HOP for the route using the Routing Table."
Suppose route T has a next hop of N. We modify the notion of the This document replaces the "interior cost" tie breaker of [BGP] with
"interior cost" from node R1 to node N as follows: a tie breaker based on the "AIGP-enhanced interior cost". Suppose
route T has a next hop of N. The "AIGP-enhanced interior cost" from
node R1 to node N is defined as follows:
- Let R2 be the BGP next hop of the route to N, after all recursive - Let R2 be the BGP next hop of the route to N after all recursive
resolution of the next hop is done. Let m be the IGP distance resolution of the next hop is done. Let m be the IGP distance
(or in the case of a static route, the configured distance) from (or in the case of a static route, the configured distance) from
R1 to R2. R1 to R2.
- If the installed route to N has an AIGP attribute with an AIGP - If the installed route to N has an AIGP attribute with an AIGP
TLV, set A to the AIGP value of the route to N, computing the TLV, set A to its AIGP TLV value, computed according to the
AIGP value of the route according to the procedure of section procedure of section 3.4.3.
3.4.3.
- If the installed route to N does not have an AIGP value, set A to - If the installed route to N does not have an AIGP attribute with
0. an AIGP TLV, set A to 0.
- The "interior cost" of route T is the quantity A+m. - The "AIGP-enhanced interior cost" of route T is the quantity A+m.
The "interior cost" tie breaker of [BGP] is then applied, but using
the "AIGP-enhanced interior cost" instead of the "interior cost" as
defined in [BGP].
5. Deployment Considerations 5. Deployment Considerations
Using the AIGP attribute to achieve a desired routing policy will be Using the AIGP attribute to achieve a desired routing policy will be
more effective if each BGP speaker can use it to choose from among more effective if each BGP speaker can use it to choose from among
multiple routes. Thus is it highly recommended that the procedures of multiple routes. Thus is it highly recommended that the procedures of
[BESTEXT] and [ADD-PATH] be used in conjunction with the AIGP [BESTEXT] and [ADD-PATH] be used in conjunction with the AIGP
Attribute. Attribute.
If a Route Reflector does not pass all paths to its clients, then it If a Route Reflector does not pass all paths to its clients, then it
skipping to change at page 13, line 30 skipping to change at page 13, line 43
desired. desired.
Improper configuration on both ends of an EBGP connection could Improper configuration on both ends of an EBGP connection could
result in an AIGP attribute being passed from one service provider to result in an AIGP attribute being passed from one service provider to
another. This would likely result in an unsound selection of paths. another. This would likely result in an unsound selection of paths.
8. Acknowledgments 8. Acknowledgments
The authors would like to thank Waqas Alam, Rajiv Asati, Bruno The authors would like to thank Waqas Alam, Rajiv Asati, Bruno
Decraene, Brian Dickson, Clarence Filsfils, Anoop Kapoor, Pratima Decraene, Brian Dickson, Clarence Filsfils, Anoop Kapoor, Pratima
Kini, Thomas Mangin, Robert Raszuk, Yakov Rekhter, Eric Rosenberg, Kini, Sue Hares, Thomas Mangin, Robert Raszuk, Yakov Rekhter, Eric
Samir Saad, John Scudder, Shyam Sethuram, and Ilya Varlashkin for Rosenberg, Samir Saad, John Scudder, Shyam Sethuram, and Ilya
their input. Varlashkin for their input.
9. Authors' Addresses 9. Authors' Addresses
Rex Fernando Rex Fernando
Cisco Systems, Inc. Cisco Systems, Inc.
170 Tasman Drive 170 Tasman Drive
San Jose, CA 95134 San Jose, CA 95134
Email: rex@cisco.com Email: rex@cisco.com
Pradosh Mohapatra Pradosh Mohapatra
 End of changes. 21 change blocks. 
56 lines changed or deleted 64 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/