Internet DRAFT - draft-heitz-idr-diagnostic-attr

draft-heitz-idr-diagnostic-attr







IDR                                                             J. Heitz
Internet-Draft                                              P. Narasimha
Intended status: Standards Track                            S. Gulrajani
Expires: September 26, 2019                                        Cisco
                                                          March 25, 2019


                     BGP Diagnostic Path Attribute
                   draft-heitz-idr-diagnostic-attr-01

Abstract

   A BGP path attribute for the purpose of network diagnostics is
   described.  It is non-transitive, such that BGP speakers will not
   forward it by default.  It is structured as a list of elements.  An
   element begins with the BGP identifier and AS number of the speaker
   that appends the element and includes a list of TLVs.  Any speaker
   can add or remove an element to/from the list.  TLVs for a timestamp
   and for a checksum are described.

Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

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 26, 2019.

Copyright Notice

   Copyright (c) 2019 IETF Trust and the persons identified as the
   document authors.  All rights reserved.




Heitz, et al.          Expires September 26, 2019               [Page 1]

Internet-Draft          BGP Diagnostic Attribute              March 2019


   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (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.  Data Formats  . . . . . . . . . . . . . . . . . . . . . . . .   2
     2.1.  Checksum TLV  . . . . . . . . . . . . . . . . . . . . . .   3
     2.2.  Timestamp TLV . . . . . . . . . . . . . . . . . . . . . .   4
   3.  Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . .   5
   4.  Operational Considerations  . . . . . . . . . . . . . . . . .   5
   5.  Error Handling  . . . . . . . . . . . . . . . . . . . . . . .   6
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   6
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
   8.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   7
   9.  Normative References  . . . . . . . . . . . . . . . . . . . .   7
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   8

1.  Introduction

   A BGP path attribute for the purpose of network diagnostics is
   described.  It is non-transitive, such that BGP speakers that do not
   recognize the attribute will not propagate it by default.  Even
   speakers that do recognize the attribute MUST NOT propagate it by
   default.  A speaker MAY propagate the attribute if it is configured
   to do so and MAY add it's own information as it does so.  The
   attribute is structured as a list of elements.  An element begins
   with the BGP identifier and AS number of the speaker that appends the
   element and includes a list of TLVs.  Any speaker can append or
   remove an element to/from the list.  TLVs for a timestamp and for a
   checksum are described.  The diagnostic attribute may be sent in a
   withdraw message.

2.  Data Formats

   The BGP diagnostic consists of a series of elements, each of which is
   formatted as follows.







Heitz, et al.          Expires September 26, 2019               [Page 2]

Internet-Draft          BGP Diagnostic Attribute              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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              ASN                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         BGP Identfifier                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              Length           |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
   |                                                               |
   +                              TLVs                             +
   :                                                               :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The fields are as follows:

      ASN             - 4 octet Autonomous System Number of the speaker
                        that appended this element.

      BGP Identfifier - BGP Identifier of the speaker that appended this
                        element.

      Length          - The number of octets comprising the TLVs of this
                        element.  If there were no TLVs included, this
                        length would be 0.

      TLVs            - Any number of TLVs as further described.  Each
                        TLV is optional.  Each TLV comprises 2 octets of
                        Type, then 2 octets specifying the number of
                        octets in the value, then the octets of the
                        value.

2.1.  Checksum TLV

   A checksum of the BGP message, including the marker field.  The
   checksum is only valid between the sending and receiving speaker.
   Since a receiving speaker may propagate an update, it will likely
   change the set of attributes or their order in its own update
   message, thus making the checksum useless in the propagated update.
   A BGP speaker MAY remove the checksum TLV from a propagated
   Diagnostic Path Attribute.










Heitz, et al.          Expires September 26, 2019               [Page 3]

Internet-Draft          BGP Diagnostic Attribute              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 = 1             |        Length = 6             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       Magic = 0xABCD          |           Offset              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Checksum            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The fields are as follows:

      Type       - 1.

      Length     - 6.

      Magic      - The value 0xABCD.  This helps to diagnose corruption
                   when looking at a hexdump.

      Offset     - The number of octets from the start of the UPDATE
                   message (start of the marker) to the start of this
                   TLV.  This can help to identify corruption due to
                   misaligned segment reassembly.

      Checksum   - The 16 bit checksum computed according to [RFC1071].

2.2.  Timestamp TLV

   The time at which the indicated speaker processed the indicated set
   of NLRI in the UPDATE message.  There are several stages of
   processing for each NLRI, each of which may be timestamped.  These
   stages vary widely between implementations.  Therefore, the type code
   used for each stage is implementation dependent.  One stage is
   universal.  That is the stage when BGP hands the UPDATE message to
   TCP for transmission.  The Type code for the timestamp for that stage
   is 256.  The accuracy of the timestamp depends upon the diagnostic
   application that requires it and is out of scope of this document.
   The timestamp has enough bits to describe a time point within a
   period of 136 years.  As time passes, the timestamp will simply wrap
   from one period to the next.  For example, there exist some time
   points in the year 1900 and the year 2036 with identical timestamps.
   The determination of the period in which a timestamp occurs is out of
   scope of this document.








Heitz, et al.          Expires September 26, 2019               [Page 4]

Internet-Draft          BGP Diagnostic Attribute              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              |        Length = 8             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            Seconds                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            Fraction                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The fields are as follows:

      Type       - 256: The time when BGP hands the UPDATE message off
                   to TCP.

                 - 257 - 511: Timestamps for any other stages of
                   processing within BGP.  The actual values and stages
                   are implementation dependent.

      Length     - 8.

      Seconds    - The number of Seconds since 0 h 1 January 1900 UTC as
                   further described in Section 6 of [RFC5905].

      Fraction   - A fraction of the above seconds also described in
                   Section 6 of [RFC5905].

3.  Usage

   The Checksum TLV is useful to narrow down a source of corruption of
   UPDATE messages in each of the software and hardware layers between
   the actual BGP processes.

   Because the Diagnostic Attribute contains a list of speakers that
   propagated an UPDATE and the attribute can be attached to a withdraw
   message, it can assist in the diagnosis of route oscillations.

   The timestamp TLV is used to narrow down delays in UPDATE processing
   between BGP speakers and between the various stages of processing
   within a BGP speaker.

4.  Operational Considerations

   As with any new BGP attribute, if it is propagated, NLRI packing into
   BGP UPDATE messages may be affected.  This needs to be taken into
   consideration when using the Timestamp TLV to measure bulk update
   message timing.




Heitz, et al.          Expires September 26, 2019               [Page 5]

Internet-Draft          BGP Diagnostic Attribute              March 2019


   The Diagnostic Path Attribute MAY be sent in an UPDATE message that
   does not contain an NLRI field [RFC4271] or an MP_REACH_NLRI Path
   Attribute [RFC4760].  When carried in such a message, it is unlikely
   to be propagated, although it is possible.

   If the addition or extension of the Diagnostic Path Attribute would
   cause the UPDATE message length to be exceeded, then the attribute
   SHOULD NOT be added or extended.

   If the timestamps among participating speakers are not well
   synchronized, then the timestamps added by each speaker may appear
   out of order.  In any case, the order in which elements are added to
   the Diagnostic Attribute can always be determined, because each
   speaker appends its element to the attribute.

   The experimental TLV types may clash.  That means that multiple
   vendors may use the same expreimental TLV type code for different
   purposes unbeknown to each other.  To reduce the chance of TLV type
   code clashes, the type code for an experimental TLV SHOULD be
   configurable on the speaker.  Because the propagation of the
   Diagnostic Attribute must be configured on each speaker, it is
   unlikely that two uncoordinated experiments will interfere with each
   other.

5.  Error Handling

   A checksum error SHALL NOT be treated as a protocol error.  The
   response is implementation dependent.

   A TLV length error SHALL be treated as attribute-discard according to
   [RFC7606].

   An unrecognized TLV MUST not be treated as a protocol error.

6.  Security Considerations

   This attribute is not forwarded by default.  Therefore, it should
   cause no unexpected ill effects.

7.  IANA Considerations

   IANA is requested to assign a BGP path attribute value for the BGP
   Diagnostic Path Attribute.

   IANA is requested to create and maintain a registry for the TLV
   types.  The allocation policies as per [RFC8126] are stated for the
   range of values.




Heitz, et al.          Expires September 26, 2019               [Page 6]

Internet-Draft          BGP Diagnostic Attribute              March 2019


         Range        Allocation Policy
         -----------  ------------------------------
             0-32767  First Come First Served
         32768-65535  Experimental

         Value      Description                     Reference
         ---------  ------------------------------  ---------
         0          Reserved                        This RFC
         1          Checksum                        This RFC
         256 - 511  Timestamp                       This RFC

8.  Acknowledgements

   The authors would like to thank Shyam Sethuram and Bruno Decraene for
   suggestions that have been added to the document.

9.  Normative References

   [RFC1071]  Braden, R., Borman, D., and C. Partridge, "Computing the
              Internet checksum", RFC 1071, DOI 10.17487/RFC1071,
              September 1988, <https://www.rfc-editor.org/info/rfc1071>.

   [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>.

   [RFC4271]  Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A
              Border Gateway Protocol 4 (BGP-4)", RFC 4271,
              DOI 10.17487/RFC4271, January 2006,
              <https://www.rfc-editor.org/info/rfc4271>.

   [RFC4760]  Bates, T., Chandra, R., Katz, D., and Y. Rekhter,
              "Multiprotocol Extensions for BGP-4", RFC 4760,
              DOI 10.17487/RFC4760, January 2007,
              <https://www.rfc-editor.org/info/rfc4760>.

   [RFC5905]  Mills, D., Martin, J., Ed., Burbank, J., and W. Kasch,
              "Network Time Protocol Version 4: Protocol and Algorithms
              Specification", RFC 5905, DOI 10.17487/RFC5905, June 2010,
              <https://www.rfc-editor.org/info/rfc5905>.

   [RFC7606]  Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K.
              Patel, "Revised Error Handling for BGP UPDATE Messages",
              RFC 7606, DOI 10.17487/RFC7606, August 2015,
              <https://www.rfc-editor.org/info/rfc7606>.





Heitz, et al.          Expires September 26, 2019               [Page 7]

Internet-Draft          BGP Diagnostic Attribute              March 2019


   [RFC8126]  Cotton, M., Leiba, B., and T. Narten, "Guidelines for
              Writing an IANA Considerations Section in RFCs", BCP 26,
              RFC 8126, DOI 10.17487/RFC8126, June 2017,
              <https://www.rfc-editor.org/info/rfc8126>.

Authors' Addresses

   Jakob Heitz
   Cisco
   170 West Tasman Drive
   San Jose, CA, CA  95134
   USA

   Email: jheitz@cisco.com


   Prasad S. Narasimha
   Cisco
   170 West Tasman Drive
   San Jose, CA, CA  95134
   USA

   Email: snprasad@cisco.com


   Sameer Gulrajani
   Cisco
   170 West Tasman Drive
   San Jose, CA, CA  95134
   USA

   Email: sameerg@cisco.com



















Heitz, et al.          Expires September 26, 2019               [Page 8]