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]