draft-ietf-rtgwg-backoff-algo-02.txt | draft-ietf-rtgwg-backoff-algo-03.txt | |||
---|---|---|---|---|
Network Working Group B. Decraene | Network Working Group B. Decraene | |||
Internet-Draft Orange | Internet-Draft Orange | |||
Intended status: Standards Track S. Litkowski | Intended status: Standards Track S. Litkowski | |||
Expires: June 19, 2016 Orange Business Service | Expires: January 5, 2017 Orange Business Service | |||
H. Gredler | H. Gredler | |||
Private Contributor | RtBrick Inc | |||
A. Lindem | A. Lindem | |||
P. Francois | P. Francois | |||
Cisco Systems | Cisco Systems | |||
December 17, 2015 | C. Bowers | |||
Juniper Networks, Inc. | ||||
July 4, 2016 | ||||
SPF Back-off algorithm for link state IGPs | SPF Back-off algorithm for link state IGPs | |||
draft-ietf-rtgwg-backoff-algo-02 | draft-ietf-rtgwg-backoff-algo-03 | |||
Abstract | Abstract | |||
This document defines a standard algorithm to back-off link-state IGP | This document defines a standard algorithm to back-off link-state IGP | |||
SPF computations. | SPF computations. | |||
Having one standard algorithm improves interoperability by reducing | Having one standard algorithm improves interoperability by reducing | |||
the probability and/or duration of transient forwarding loops during | the probability and/or duration of transient forwarding loops during | |||
the IGP convergence when the IGP reacts to multiple proximate IGP | the IGP convergence when the IGP reacts to multiple proximate IGP | |||
events. | events. | |||
skipping to change at page 1, line 47 ¶ | skipping to change at page 2, line 4 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on January 5, 2017. | ||||
This Internet-Draft will expire on June 19, 2016. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2016 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. High level goals . . . . . . . . . . . . . . . . . . . . . . 3 | 2. High level goals . . . . . . . . . . . . . . . . . . . . . . 3 | |||
3. Definitions and parameters . . . . . . . . . . . . . . . . . 3 | 3. Definitions and parameters . . . . . . . . . . . . . . . . . 4 | |||
4. Principles of SPF delay algorithm . . . . . . . . . . . . . . 4 | 4. Principles of SPF delay algorithm . . . . . . . . . . . . . . 4 | |||
5. Specification of the SPF delay algorithm . . . . . . . . . . 5 | 5. Specification of the SPF delay state machine . . . . . . . . 5 | |||
6. Parameters . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 5.1. States . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
7. Impact on micro-loops . . . . . . . . . . . . . . . . . . . . 6 | 5.2. States Transitions . . . . . . . . . . . . . . . . . . . 6 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 5.3. FSM Events . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
9. Security considerations . . . . . . . . . . . . . . . . . . . 7 | 6. Parameters . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 | 7. Impact on micro-loops . . . . . . . . . . . . . . . . . . . . 9 | |||
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
11.1. Normative References . . . . . . . . . . . . . . . . . . 7 | 9. Security considerations . . . . . . . . . . . . . . . . . . . 9 | |||
11.2. Informative References . . . . . . . . . . . . . . . . . 7 | 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
11.1. Normative References . . . . . . . . . . . . . . . . . . 9 | ||||
11.2. Informative References . . . . . . . . . . . . . . . . . 9 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
1. Introduction | 1. Introduction | |||
Link state IGPs, such as IS-IS [ISO10589-Second-Edition] and OSPF | Link state IGPs, such as IS-IS [ISO10589-Second-Edition] and OSPF | |||
[RFC2328], perform distributed route computation on all routers of | [RFC2328], perform distributed route computation on all routers in | |||
the area/level. In order to have consistent routing tables across | the area/level. In order to have consistent routing tables across | |||
the network, such distributed computation requires that all routers | the network, such distributed computation requires that all routers | |||
have the same version of the network topology (Link State DataBase | have the same version of the network topology (Link State DataBase | |||
(LSDB)) and perform their computation at the same time. | (LSDB)) and perform their computation at the same time. | |||
In general, when the network is stable, there is a desire to compute | In general, when the network is stable, there is a desire to compute | |||
the new SPF as soon as the failure is detected in order to quickly | a new SPF as soon as a failure is detected in order to quickly route | |||
route around the failure. However, when the network is experiencing | around the failure. However, when the network is experiencing | |||
multiple proximate failures over a short period of time, there is a | multiple proximate failures over a short period of time, there is a | |||
conflicting desire to limit the frequency of SPF computations. | conflicting desire to limit the frequency of SPF computations. | |||
Indeed, this allows a reduction in control plane resources used by | Indeed, this allows a reduction in control plane resources used by | |||
IGPs and all protocols/subsystem reacting on the attendant route | IGPs and all protocols/subsystems reacting on the attendant route | |||
change, such as LDP, RSVP-TE, BGP, Fast ReRoute computations, FIB | change, such as LDP, RSVP-TE, BGP, Fast ReRoute computations, FIB | |||
updates... This will reduce the churn on routers and in the network | updates... This also reduces the churn on routers and in the network | |||
and, in particular, reduce the side effects such as micro-loops that | and, in particular, reduces the side effects such as micro-loops that | |||
ensue during IGP convergence. | ensue during IGP convergence. | |||
To allow for this, IGPs implement a SPF back-off algorithm. | To allow for this, IGPs implement an SPF back-off algorithm. | |||
Different implementations choose different algorithms. Hence, in a | However, different implementations have choosen different algorithms. | |||
multi-vendor network, it's not possible to ensure that all routers | Hence, in a multi-vendor network, it's not possible to ensure that | |||
trigger their SPF computation after the same delay. This situation | all routers trigger their SPF computation after the same delay. This | |||
increases the average differential delay between routers completing | situation increases the average differential delay between routers | |||
their SPF computation. It also increases the probability that | completing their SPF computation. It also increases the probability | |||
different routers compute their FIBs based on a different LSDB | that different routers compute their FIBs based on different LSDB | |||
versions. Both factors increase the probability and/or duration of | versions. Both factors increase the probability and/or duration of | |||
micro-loops. | micro-loops. | |||
To allow multi-vendor networks to have all routers delay their SPF | To allow multi-vendor networks to have all routers delay their SPF | |||
computations for the same duration, this document specifies a | computations for the same duration, this document specifies a | |||
standard algorithm. Optionally, implementations may offer | standard algorithm. Optionally, implementations may offer | |||
alternative algorithms. | alternative algorithms. | |||
2. High level goals | 2. High level goals | |||
The high level goals of this algorithm are the following: | The high level goals of this algorithm are the following: | |||
o Very fast convergence for a single event (e.g., link failure). | o Very fast convergence for a single event (e.g., link failure). | |||
o Slightly paced fast convergence for multiple proximate IGP events | o Paced fast convergence for multiple proximate IGP events while IGP | |||
while IGP stability is considered acceptable. | stability is considered acceptable. | |||
o Delayed convergence when the IGP stability is problematic. This | o Delayed convergence when IGP stability is problematic. This will | |||
will allow the IGP and related processes to conserve resources | allow the IGP and related processes to conserve resources during | |||
during the period of instability. | the period of instability. | |||
o Always try to avoid different SPF_DELAY timers values across | o Always try to avoid different SPF_DELAY timers values across | |||
different routers in the area/level. Even though not all routers | different routers in the area/level. Even though not all routers | |||
will receive IGP messages at the same time (due to differences | will receive IGP messages at the same time, due to differences | |||
both in the distance from the originator of the IGP event and in | both in the distance from the originator of the IGP event and in | |||
flooding implementations). | flooding implementations. | |||
3. Definitions and parameters | 3. Definitions and parameters | |||
IGP events: An IGP LSDB change requiring a new routing table | IGP events: The reception or origination of an IGP LSDB change | |||
computation. Examples are a topology change, a prefix change, a | requiring a new routing table computation. Examples are a topology | |||
metric change on link or prefix... | change, a prefix change, a metric change on a link or prefix... Note | |||
that locally triggering a routing table computation is not considered | ||||
as an IGP event since other IGP routers are unaware of this | ||||
occurrence. | ||||
Routing table computation: computation of the routing table, by the | Routing table computation: Computation of the routing table, by the | |||
IGP, using the IGP LSDB. No distinction is made between the type of | IGP, using the IGP LSDB. No distinction is made between the type of | |||
computation performed. e.g., full SPF, incremental SPF, Partial Route | computation performed. e.g., full SPF, incremental SPF, Partial Route | |||
Computation (PRC). The type of computation is a local consideration. | Computation (PRC). The type of computation is a local consideration. | |||
This document may indifferently use the terms routing table | This document may interchangeably use the terms routing table | |||
computation or SPF computation. | computation and SPF computation. | |||
The SPF_DELAY is the delay introduced between the IGP event and the | SPF_DELAY: The delay between the first IGP event triggering a new | |||
start of the routing table computation. It can take the following | routing table computation and the start of that routing table | |||
values: | computation. It can take the following values: | |||
INITIAL_WAIT: a very small delay to quickly handle link failure, | INITIAL_SPF_DELAY: A very small delay to quickly handle link | |||
e.g., 0 milliseconds. | failure, e.g., 0 milliseconds. | |||
FAST_WAIT: a small delay to have a fast convergence in case of | SHORT_SPF_DELAY: A small delay to have a fast convergence in case of | |||
single component failure (node, SRLG..), e.g., 50-100 milliseconds. | a single component failure (node, SRLG..), e.g., 50-100 | |||
Note: we want to be fast, but as this failure results in multiple | milliseconds. | |||
IGP events, being too fast increases the probability to receive | ||||
additional network events immediately after the SPF computation. | ||||
LONG_WAIT: a long delay when the IGP is unstable, e.g., 2 seconds. | LONG_SPF_DELAY: A long delay when the IGP is unstable, e.g., 2 | |||
Note: Allow the IGP network to stabilize. | seconds. Note that this allows the IGP network to stabilize. | |||
The TIME_TO_LEARN timer is the maximum duration typically needed to | TIME_TO_LEARN_INTERVAL: This is the maximum duration typically needed | |||
learn all the IGP events related to a single component failure (e.g., | to learn all the IGP events related to a single component failure | |||
router failure, SRLG failure), e.g., 1 second. It's mostly dependent | (e.g., router failure, SRLG failure), e.g., 1 second. It's mostly | |||
on variation of failure detection times between all routers that are | dependent on failure detection time variation between all routers | |||
adjacent to the failure. Additionally, it may depend on the | that are adjacent to the failure. Additionally, it may depend on the | |||
different flooding implementations for routers in the network. | different IGP implementations across the network, related to | |||
origination and flooding of their link state advertisements. | ||||
The HOLD_DOWN timer is the time needed with no received IGP events | HOLD_DOWN_INTERVAL: The time required with no received IGP events | |||
before considering the IGP to be stable again, allowing the SPF_DELAY | before considering the IGP to be stable again and allowing the | |||
to be restored to INITIAL_WAIT. e.g., 3 seconds. | SPF_DELAY to be restored to INITIAL_WAIT. e.g., 3 seconds. | |||
4. Principles of SPF delay algorithm | 4. Principles of SPF delay algorithm | |||
For this first IGP event, we assume that there has been a single | For this first IGP event, we assume that there has been a single | |||
simple change in the network which can be taken into account using a | simple change in the network which can be taken into account using a | |||
single routing computation (e.g., link failure, prefix (metric) | single routing computation (e.g., link failure, prefix (metric) | |||
change) and we optimize for very fast convergence, delaying the | change) and we optimize for very fast convergence, delaying the | |||
routing computation by INITIAL_WAIT. Under this assumption, there is | routing computation by INITIAL_SPF_DELAY. Under this assumption, | |||
no benefit in delaying the routing computation. In a typical | there is no benefit in delaying the routing computation. In a | |||
network, this is the most common type of IGP event. Hence, it makes | typical network, this is the most common type of IGP event. Hence, | |||
sense to optimize this case. | it makes sense to optimize this case. | |||
If subsequent IGP events are received in a short period of time | If subsequent IGP events are received in a short period of time | |||
(TIME_TO_LEARN), we then assume that a single component failed, but | (TIME_TO_LEARN_INTERVAL), we then assume that a single component | |||
that this failure requires the knowledge of multiple IGP events in | failed, but that this failure requires the knowledge of multiple IGP | |||
order for the IGP routing to converge. Under this assumption, we | events in order for IGP routing to converge. Under this assumption, | |||
want fast convergence since this is a normal network situation. | we want fast convergence since this is a normal network situation. | |||
However, there is a benefit in waiting for all IGP events related to | However, there is a benefit in waiting for all IGP events related to | |||
this single component failure so that the IGP can compute the post- | this single component failure so that the IGP can compute the post- | |||
failure routing table in a single route computation. In this | failure routing table in a single route computation. In this | |||
situation, we delay the routing computation by FAST_WAIT. | situation, we delay the routing computation by LONG_WAIT. | |||
If IGP events are still received after TIME_TO_LEARN seconds from the | If IGP events are still received after TIME_TO_LEARN_INTERVAL from | |||
initial IGP event, then the network is presumably experiencing | the initial IGP event received in QUIET state, then the network is | |||
multiple independent failures and while waiting for network | presumably experiencing multiple independent failures. In this case, | |||
stability, the computations are delayed for a longer time represented | while waiting for network stability, the computations are delayed for | |||
by LONG_WAIT. This SPF_delay is kept until no IGP events are | a longer time represented by LONG_SPF_DELAY. This SPF delay is kept | |||
received for HOLD_DOWN seconds. | until no IGP events are received for HOLDDOWN_INTERVAL. | |||
Note: previous SPF delay algorithms used to count the number of SPF | Note that previous SPF delay algorithms used to count the number of | |||
computations. However, as all routers may receive the IGP events at | SPF computations. However, as all routers may receive the IGP events | |||
different times, we cannot assume that all routers will perform the | at different times, we cannot assume that all routers will perform | |||
same number of SPF computations or that they will schedule them at | the same number of SPF computations or that they will schedule them | |||
the same time. For example, assuming that the SPF delay is 50 ms, | at the same time. For example, assuming that the SPF delay is 50 ms, | |||
router R1 may receive 3 IGP events (E1, E2, E3) in those 50 ms and | router R1 may receive 3 IGP events (E1, E2, E3) in those 50 ms and | |||
hence will perform a single routing computation. While another | hence will perform a single routing computation. While another | |||
router R2 may only receive 2 events (E1, E2) in those 50 ms and hence | router R2 may only receive 2 events (E1, E2) in those 50 ms and hence | |||
will schedule another routing computation when receiving E3. That's | will schedule another routing computation when receiving E3. That's | |||
why this document defines a time (TIME_TO_LEARN) from the initial | why this document uses a time (TIME_TO_LEARN) from the initial event | |||
event detection/reception as opposed to defining the number of SPF | detection/reception as opposed to counting the number of SPF | |||
computations to determine when the IGP is unstable. | computations to determine when the IGP is unstable. | |||
5. Specification of the SPF delay algorithm | 5. Specification of the SPF delay state machine | |||
When no IGP events have occurred during the HOLD_DOWN interval: | 5.1. States | |||
o The IGP is set to the QUIET state. | This section describes the state machine. The naming and semantics | |||
of each state corresponds directly to the SPF delay used for IGP | ||||
events received in that state. Three states are defined: | ||||
When the IGP is in the QUIET state and an IGP event is received: | QUIET: This is the initial state, when no IGP events have occured for | |||
at least HOLDDOWN_INTERVAL since the previous routing table | ||||
computation. The state is meant to handle link failures very | ||||
quickly. | ||||
o The time of this first IGP event is stored in FIRST_EVENT_TIME. | SHORT_WAIT: State entered when an IGP event has been received in | |||
QUIET state and exited when no IGP events have been received for | ||||
HOLDDOWN_TIMER. This state is meant to handle single component | ||||
failure requiring multiple IGP events (e.g., node, SRLG). | ||||
o The next routing table computation is scheduled at: this IGP event | LONG_WAIT: State reached after TIME_TO_LEARN_INTERVAL. In other | |||
received time + INITIAL_WAIT. | words, state reached after TIME_TO_LEARN_INTERVAL in state | |||
SHORT_WAIT. This state is meant to handle multiple independent | ||||
component failures during periods of IGP instability. | ||||
o The IGP is set to the FAST_WAIT state. | 5.2. States Transitions | |||
When the IGP is in the FAST_WAIT state and an IGP event is received: | The FSM is initialized to the QUIET_STATE with all three timers | |||
deactivated. The following diagram describes briefly the state | ||||
transitions. | ||||
o If more than the TIME_TO_LEARN interval has passed since | +-------------------+ | |||
FIRST_EVENT_TIME, then the IGP is set to the HOLD_DOWN state. | | |<-------------------+ | |||
| QUIET | | | ||||
| |<---------+ | | ||||
+-------------------+ | | | ||||
| | | | ||||
| | | | ||||
| 1: IGP event | | | ||||
| | | | ||||
v | | | ||||
+-------------------+ | | | ||||
+---->| | | | | ||||
| | SHORT_WAIT |----->----+ | | ||||
+-----| | | | ||||
2: +-------------------+ 6: HOLDDOWN_TIMER | | ||||
IGP event | expiration | | ||||
| | | ||||
| | | ||||
| 3: LEARN_TIMER | | ||||
| expiration | | ||||
| | | ||||
v | | ||||
+-------------------+ | | ||||
+---->| | | | ||||
| | LONG_WAIT |------------>-------+ | ||||
+-----| | | ||||
4: +-------------------+ 5: HOLDDOWN_TIMER | ||||
IGP event expiration | ||||
o If a routing table computation is not already scheduled, one is | Figure 1: State Machine | |||
scheduled at: this IGP event received time + FAST_WAIT. | ||||
When the IGP is in the HOLD_DOWN state and an IGP event is received: | 5.3. FSM Events | |||
o If a routing table computation is not already scheduled, one is | This section describes the events and the actions performed in | |||
scheduled at: this IGP event received time + LONG_WAIT. | response. | |||
Event 1: IGP events, while in QUIET_STATE. | ||||
Actions on event 1: | ||||
o If SPF_TIMER is not already running, start it with value | ||||
INITIAL_SPF_DELAY. | ||||
o Start LEARN_TIMER with TIME_TO_LEARN_INTERVAL. | ||||
o Start HOLDDOWN_TIMER with HOLDDOWN_INTERVAL. | ||||
o Transition to SHORT_WAIT state. | ||||
Event 2: IGP events, while in SHORT_WAIT. | ||||
Actions on event 2: | ||||
o Reset HOLDDOWN_TIMER to HOLDDOWN_INTERVAL. | ||||
o If SPF_TIMER is not already running, start it with value | ||||
SHORT_SPF_DELAY. | ||||
o Remain in current state. | ||||
Event 3: LEARN_TIMER expiration. | ||||
Actions on event 3: | ||||
o Transition to LONG_WAIT state. | ||||
Event 4: IGP events, while in LONG_WAIT. | ||||
Actions on event 4: | ||||
o Reset HOLDDOWN_TIMER to HOLDDOWN_INTERVAL. | ||||
o If SPF_TIMER is not already running, start it with value | ||||
LONG_SPF_DELAY. | ||||
o Remain in current state. | ||||
Event 5: HOLDDOWN_TIMER expiration, while in LONG_WAIT. | ||||
Actions on event 5: | ||||
o Transition to QUIET state. | ||||
Event 6: HOLDDOWN_TIMER expiration, while in SHORT_WAIT. | ||||
Actions on event 6: | ||||
o Deactivate LEARN_TIMER. | ||||
o Transition to QUIET state. | ||||
6. Parameters | 6. Parameters | |||
All the parameters MUST be configurable. All the delays | All the parameters MUST be configurable. All the delays | |||
(INITIAL_WAIT, FAST_WAIT, LONG_WAIT, TIME_TO_LEARN, HOLD_DOWN) SHOULD | (INITIAL_SPF_DELAY, SHORT_SPF_DELAY, LONG_SPF_DELAY, | |||
be configurable at the millisecond granularity. They MUST be | TIME_TO_LEARN_INTERVAL, HOLD_DOWN_INTERVAL) SHOULD be configurable at | |||
configurable at least at the tenth of second granularity. The | the millisecond granularity. They MUST be configurable at least at | |||
configurable range for all the parameters SHOULD be at least from 0 | the tenth of second granularity. The configurable range for all the | |||
milliseconds to 60 seconds. | parameters SHOULD at least be from 0 milliseconds to 60 seconds. | |||
This document does not propose default values for the parameters | This document does not propose default values for the parameters | |||
because these values are expected to be context dependent. | because these values are expected to be context dependent. | |||
Implementations are free to propose their own default values. | Implementations are free to propose their own default values. | |||
When setting the (default) values, one SHOULD consider the customer's | When setting (default) values, one SHOULD consider the customers and | |||
or their applications' requirements, the computational power of the | their application requirements, the computational power of the | |||
routers, the size of the network, and, in particular, the number of | routers, the size of the network, and, in particular, the number of | |||
IP prefixes advertised in the IGP, the frequency and number of IGP | IP prefixes advertised in the IGP, the frequency and number of IGP | |||
events, the number of protocols reactions/computations triggered by | events, the number of protocols reactions/computations triggered by | |||
IGP SPF (e.g., BGP, PCEP, Traffic Engineering CSPF, Fast ReRoute | IGP SPF (e.g., BGP, PCEP, Traffic Engineering CSPF, Fast ReRoute | |||
computations). | computations). | |||
Note that some or all of these factors may change over the life of | Note that some or all of these factors may change over the life of | |||
the network. In case of doubt, it's RECOMMENDED to play it safe and | the network. In case of doubt, it's RECOMMENDED to play it safe and | |||
start with safe, i.e., longer timers. | start with safe, i.e., longer timers. | |||
skipping to change at page 6, line 46 ¶ | skipping to change at page 9, line 13 ¶ | |||
values. | values. | |||
7. Impact on micro-loops | 7. Impact on micro-loops | |||
Micro-loops during IGP convergence are due to a non-synchronized or | Micro-loops during IGP convergence are due to a non-synchronized or | |||
non-ordered update of the forwarding information tables (FIB) | non-ordered update of the forwarding information tables (FIB) | |||
[RFC5715] [RFC6976] [I-D.ietf-rtgwg-spf-uloop-pb-statement]. FIBs | [RFC5715] [RFC6976] [I-D.ietf-rtgwg-spf-uloop-pb-statement]. FIBs | |||
are installed after multiple steps such as SPF wait time, SPF | are installed after multiple steps such as SPF wait time, SPF | |||
computation, FIB distribution, and FIB update. This document only | computation, FIB distribution, and FIB update. This document only | |||
addresses the first contribution. This standardized procedure | addresses the first contribution. This standardized procedure | |||
reduces the probability and/or duration of micro-loops when the IGP | reduces the probability and/or duration of micro-loops when IGPs | |||
experience multiple proximate events. It does not prevent all micro- | experience multiple proximate events. It does not prevent all micro- | |||
loops. However, it is beneficial and its cost seems limited compared | loops. However, it is beneficial and is less complex and costly to | |||
to full solutions such as [RFC5715] or [RFC6976]. | implement when compared to full solutions such as [RFC5715] or | |||
[RFC6976]. | ||||
8. IANA Considerations | 8. IANA Considerations | |||
No IANA actions required. | No IANA actions required. | |||
9. Security considerations | 9. Security considerations | |||
This algorithm presented in this document does not in any way | The algorithm presented in this document does not compromise IGP | |||
compromise the security of the IGP. In fact, the HOLD_DOWN state may | security. An attacker having the ability to generate IGP events | |||
mitigate the effects of Denial-of-Service (DOS) attacks generating | would be able to delay the IGP convergence time. The LONG_SPF_DELAY | |||
many IGP events. | state may help mitigate the effects of Denial-of-Service (DOS) | |||
attacks generating many IGP events. | ||||
10. Acknowledgements | 10. Acknowledgements | |||
We would like to acknowledge Les Ginsberg, Uma Chunduri, and Mike | We would like to acknowledge Les Ginsberg, Uma Chunduri, and Mike | |||
Shand for the discussions and comments related to this document. | Shand for the discussions and comments related to this document. | |||
11. References | 11. References | |||
11.1. Normative References | 11.1. Normative References | |||
skipping to change at page 8, line 15 ¶ | skipping to change at page 10, line 31 ¶ | |||
[RFC6976] Shand, M., Bryant, S., Previdi, S., Filsfils, C., | [RFC6976] Shand, M., Bryant, S., Previdi, S., Filsfils, C., | |||
Francois, P., and O. Bonaventure, "Framework for Loop-Free | Francois, P., and O. Bonaventure, "Framework for Loop-Free | |||
Convergence Using the Ordered Forwarding Information Base | Convergence Using the Ordered Forwarding Information Base | |||
(oFIB) Approach", RFC 6976, DOI 10.17487/RFC6976, July | (oFIB) Approach", RFC 6976, DOI 10.17487/RFC6976, July | |||
2013, <http://www.rfc-editor.org/info/rfc6976>. | 2013, <http://www.rfc-editor.org/info/rfc6976>. | |||
Authors' Addresses | Authors' Addresses | |||
Bruno Decraene | Bruno Decraene | |||
Orange | Orange | |||
38 rue du General Leclerc | ||||
Issy Moulineaux cedex 9 92794 | ||||
France | ||||
Email: bruno.decraene@orange.com | Email: bruno.decraene@orange.com | |||
Stephane Litkowski | Stephane Litkowski | |||
Orange Business Service | Orange Business Service | |||
Email: stephane.litkowski@orange.com | Email: stephane.litkowski@orange.com | |||
Hannes Gredler | Hannes Gredler | |||
Private Contributor | RtBrick Inc | |||
Email: hannes@gredler.at | ||||
Email: hannes@rtbrick.com | ||||
Acee Lindem | Acee Lindem | |||
Cisco Systems | Cisco Systems | |||
301 Midenhall Way | 301 Midenhall Way | |||
Cary, NC 27513 | Cary, NC 27513 | |||
USA | USA | |||
Email: acee@cisco.com | Email: acee@cisco.com | |||
Pierre Francois | Pierre Francois | |||
Cisco Systems | Cisco Systems | |||
Email: pifranco@cisco.com | Email: pifranco@cisco.com | |||
Chris Bowers | ||||
Juniper Networks, Inc. | ||||
1194 N. Mathilda Ave. | ||||
Sunnyvale, CA 94089 | ||||
US | ||||
Email: cbowers@juniper.net | ||||
End of changes. 53 change blocks. | ||||
123 lines changed or deleted | 219 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |