Internet DRAFT - draft-venaas-pim-port-pfm

draft-venaas-pim-port-pfm







Network Working Group                                          S. Venaas
Internet-Draft                                                 B. Ganesh
Intended status: Experimental                        K. Thiruvenkatasamy
Expires: September 12, 2019                          R. Chokkanathapuram
                                                     Cisco Systems, Inc.
                                                          March 11, 2019


             PIM Flooding Protocol over Reliable Transport
                      draft-venaas-pim-port-pfm-00

Abstract

   The PIM Flooding Protocol (PFM) defined in RFC8364 relies on sending
   periodic updates as it does not provide for any reliability.  If a
   message is lost, the information will be provided in the next
   periodic update.

   This document extends the Reliable Transport Mechanism for PIM in
   RFC6559 to allow for sending PFM messages.  This significantly
   reduces the PFM signaling by not requiring frequent periodic updates,
   and it provides for retransmission, allowing for quick recovery when
   an IP packet is dropped.

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 https://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 September 12, 2019.

Copyright Notice

   Copyright (c) 2019 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



Venaas, et al.         Expires September 12, 2019               [Page 1]

Internet-Draft                PIM PORT PFM                    March 2019


   (https://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.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Conventions used in this document . . . . . . . . . . . . . .   3
   3.  Protocol specification  . . . . . . . . . . . . . . . . . . .   3
   4.  PFM over PORT message definitions . . . . . . . . . . . . . .   5
     4.1.  PORT PFM Update . . . . . . . . . . . . . . . . . . . . .   5
     4.2.  PORT PFM Request  . . . . . . . . . . . . . . . . . . . .   7
     4.3.  PORT PFM Update Option  . . . . . . . . . . . . . . . . .   8
     4.4.  PORT PFM Request Option . . . . . . . . . . . . . . . . .   8
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   9
   6.  IANA considerations . . . . . . . . . . . . . . . . . . . . .   9
   7.  Normative References  . . . . . . . . . . . . . . . . . . . .   9
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  10

1.  Introduction

   The PIM Flooding Protocol (PFM) defined in [RFC8364] relies on
   sending periodic updates as it does not provide for any reliability.
   If a message is lost, the information will be provided in the next
   periodic update.  With PFM, a router will typically originate a full
   update every 60 seconds.  This ensures that in case of packet drops,
   one usually will recover in 60 seconds.  There is a trade-off between
   the number of updates and the recovery time.

   This document extends the Reliable Transport Mechanism for PIM in
   [RFC6559] to allow for sending PFM messages.  We will refer to it as
   PORT (PIM Over Reliable Transport).  The use of PORT significantly
   reduces the PFM signaling by not requiring frequent periodic updates,
   and it provides for retransmission, allowing for quick recovery when
   an IP packet is dropped.  There will still be some full updates, but
   they can be sent much more rarely.  If there is a packet drop, the
   reliable transport (TCP/SCTP) will ensure retransmission.

   The PORT sessions are established as specified in [RFC6559] between
   PIM neighbors.  The sessions may be used to send other PORT messages,
   or they can be used only for PFM.  Unless all the neighbors support
   PFM over PORT, regular PFM is used.  How to signal support and how a
   router relays a PFM over PORT message as regular PFM and vice versa
   will be discussed in a later revision.



Venaas, et al.         Expires September 12, 2019               [Page 2]

Internet-Draft                PIM PORT PFM                    March 2019


2.  Conventions used in this document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

3.  Protocol specification

   PFM messages are sent over PORT by sending PORT PFM Update messages.
   They contain a PFM message as defined in [RFC8364].  They also
   contain a Full ID and a Delta ID that together specifies an ID for
   the update.  Some updates are full updates, they contain all the
   information an originator is announcing.  This would be similar to
   the periodic updates in regular PFM.  Full updates over PORT are sent
   after some a configurable number of deltas have been sent, or
   whenever information needs to be withdrawn.  Delta updates are used
   for triggered updates, similar to triggered updates in regular PFM.
   Each time there is some change a delta update can be triggered.

   The Full ID is an unsigned 48 bit value and it is assumed that it is
   always increasing.  That is, any Full Update MUST always have a Full
   ID larger than any previous updates ever sent using the same
   Originator address.  This MUST also be preserved if the router is
   reloaded.  For the protocol to work, it may also be necessary to
   ensure this if an address used as an originator address is moved to a
   different router.  It is RECOMMENDED that implementations use the
   number of seconds since 0h UTC on 1 January 1900 as the ID value.
   This allows for this protocol to be used for about four million years
   from the time of publication of this document.  If for any reason the
   clock on a router is adjusted to a value back in time, an
   implementation would have to ensure that values are still increasing.
   Since Full Updates do not need to be sent every second, one should in
   this case be able to catch up.

   The first time a router originates a PFM message, it sends a Full
   update, even though it likely is triggered by some event.  Full
   updates always have the Delta ID set to zero.  After that it may send
   several Delta updates.  For each Delta update, the Delta ID is
   incremented, while the Full ID remains the same.  After some time it
   may decide to send a new full update.  The Full ID in the full update
   MUST be larger than the Full ID in the previous update, and Delta ID
   is reset to zero.  A Full update always has Delta ID zero, and a
   Delta update always has a non-zero Delta ID.

   When a router receives an update it performs RPF check as in regular
   PFM, boundary processing as in regular PFM.  For each interface where



Venaas, et al.         Expires September 12, 2019               [Page 3]

Internet-Draft                PIM PORT PFM                    March 2019


   the update would have been forwarded in regular PFM, it will be sent
   over PORT to all PFM PORT neighbors on the interface.  If there are
   any neighbors on the interface not supporting PFM PORT it MAY revert
   to sending unreliable PFM messages.

   When a router receives a Full update it will remove any stored
   information from the originator and store the information in the new
   update.  When it receives a Delta update it stores the update and
   keeps all previous information.

   Due to routers being restarted, PORT connections going down etc.,
   some routers MAY have missed some updates, potentially not having
   received any updates when restarting.  In order to receive the most
   recent data from a neighbor it sends a PORT PFM Request message.  For
   each originator the router has stored information from, it will
   include an option indicating the Full and Delta IDs of the last
   message received from that originator.  A router receiving the
   Request compares the IDs of the specified originators with the latest
   data it has for these originators.  If it has a more recent full
   update, it will first send it to the neighbor.  Next, if it has more
   recent delta updates, it will send all the delta updates in the order
   they were received.  This means that the requesting router receives
   the messages in order.  It will first get a full update if a more
   recent version exists.  The ID of this update may be much larger than
   the previously seen ID.  The first Delta update received, if any,
   will have ID one if a Full update was received, or one larger than
   the Delta ID in the request, if not.  If multiple Delta updates are
   received, the Delta ID will increment by one for each update.  If the
   router has stored information for any originators not included in the
   request message, it will also send this information.  It will first
   send the stored Full update, and then the Delta updates.  As
   discussed above, the Delta updates MUST be sent in the order they
   were received, first sending update one, then update two, and so
   forth.

   The Delta ID is an unsigned 16 bits value.  It never wraps around.  A
   router MUST send a new full update if the Delta ID value is reaching
   its maximum value.  It is RECOMMENDED having a configurable limit for
   how many Delta updates can be sent before sending a new Full update.
   Sending Full updates often is in some ways wasteful, but it limits
   how many deltas routers need to store, and they are also used to
   remove information that no longer is needed.

   When a router starts up, it is RECOMMENDED that before it originates
   any messages, it sends a PORT PFM Request message to receive any
   updates that neighbors may have stored for the originator address it
   would use.  It could simply not include an option with the originator
   address it would use, and receive any information neighbors may have,



Venaas, et al.         Expires September 12, 2019               [Page 4]

Internet-Draft                PIM PORT PFM                    March 2019


   or it could could include an option, but with the Full ID set to a
   value smaller than the Full ID it would use for the next Full Update.
   E.g., if the ID is based on the number of seconds since the epoch, it
   could send a request based on the current time.  It would then
   normally get no updates from the neighbors with its own ID.  If it
   does, it is RECOMMENDED to log an error, and ensure that the Full IDs
   of the next future Full Updates are larger than what was received.

   In order to handle extra ordinary cases where a router has originated
   messages with an erroneously large Full ID, it is RECOMMENDED that
   implementations provides a way for an administrator to clear the
   stored PFM state on a router, as well as a way to trigger sending of
   a Full Update on an originator.  This means that as a last resort, an
   administrator could clear the state for an originator on all the
   routers, and optionally afterwards trigger a full update by the
   originator.

4.  PFM over PORT message definitions

   We define a new PORT message for sending a PFM message.  This
   consists of an update version and a new PORT option containing a PFM
   message as defined in [RFC8364].  We also define a new PORT message
   for requesting a PFM update from a neighbor.  This contains the
   latest update version that the router has from each originator and
   requests the neighbor to transmit any information that it is missing.

4.1.  PORT PFM Update
























Venaas, et al.         Expires September 12, 2019               [Page 5]

Internet-Draft                PIM PORT PFM                    March 2019


        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |          Type = TBD1          |        Message Length         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                            Reserved                           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                           Interface                           |
       |                               ID                              |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                           Full-update                         |
       |                               +-------------------------------|
       |              ID               |       Delta-update ID         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |    PORT Option Type           |      Option Value Length      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                             Value                             |
       |                               .                               |
       |                               .                               |
       |                               .                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       \                               .                               \
       /                               .                               /
       \                               .                               \
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |    PORT Option Type           |      Option Value Length      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                             Value                             |
       |                               .                               |
       |                               .                               |
       |                               .                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Type:   Type is TBD.

   Message Length:   Length in bytes for the value part of the Type/
      Length/Value encoding.  If no PORT Options are included, the
      length is 12.  If n PORT Options with Option Value lengths L1, L2,
      ..., Ln are included, the message length is 12 + 4*n + L1 + L2 +
      ... + Ln.

   Reserved:   Set to zero on transmission and ignored on receipt.

   Interface ID:   This MUST be the Interface ID of the Interface ID
      Hello Option contained in the PIM Hello messages that the PIM
      router is sending to the PIM neighbor.  It indicates to the PIM
      neighbor what interface to associate the update with.  This is
      similar to how the Interface ID is used in [RFC6559].  The



Venaas, et al.         Expires September 12, 2019               [Page 6]

Internet-Draft                PIM PORT PFM                    March 2019


      Interface ID allows us to do connection sharing while still
      allowing the regular PFM RPF neighbor validation.

   Full-update ID:   If this is a full update, it is the ID of this
      update.  If this is a delta, then this is the ID of the last full
      update.  This is a 48 bit value.

   Delta-update ID:   If this is a delta update, this is the ID of the
      delta.  Note that the Full-update ID is also used for a delta.  If
      this is a full update, delta-update is set to 0.  This is a 16 bit
      value.

   PORT Options:   The general format is defined in [RFC6559] section
      5.3.  This message MUST contain exactly one PFM Update PORT
      option.  The PFM Update PORT option is defined below.  It MAY
      contain other options that are defined for use in a PORT PFM
      Update message.

4.2.  PORT PFM Request

        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |          Type = TBD2          |        Message Length         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                            Reserved                           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |    PORT Option Type           |      Option Value Length      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                             Value                             |
       |                               .                               |
       |                               .                               |
       |                               .                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       \                               .                               \
       /                               .                               /
       \                               .                               \
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |    PORT Option Type           |      Option Value Length      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                             Value                             |
       |                               .                               |
       |                               .                               |
       |                               .                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Type:   Type is TBD.




Venaas, et al.         Expires September 12, 2019               [Page 7]

Internet-Draft                PIM PORT PFM                    March 2019


   Message Length:   Length in bytes for the value part of the Type/
      Length/Value encoding.  If no PORT Options are included, the
      length is 12.  If n PORT Options with Option Value lengths L1, L2,
      ..., Ln are included, the message length is 12 + 4*n + L1 + L2 +
      ... + Ln.

   Reserved:   Set to zero on transmission and ignored on receipt.

   PORT Options:   The general format is defined in [RFC6559] section
      5.3.  This message MAY contain zero, one or multiple PFM Request
      PORT options.  The options indicate which versions the requesting
      router has from which originators; one option per originator.  No
      options, means that the requesting router wants a full update for
      all known originators.  The PFM Request PORT option is defined
      below.  It MAY contain other options that are defined for use in a
      PORT PFM Request message.

4.3.  PORT PFM Update Option

        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |    PORT Option Type = TBD3    |     Option Value Length       |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                           PFM Message                         |
       |                               .                               |
       |                               .                               |
       |                               .                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Type:   Type is TBD.

   Option Value Length:   The number of octets that make up the PFM
      Message.

   PFM Message:   A PFM Message as defined in [RFC8364].

4.4.  PORT PFM Request Option













Venaas, et al.         Expires September 12, 2019               [Page 8]

Internet-Draft                PIM PORT PFM                    March 2019


        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |    PORT Option Type = TBD4    |     Option Value Length       |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |            Originator Address (Encoded-Unicast format)        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                           Full-update                         |
       |                               +-------------------------------|
       |              ID               |       Delta-update ID         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Type:   Type is TBD.

   Option Value Length:   The length in octets of the originator address
      plus 6.

   Originator Address:   The address of an originator as defined in
      [RFC8364].

   Full-update ID:   The ID of the last full update that the router has
      stored.  It is requesting getting the most recent newer full
      update, if any exists.  Plus, any deltas after the last full
      update.

   Delta-update ID:   The ID of the last delta update that the router
      has stored.  It is requesting getting the most recent newer full
      update, using the Full-update ID, if it exists plus any deltas
      after that.  If there are no more recent full updates, then it is
      requesting any delta updates more recent than this ID.

5.  Security Considerations

   To be completed.  Largely similar to the considerations for PIM PORT.
   One may use TCP/SCTP authentication mechanisms.

6.  IANA considerations

   To be completed.  IANA would need to assign types for the messages
   and options defined.

7.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.




Venaas, et al.         Expires September 12, 2019               [Page 9]

Internet-Draft                PIM PORT PFM                    March 2019


   [RFC6559]  Farinacci, D., Wijnands, IJ., Venaas, S., and M.
              Napierala, "A Reliable Transport Mechanism for PIM",
              RFC 6559, DOI 10.17487/RFC6559, March 2012,
              <https://www.rfc-editor.org/info/rfc6559>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8364]  Wijnands, IJ., Venaas, S., Brig, M., and A. Jonasson, "PIM
              Flooding Mechanism (PFM) and Source Discovery (SD)",
              RFC 8364, DOI 10.17487/RFC8364, March 2018,
              <https://www.rfc-editor.org/info/rfc8364>.

Authors' Addresses

   Stig Venaas
   Cisco Systems, Inc.
   Tasman Drive
   San Jose  CA 95134
   USA

   Email: stig@cisco.com


   Balaji Ganesh
   Cisco Systems, Inc.
   Tasman Drive
   San Jose  CA 95134
   USA

   Email: balagane@cisco.com


   Kesavan Thiruvenkatasamy
   Cisco Systems, Inc.
   Tasman Drive
   San Jose  CA 95134
   USA

   Email: kethiruv@cisco.com










Venaas, et al.         Expires September 12, 2019              [Page 10]

Internet-Draft                PIM PORT PFM                    March 2019


   Ramakrishnan Chokkanathapuram
   Cisco Systems, Inc.
   Tasman Drive
   San Jose  CA 95134
   USA

   Email: ramaksun@cisco.com












































Venaas, et al.         Expires September 12, 2019              [Page 11]