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]