Internet DRAFT - draft-hu-pim-route-flap-damping
draft-hu-pim-route-flap-damping
Pim workgroup Fangwei. Hu
Internet-Draft Sandy. Zhang
Intended status: Standards Track BenChong. Xu
Expires: January 6, 2016 ZTE Corporation
July 5, 2015
PIM Route Flap Damping
draft-hu-pim-route-flap-damping-01.txt
Abstract
This document describes the route flap damping functions for PIM-SM
[RFC4601], to reduce the processing load caused by the instability of
routing peers.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 6, 2016.
Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Hu, et al. Expires January 6, 2016 [Page 1]
Internet-Draft PIM Route Flap Damping July 2015
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Parameters Definition . . . . . . . . . . . . . . . . . . . . 3
3. Simple Mulicast Route Damping Algorithm . . . . . . . . . . . 4
4. PIM Join/Prune message Damping . . . . . . . . . . . . . . . 4
4.1. PIM(*,*, RP)Join/Prune Message Damping . . . . . . . . . 4
4.2. PIM (*, G) Join/Prune Message Damping . . . . . . . . . . 8
4.3. PIM (S, G) Join/Prune Message Damping . . . . . . . . . . 11
4.4. PIM (S, G, RPT) Join/Prune Message Damping . . . . . . . 15
5. Security Considerations . . . . . . . . . . . . . . . . . . . 18
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18
7. Normative References . . . . . . . . . . . . . . . . . . . . 18
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18
1. Introduction
The instability of downstream routers, which may include the frequent
change of, for instance the unicast routing, the physical state of
multicast interfaces etc., will trigger an excessive number of Join/
Prune messages sent upwards to the routing peers where an extra
amount of updates of routing state are made. This is referred to
herein as "route flap".
The MRIB (Multicast Routing Information Base) in PIM protocol is the
multicast topology table for the multicast data forwarding [RFC4601].
The difference of MRIB from the unicast routing table is that it
includes one incoming interface(the incoming interface for the MRIB
is used for RPF check) and one or several outgoing interfaces, while
the unicast routing table only includes one outgoing interface, so
the flap of MRIB has more complex than the unicast route table:
o The outgoing interface for the multicast route may be added one by
one. If there are many outgoing interfaces (for example, there
are 100 outgoing interfaces) for a multicast routing, the
multicast route will be updated for 100 times.
o The multicast routes flap may be caused by one of the outgoing
interface, while all the other outgoing interfaces keep stable.
If we suppress the multicast route based on one of the outgoing
interfaces, the multicast route will not be updated due to the
changes of other outgoing interfaces or incoming interface.
The BGP flap damping procedure is introduced in RFC 2439[RFC2439],
which is based on an exponential decay algorithm (We name it as
RFC2439 algorithm in this document). The RFC 2439 damping algorithm
is useful and helpful for the unicast route flap, while it could be a
little complex for the multicast route flap:
Hu, et al. Expires January 6, 2016 [Page 2]
Internet-Draft PIM Route Flap Damping July 2015
o The BGP 2439 algorithm is based on the statistics of the damp
algorithm, which needs the amount of calculation. If there are
many outgoing interfaces for the multicast route, it will take
much time and has great pressure to the router to finish the
calculation.
o The BGP 2439 algorithm is not very intuitive. The calculation
result is a nonlinear exponential damp index and it is hard to
understand the result for the operator.
o The recovery time for BGP 2439 algorithm is very long in some
situations. The recovery time may be several minutes from the
deployment statistics
This document proposes a new damp algorithm for multicast route
(Simple multicast route damping algorithm, SMRDA). The SMRDA is an
optional, simple and used for the interfaces flap reason damping
algorithm. It is a complementary for BGP algorithm 2439. The SMRDA
algorithm could suppress the multicast route caused by the interfaces
flap rapidly, and after the disappearance of the interfaces damping,
and the multicast route will recover to the normal status quickly.
2. Parameters Definition
Flap-count: It is used to count the times of PIM multicast route item
flapping.
Damping-threshold: This value is expressed as a number of PIM
multicast route withdrawals. It is above which a PIM multicast route
will be suppressed.
Damping-reuse-threshold: This value is expressed as a number of PIM
multicast route withdrawals. It is below which a suppressed item
will now be used again.
Half-life-timer: It is a cycle timer. When half-life-timer is
expired, the flap-count will be reduced by half if it is bigger than
1. If the flap-count is 1, it is reduced to 0. The half-life-timer
is used in the NoDamping and Damping state.
Maximum-hold-timer: This value is the maximum time a suppressed PIM
multicast route item should be reuse no matter how unstable it has
been prior to this period of stability.
Hu, et al. Expires January 6, 2016 [Page 3]
Internet-Draft PIM Route Flap Damping July 2015
3. Simple Mulicast Route Damping Algorithm
The principle of the simple multicast route damping algorithm is as
following:
o When the outgoing interface(OIF)'s state change, the flap-count
for that outgoing interface(OIF) plus one;
o If the flap-count exceeds the damping-thershold, the outgoing
interface(OIF)'s state changing will be suppressed;
o If the state of one outgoing interface(OIF) becomes stable, that
is, the flap-count decreases to lower than damping-reuse-
threshold, the outgoing interface(OIF)'s will be recovery;
o If the time of the suppressed outgoing interface exceeds the
Maximum-hold-timer, the outgoing interface(OIF)'s state is not
suppressed any more.
4. PIM Join/Prune message Damping
The damping functions are categorized according to route flaps
resulting from different types of Join/Prune messages received. This
section describes the procedure in details for each type of Join/
Prune messages.
4.1. PIM(*,*, RP)Join/Prune Message Damping
The (*,*, RP) Damping state is shown in figure 1, there are three
states:
Idle
The damping function isn't enabled yet in this router.
Damping
The (*,*, RP) state is damped in this router. The (*, *, RP)
damping route is in damping list.
NoDamping
The (*,*, RP) state is not damped in this router. The (*, *,
RP) damping route is in damping pending list.
The following events can change the (*,*, RP) Join/Prune message
damping state:
E1: damping function is enabled in the router.
E2: damping disable is disabled in the router.
Hu, et al. Expires January 6, 2016 [Page 4]
Internet-Draft PIM Route Flap Damping July 2015
E3: The flap-count is above the damping-threshold.
E4: The flap-count is below the damping reuse threshold.
E5: maximum-hold-timer is expired.
(*,*, RP)damping state machine
+------+ E1 +----------+
| Idle |---------------------------- | NoDamping|
+------+ -------------------------- +----------+
^ E2 ^ |
| | |
| | |
E2 | E4 or E5 | |
| | |
| | | E3
| +-------+ | |
+-----------------|Damping|---------+ |
+-------+ -----------+
Figure 1
(*, *, RP) state machine for triggered messages in tabular form:
| Event | Idle | Damping | NoDamping |
+-------+---------------+----------------+----------------+
| E1 | ->NoDamping | N/A | N/A |
| | [Action A1] | | |
+-----------------------+----------------+----------------+
| E2 | N/A | -> Idle | -> Idle |
| | | [Action A2] | [Action A2] |
+-----------------------+----------------+----------------+
| | | | -> Damping |
| E3 | N/A | N/A | [Action A3] |
+-----------------------+----------------+----------------+
| E4 | N/A | -> NoDamping | N/A |
| | | [Action A4] | |
+-----------------------+----------------+----------------+
| E5 | N/A | -> NoDamping | N/A |
| | | [Action A5] | |
+-----------------------+----------------+----------------+
Transitions from Idle state
When the (*, *, RP) damping state machine is in Idle state, the
following events may trigger transitions:
Hu, et al. Expires January 6, 2016 [Page 5]
Internet-Draft PIM Route Flap Damping July 2015
E1:The damping function is enabled in this router. The (*,
*, RP)damping state machine enters into NoDamping state
Transitions from NoDamping State
When the (*, *, RP) damping state machine is in NoDamping
state, the following events may trigger transitions:
E3: The flap-count is used to count the changes of (*, *,
RP) route. If the (*, *, RP)item is in Join state and the
new Join/Prune message received indicates that the route
should be pruned, the flap-count should record the change,
and vice versa, if the (*, *, RP) route is in delete state
and new Join/Prune message received indicates that the route
should be created, the flap-count also records it. If the
flap-count is above the damping-threshold, event E3 is
triggered, the state machine enters into damping state.
Transitions from NoDamping State
When the (*, *, RP) damping state machine is in damping state,
the following events may trigger transitions:
E2: The damping function is disabled in this router. The
(*, *, RP) damping state machine enters into Idle state.
E4: The flap-count is below the damping reuse threshold, the
item in damping list is reused, and the (*, *, RP) damping
route state machine enters into NoDamping state.
E5: The maximum-hold-timer is expired. The PIM (*, *, RP)
route item in Damping state is reused no matter how unstable
it has been prior to this period of stability. The (*, *,
RP) damping route state machine enters into NoDamping state.
(*,*, RP) damping state machine actions:
Action A1: The damping function is enabled in the router. The
router is ready to record the times of (*,*, RP) route state
changed. If the PIM Join/Prune message is received and a new
(*,*, RP) item is required to create, the (*,*, RP) item is added
to damping pending list if there is no item for that (*,*, RP) and
the state is Join, and the flap-count should plus one. If the PIM
Join/Prune message is received and a (*,*, RP) item is required to
prune from the (*,*, RP) table, the (*,*, RP) item is added to
damping pending list if there is no item for that (*,*, RP) and
Hu, et al. Expires January 6, 2016 [Page 6]
Internet-Draft PIM Route Flap Damping July 2015
the state is Prune, and the flap-count should plus one. The half-
life-timer is started when the (*,*, RP) item is added to the
damping pending list.
The cycle half-life-timer is running when the damping pending (*,
*, RP) is in NoDamping state. If half-life-timer is expired, the
flap-count is reduced by half.
If the flap-count is reduced to zero, (*, *, RP) route should be
recovery based on the state in the damping list. If the state of
(*, *, RP) in the damping pending list is Join, the (*, *, RP)
route will be added to the multicast routing table. If the
damping (*, *, RP) route state in damping list is prune, the (*,
*, RP) route will be deleted from the multicast routing table if
the (*, *, RP) route is existed in. The damping pending (*, *,
RP) is deleted from the damping pending list.
Action A2: The damping function is disabled in the router. The
state machine enters Idle state. The half-life-timer is stopping
if it runs. The flap-count is reset and stop counting the times
of (*,*, RP) route state change.
Action A3: The PIM (*,*, RP) route state is suppressed and moved
from the damping pending list to damping list, and the cycle half-
life-timer for that (*,*,RP) route is started. The maximum
holding timer is started if it doesn't run.
Action A4: The suppressed item is reused again. If the damping
(*,*, RP) route state in damping list is join, the (*,*, RP) route
will be added to the multicast routing table. If the damping
(*,*, RP) route state in damping list is prune, the (*,*, RP)
route will be deleted from the multicast routing table if the
(*,*, RP) route is existed in. The damping (*,*, RP) route is
deleted from the damping list. The flap-count is reset and stop
counting the times of (*, *, RP) damping route state change. The
cycle half-life-timer and maximum-hold-timer are stopped.
Action A5: The maximum-hold-timer is expired. The (*,*, RP) route
state item in Damping state is reused. If the damping (*,*, RP)
route state in damping list is join, the (*,*, RP) route will be
added to the multicast routing table. If the damping (*,*, RP)
route state in damping list is prune, the (*,*, RP) route will be
deleted from the multicast routing table if the (*,*, RP) route is
existed in. The reuse timer and maximum-hold-timer are stopped if
they run. The damping (*,*, RP) route is deleted from the damping
list. The flap-count is reset and stop counting the times of (*,
*, RP) damping route state changed. The cycle half-life-timer and
maximum-hold-timer are stopped.
Hu, et al. Expires January 6, 2016 [Page 7]
Internet-Draft PIM Route Flap Damping July 2015
4.2. PIM (*, G) Join/Prune Message Damping
The (*, G) Damping state is shown in figure 2, there are three
states:
Idle
The damping function isn't enabled yet in this router
Damping
The (*, G) state is damped in this router. The (*, G) damping
route is in damping list.
NoDamping
The (*, G) state is not damped in this router. The (*, G)
damping route is in damping pending list.
The following events can change the (*, G) Join/Prune message damping
state:
E1: damping function is enabled in the router.
E2: damping disable is disabled in the router.
E3: The flap-count is above the damping-threshold.
E4: The flap-count is below the damping reuse threshold
E5: maximum-hold-timer is expired.
(*,G)damping state machine
+------+ E1 +----------+
| Idle |---------------------------- | NoDamping|
+------+ -------------------------- +----------+
^ E2 ^ |
| | |
| | |
E2 | E4 or E5 | |
| | |
| | | E3
| +-------+ | |
+-----------------|Damping|---------+ |
+-------+ -----------+
Figure 2
(*, G) state machine for triggered messages in tabular form:
Hu, et al. Expires January 6, 2016 [Page 8]
Internet-Draft PIM Route Flap Damping July 2015
| Event | Idle | Damping | NoDamping |
+-------+---------------+----------------+----------------+
| E1 | ->NoDamping | N/A | N/A |
| | [Action A1] | | |
+-----------------------+----------------+----------------+
| E2 | N/A | -> Idle | -> Idle |
| | | [Action A2] | [Action A2] |
+-----------------------+----------------+----------------+
| | | | -> Damping |
| E3 | N/A | N/A | [Action A3] |
+-----------------------+----------------+----------------+
| E4 | N/A | -> NoDamping | N/A |
| | | [Action A4] | |
+-----------------------+----------------+----------------+
| E5 | N/A | -> NoDamping | N/A |
| | | [Action A5] | |
+-----------------------+----------------+----------------+
Transitions from Idle state
When the (*, G) damping state machine is in Idle state, the
following events may trigger transitions:
E1:The damping function is enabled in this router. The (*,
G) damping state machine enters into NoDamping state
Transitions from NoDamping State
When the (*, G) damping state machine is in NoDamping state,
the following events may trigger transitions:
E3: The flap-count is used to count the changes of (*, G)
route. If the (*, G) item is in Join state and the new
Join/Prune message received indicates that the route should
be pruned, the flap-count should record the change, and vice
versa, if the (*, G) route is in delete state and new Join/
Prune message received indicates that the route should be
created, the flap-count also records it. If the flap-count
is above the damping-threshold, event E3 is triggered, the
state machine enters into damping state.
Transitions from NoDamping State
When the (*, G) damping state machine is in damping state, the
following events may trigger transitions:
Hu, et al. Expires January 6, 2016 [Page 9]
Internet-Draft PIM Route Flap Damping July 2015
E2: The damping function is disabled in this router. The
(*, G) damping state machine enters into Idle state.
E4: The flap-count is below the damping reuse threshold, the
item in damping list is reused, and the (*, G) damping route
state machine enters into NoDamping state.
E5: The maximum-hold-timer is expired. The PIM (*, G) route
item in Damping state is reused no matter how unstable it
has been prior to this period of stability. The
(*,G)damping route state machine enters into NoDamping
state.
(*, G) damping state machine actions:
Action A1: The damping function is enabled in the router. The
router is ready to record the times of (*, G) route state change.
If the PIM Join/Prune message is received and a new (*, G) item is
required to create, the (*, G) item is added to damping pending
list if there is no item for that (*, G) and the state is Join,
and the flap-count should record the change. If the PIM Join/
Prune message is received and a (*, G) item is required to prune
from the (*, G) table, the (*, G) item is added to damping pending
list if there is no item for that (*, G) and the state is Prune,
and the flap-count should record the change. The cycle half-life-
timer is started when the (*, G) item is added to the damping
pending list.
The cycle half-life-timer is running when the (*, G) is in
NoDamping state. If half-life-timer is expired, the flap-count is
reduced by half.
If flap-count is reduced to zero, (*, G) route should be recovery
based on the state in the damping list. If the state of (*, G) in
the damping pending list is Join, the (*, G) route will be added
to the multicast routing table. If the damping (*, G) route state
in damping list is prune, the (*, G) route will be deleted from
the multicast routing table if the (*, G) route is existed in.
The damping pending (*, G) is deleted from the damping pending
list.
Action A2: The damping function is disabled in the router. The
state machine enters Idle state. The half-life-timer is stopping
if it runs. The flap-count is reset and stop counting the times
of (*, G) route state flapping.
Action A3: The PIM (*, G) route state is suppressed and moved from
the damping pending list to damping list, and the cycle half-life-
Hu, et al. Expires January 6, 2016 [Page 10]
Internet-Draft PIM Route Flap Damping July 2015
timer for that (*,G) route is started. The maximum holding timer
is started if it doesn't run.
Action A4: The suppressed item is reused again. If the damping
(*, G) route state in damping list is join, the (*, G) route will
be added to the multicast routing table. If the damping (*, G)
route state in damping list is prune, the (*, G) route will be
deleted from the multicast routing table if the (*, G) route is
existed in. The damping (*, G) route is deleted from the damping
list. The flap-count is reset and stop counting the times of (*,
G) damping route state changed. The cycle half-life-timer and
maximum-hold-timer are stopped.
Action A5: The maximum-hold-timer is expired. The (*, G) route
state item in damping state is reused. If the damping (*, G)
route state in damping list is join, the (*, G) route will be
added to the multicast routing table. If the damping (*, G) route
state in damping list is prune, the (*, G) route will be deleted
from the multicast routing table if the (*, G) route is existed
in. The reuse timer and maximum-hold-timer are stopped if they
run. The (*, G) damping route is deleted from the damping list.
The flap-count is reset and stop counting the times of (*, G)
damping route state changed. The cycle half-life-timer and
maximum-hold-timer are stopped.
4.3. PIM (S, G) Join/Prune Message Damping
The (S, G) damping state is shown in figure 3, there are three
states:
Idle
The damping function isn't enabled yet in this router
Damping
The (S, G) state is damped in this router. The(S, G) damping
route is in damping list.
NoDamping
The (S, G) state is not damped in this router. The(S,
G)damping route is in damping pending list.
The following events can change the (S, G) Join/Prune message damping
state:
E1: damping function is enabled in the router.
E2: damping disable is disabled in the router.
Hu, et al. Expires January 6, 2016 [Page 11]
Internet-Draft PIM Route Flap Damping July 2015
E3: the flap-count is above the damping-threshold.
E4: the flap-count is below the damping reuse threshold.
E5: maximum-hold-timer is expired.
(S,G)damping state machine
+------+ E1 +----------+
| Idle |---------------------------- | NoDamping|
+------+ -------------------------- +----------+
^ E2 ^ |
| | |
| | |
E2 | E4 or E5 | |
| | |
| | | E3
| +-------+ | |
+-----------------|Damping|---------+ |
+-------+ -----------+
Figure 3
(S, G) state machine for triggered messages in tabular form:
| Event | Idle | Damping | NoDamping |
+-------+---------------+----------------+----------------+
| E1 | ->NoDamping | N/A | N/A |
| | [Action A1] | | |
+-----------------------+----------------+----------------+
| E2 | N/A | -> Idle | -> Idle |
| | | [Action A2] | [Action A2] |
+-----------------------+----------------+----------------+
| | | | -> Damping |
| E3 | N/A | N/A | [Action A3] |
+-----------------------+----------------+----------------+
| E4 | N/A | -> NoDamping | N/A |
| | | [Action A4] | |
+-----------------------+----------------+----------------+
| E5 | N/A | -> NoDamping | N/A |
| | | [Action A5] | |
+-----------------------+----------------+----------------+
Transitions from Idle state
When the (S, G) damping state machine is in Idle state, the
following events may trigger transitions:
Hu, et al. Expires January 6, 2016 [Page 12]
Internet-Draft PIM Route Flap Damping July 2015
E1:The damping function is enabled in this router. The (S,
G) damping state machine enters into NoDamping state
Transitions from NoDamping State
When the (S, G) damping state machine is in NoDamping state,
the following events may trigger transitions:
E3: The flap-count is used to count the changes of (S, G)
route. If (S, G) item is in join state and new Join/Prune
message received indicates that the route should be pruned,
the flap-count should record the change, and vice versa, if
the (S, G) route is in delete state and new Join/Prune
message received indicates that the route should be created,
the flap-count also records it. If the flap-count is above
the damping-threshold, event E3 is triggered, the (S, G)
damping state machine enters into damping state.
Transitions from NoDamping State
When the (S, G) damping state machine is in damping state, the
following events may trigger transitions:
E2: The damping function is disabled in this router. The
(S, G) damping state machine enters into Idle state.
E4: The flap-count is below the damping reuse threshold, the
item in damping list is reused, and the (S, G) damping state
machine enters into NoDamping state.
E5: The maximum-hold-timer is expired. The PIM (S, G) route
item in Damping state is reused no matter how unstable it
has been prior to this period of stability. The (S, G)
damping state machine enters into NoDamping state.
(S, G) damping state machine actions:
Action A1: The damping function is enabled in the router. The
router is ready to record the times of (S, G) route state change.
If the PIM Join/Prune message is received and a new(S, G) item is
required to create, the (S, G) item is added to damping pending
list if there is no item for that (S, G) and the state is Join,
and the flap-count should record the change. If the PIM Join/
Prune message is received and a (S, G) item is required to prune
from the (S, G) table, the (S, G) item is added to damping pending
list if there is no item for that (S, G) and the state is Prune,
Hu, et al. Expires January 6, 2016 [Page 13]
Internet-Draft PIM Route Flap Damping July 2015
and the flap-count also record the change. The cycle half-life-
timer is started when the (S, G) item is added to the damping
pending list.
The cycle half-life-timer is running when the damping pending (S,
G) is in NoDamping state. If it is expired, the flap-count is
reduced by half.
If the flap-count is reduced to zero, (S, G) route should be
recovery based on the state in the damping list, that is, if the
state of (S, G) in the damping pending list is Join, the (S, G)
route will be added to the multicast routing table, otherwise, the
damping (S, G) route state in damping list is prune, the (S, G)
route state will be deleted from the multicast routing table if
the (S, G) route is existed in yet. The damping pending (S, G)
item is deleted from the damping pending list.
Action A2: The damping function is disabled in the router. The
state machine enters into Idle state. The half-life-timer is
stopping if it runs. The flap-count is reset and stop counting
the times of (S, G) route state changed.
Action A3: The PIM (S, G) route state is suppressed and moved from
the damping pending list to damping list, and the cycle half-life-
timer for that (S,G) route is started. The maximum holding Timer
is started if it doesn't run.
Action A4: The suppressed item is reused again. If the damping
(S, G) route state in damping list is Join, the (S, G) route will
be added to the multicast routing table. If the damping (S, G)
route state in damping list is Prune, the (S, G) route will be
deleted from the multicast routing table if the (S, G) route is
existed in. The damping(S, G) route is deleted from the damping
list. The flap-count is reset and stop counting the times of (S,
G) damping route state flapping. The cycle half-life-timer and
maximum-hold-timer are stopped.
Action A5: The maximum-hold-timer is expired. The (S, G) route
state item in Damping state is reused. If the damping (S, G)
route state in damping list is Join, the (S, G) route will be
added to the multicast routing table. If the damping (S, G) route
state in damping list is Prune, the (S, G) route will be deleted
from the multicast routing table if the (S, G) route is existed
in. maximum-hold-timer is stopped if they run. The damping(S, G)
route is deleted from the damping list. The flap-count is reset
and stop counting the times of (S, G) damping route state
flapping. The cycle half-life-timer and maximum-hold-timer are
stopped.
Hu, et al. Expires January 6, 2016 [Page 14]
Internet-Draft PIM Route Flap Damping July 2015
4.4. PIM (S, G, RPT) Join/Prune Message Damping
The (S, G, RPT) Damping state is shown in figure 4, there are three
states:
Idle
The damping function isn't enabled yet in this router.
Damping
The (S, G, RPT) state is damped in this router. The (S, G,
RPT) damping route is in damping list.
NoDamping
The (S, G, RPT) state is not damped in this router. The (S, G,
RPT) damping route is in damping pending list.
The following events can change the (S, G, RPT) Join/Prune message
damping state:
E1: damping function is enabled in the router.
E2: damping disable is disabled in the router.
E3: the flap-count is above the damping-threshold.
E4: the flap-count is below the damping reuse threshold.
E5: maximum-hold-timer is expired.
(S,G,RPT)damping state machine
+------+ E1 +----------+
| Idle |---------------------------- | NoDamping|
+------+ -------------------------- +----------+
^ E2 ^ |
| | |
| | |
E2 | E4 or E5 | |
| | |
| | | E3
| +-------+ | |
+-----------------|Damping|---------+ |
+-------+ -----------+
Figure 4
(S, G, RPT) state machine for triggered messages in tabular form:
Hu, et al. Expires January 6, 2016 [Page 15]
Internet-Draft PIM Route Flap Damping July 2015
| Event | Idle | Damping | NoDamping |
+-------+---------------+----------------+----------------+
| E1 | ->NoDamping | N/A | N/A |
| | [Action A1] | | |
+-----------------------+----------------+----------------+
| E2 | N/A | -> Idle | -> Idle |
| | | [Action A2] | [Action A2] |
+-----------------------+----------------+----------------+
| | | | -> Damping |
| E3 | N/A | N/A | [Action A3] |
+-----------------------+----------------+----------------+
| E4 | N/A | -> NoDamping | N/A |
| | | [Action A4] | |
+-----------------------+----------------+----------------+
| E5 | N/A | -> NoDamping | N/A |
| | | [Action A5] | |
+-----------------------+----------------+----------------+
Transitions from Idle state
When the (S, G, RPT) damping state machine is in Idle state,
the following events may trigger transitions:
E1:The damping function is enabled in this router. The (S,
G, RPT) damping state machine enters into NoDamping state
Transitions from NoDamping State
When the (S, G, RPT) damping state machine is in NoDamping
state, the following events may trigger transitions:
E3: The flap-count is used to count the changes of (S, G,
RPT) route. If the (S, G,RPT) item is in Join state and the
new Join/Prune message received indicates that the route
should be pruned, the flap-count should record the change,
and vice versa, if the (S, G, RPT) route is in delete state
and new Join/Prune message received indicates that the route
should be created, the flap-count also records it. If the
flap-count is above the damping-threshold, event E3 is
triggered, the state machine enters into damping state.
Transitions from NoDamping State
When the (S, G, RPT) damping state machine is in damping state,
the following events may trigger transitions:
Hu, et al. Expires January 6, 2016 [Page 16]
Internet-Draft PIM Route Flap Damping July 2015
E2: The damping function is disabled in this router. The
(S, G, RPT) damping state machine enters into Idle state.
E4: The flap-count is below the damping reuse threshold, the
item in damping list is reused, and the (S, G, RPT) damping
route state machine enters into NoDamping state.
E5: The maximum-hold-timer is expired. The PIM (S, G, RPT)
route item in Damping state is reused no matter how unstable
it has been prior to this period of stability. The (S,G,
RPT)damping route state machine enters into NoDamping state.
(S, G, RPT) damping state machine actions:
Action A1: The damping function is enabled in the router. The
router is ready to record the times of (S, G, RPT) route state
changed. If the PIM Join/Prune message is received and a new
(S,G,RPT) item is required to create, the (S,G,RPT) item is added
to damping pending list if there is no item for that (S,G,RPT) and
the state is Join, and the flap-count should plus one. If the PIM
Join/Prune message is received and a (S,G,RPT) item is required to
prune from the (S,G,RPT) table, the (S,G,RPT) item is added to
damping pending list if there is no item for that (S,G,RPT) and
the state is Prune, and the flap-count should plus one. The half-
life-timer is started when the (S, G, RPT) item is added to the
damping pending list.
The cycle half-life-timer is running when the damping pending (S,
G, RPT) is in NoDamping state. If half-life-timer is expired, the
flap-count is reduced by half.
If flap-count is reduced to zero, (S, G, RPT) route should be
recovery based on the state in the damping list. If the state of
(S, G, RPT) in the damping pending list is Join, the (S, G, RPT)
route will be added to the multicast routing table. If the
damping (S, G, RPT) route state in damping list is prune, the (S,
G, RPT) route will be deleted from the multicast routing table if
the (S, G, RPT) route is existed in. The damping pending (S, G,
RPT) is deleted from the damping pending list.
Action A2: The damping function is disabled in the router. The
state machine enters Idle state. The half-life-timer is stopping
if it runs. The flap-count is reset and stop counting the times
of (S, G, RPT) route state change.
Action A3: The PIM (S,G,RPT) route state is suppressed and moved
from the damping pending list to damping list, and the cycle half-
Hu, et al. Expires January 6, 2016 [Page 17]
Internet-Draft PIM Route Flap Damping July 2015
life-timer for that (S,G, RPT) route is started. The maximum
holding timer is started if it doesn't run.
Action A4: The suppressed item is reused again. If the damping
(S, G, RPT) route state in damping list is join, the (S, G, RPT)
route will be added to the multicast routing table. If the
damping (S, G, RPT) route state in damping list is prune, the (S,
G, RPT) route will be deleted from the multicast routing table if
the (S, G, RPT) route is existed in. The damping (S, G, RPT)
route is deleted from the damping list. The flap-count is reset
and stop counting the times of (S, G, RPT) damping route state
flapping. The cycle half-life-timer and maximum-hold-timer are
stopped.
Action A5: The maximum-hold-timer is expired. The (S, G, RPT)
route state item in Damping state is reused. If the damping (S,
G, RPT) route state in damping list is join, the (S, G, RPT) route
will be added to the multicast routing table. If the damping (S,
G, RPT) route state in damping list is prune, the (S, G, RPT)
route will be deleted from the multicast routing table if the (S,
G, RPT) route is existed in. There reuse timer and maximum-hold-
timer are stopped if they run. The damping(S, G, RPT) route is
deleted from the damping list. The flap-count is reset and stop
counting the times of (S, G, RPT) damping route state flapping.
The cycle half-life-timer and maximum-hold-timer are stopped.
5. Security Considerations
6. Acknowledgements
7. Normative References
[RFC2439] Villamizar, C., Chandra, R., and R. Govindan, "BGP Route
Flap Damping", RFC 2439, November 1998.
[RFC4601] Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas,
"Protocol Independent Multicast - Sparse Mode (PIM-SM):
Protocol Specification (Revised)", RFC 4601, August 2006.
Authors' Addresses
Hu, et al. Expires January 6, 2016 [Page 18]
Internet-Draft PIM Route Flap Damping July 2015
Fangwei Hu
ZTE Corporation
889 Bibo Road
Shanghai 201203
China
Phone: +86-21-68897637
Email: hu.fangwei@zte.com.cn
Sandy Zhang
ZTE Corporation
No.68 Zijinghua Rd.Yuhuatai District
Nanjing 210012
China
Email: zhang.zheng@zte.com.cn
BenChong Xu
ZTE Corporation
No.68 Zijinghua Rd.Yuhuatai District
Nanjing 210012
China
Email: xu.benchong@zte.com.cn
Hu, et al. Expires January 6, 2016 [Page 19]