RFC 8186

Support of the IEEE 1588 Timestamp Format in a Two-Way Active Measurement Protocol (TWAMP)

πŸ“… published June 2017, from ietf

πŸ“œ RFC 8186: Support of the IEEE 1588 Timestamp Format in a Two-Way Active Measurement Protocol (TWAMP) πŸŽ€

okay bestie, let's get into this one πŸ’…βœ¨ it's an Internet Standards Track doc (so it's official, not just vibes πŸ‘‘), published June 2017 by the IETF. The authors are G. Mirsky (ZTE Corp.) and I. Meilik (Broadcom) 🫢. It's category Standards Track and ISSN 2070-1721. It doesn't obsolete or update any other RFCs, so it's a fresh one 🌸.

This is part 1 of 2, so stay tuned, more coming πŸ¦‹.


0. Abstract ✨

okay so the big idea 🧚 this doc describes an OPTIONAL feature for active performance measurement protocols. it lets you use the Precision Time Protocol timestamp format from IEEE 1588v2 instead of the Network Time Protocol one that's currently used πŸ’–. it's giving upgrade energy πŸ”₯.

Status of This Memo 🌈

this is an Internet Standards Track document πŸ’…. it's a product of the IETF, it represents the consensus of the IETF community, got public review, and was approved by the IESG. if you want more info on Internet Standards, check Section 2 of RFC 7841 πŸŽ€. the current status, errata, and how to give feedback live at http://www.rfc-editor.org/info/rfc8186 πŸ’œ.

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

this doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as in effect on the date of publication. please actually read those, they describe your rights and restrictions πŸ™ˆ. code components pulled out of this doc must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License πŸ’….

Table of Contents 🧚

1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
  1.1.  Conventions Used in This Document . . . . . . . . . . . .   3
    1.1.1.  Terminology . . . . . . . . . . . . . . . . . . . . .   3
    1.1.2.  Requirements Language . . . . . . . . . . . . . . . .   3
2.  OWAMP and TWAMP Extensions  . . . . . . . . . . . . . . . . .   3
  2.1.  Timestamp Format Negotiation in OWAMP Connection Setup  .   4
  2.2.  Timestamp Format Negotiation in TWAMP Connection Setup  .   5
  2.3.  OWAMP-Test and TWAMP-Test Updates . . . . . . . . . . . .   5
    2.3.1.  Consideration for TWAMP Light Mode  . . . . . . . . .   6
3.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
4.  Security Considerations . . . . . . . . . . . . . . . . . . .   6
5.  Normative References  . . . . . . . . . . . . . . . . . . . .   7
Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .   7
Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   8

1. Introduction πŸ¦‹

okay so OWAMP [RFC4656] says only the NTP format [RFC5905] of a timestamp can be used in the OWAMP-Test protocol πŸ™ˆ. then TWAMP [RFC5357] took the OWAMP-Test packet format and extended it with a format for a reflected test packet ✨. both the sender's and reflector's packet timestamps are supposed to follow the 64-bit-long NTP format [RFC5905].

the thing is, NTP over the Internet usually gets clock accuracy somewhere between 5 ms and 100 ms 😭. recent surveys say 90% of devices hit better than 100 ms and 99% hit better than 1 sec. and here's the tea: NTP syncs clocks on the control plane, NOT the data plane πŸ’€. distributing the clock inside a node might use an independent NTP domain or interprocess communication in a multiprocessor distributed system. either way, those options get hit with extra queuing delays that hurt data-plane clock accuracy πŸ₯Ί.

PTP [IEEE.1588] has been gaining wide support since OWAMP and TWAMP were developed πŸ”₯. it uses on-path support and other mechanisms to hit sub-microsecond clock accuracy 🌟. PTP is now in multiple fast-forwarding engine implementations, so the accuracy PTP gives you is the accuracy of the clock in the data plane πŸ‘‘. so one big perk of this spec is the option to use a more accurate clock as the timestamp source for IP performance measurements πŸ’–. another perk is simpler data-plane hardware 🧚. to support OWAMP or TWAMP, test protocol timestamps have to be converted from PTP to NTP, and that eats resources (microcode or extra processing elements) that are always limited 😩. so this doc proposes optional extensions to the Control and Test protocols so they can use the IEEE 1588v2 timestamp format as an optional alternative to NTP πŸŽ€.

one of the goals here isn't just letting test session endpoints use a non-NTP timestamp format. it's also backwards compatibility with nodes that don't support this extension yet 🫢✨.

1.1. Conventions Used in This Document 🌸

1.1.1. Terminology πŸ’œ

  • NTP: Network Time Protocol
  • PTP: Precision Time Protocol
  • TWAMP: Two-Way Active Measurement Protocol
  • OWAMP: One-Way Active Measurement Protocol

1.1.2. Requirements Language πŸ”₯

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 πŸ™.

2. OWAMP and TWAMP Extensions 🧚

OWAMP connection establishment follows the procedure in Section 3.1 of [RFC4656], plus the extra TWAMP steps in Section 3.1 of [RFC5357] πŸ’…. in these procedures, the Modes field has been used to identify and pick specific communication capabilities. it's also been recognized and used as an extension mechanism [RFC6038] πŸ¦‹. the new feature needs one bit position so the Server and Control-Client can negotiate which timestamp format can be used in some or all test sessions invoked on this control connection πŸ’–.

the endpoint of the test session (Session-Sender and Session-Receiver for OWAMP, or Session-Reflector for TWAMP) that supports this extension MUST be able to interpret the NTP and PTPv2 timestamp formats ✨. if the endpoint doesn't support this extension, then the value of the PTPv2 Timestamp flag MUST be 0, because it sits in the Must Be Zero field πŸ™ˆ. and if the PTPv2 Timestamp flag is 0, the advertising node can use and interpret only the NTP timestamp format 🌸. implementations of OWAMP and/or TWAMP MAY provide a configuration knob to skip timestamp format negotiation and use locally configured values instead πŸŽ€.

the PTPv2 Timestamp flag usage is covered in the subsections below 🌈. for the assigned values and bit positions, see Section 3 πŸ‘‘.

2.1. Timestamp Format Negotiation in OWAMP Connection Setup πŸ’…

in OWAMP-Test [RFC4656], the Session-Receiver and/or Fetch-Client interpret the collected timestamps 🧚. so the Server uses the Modes field timestamp format to say which formats the Session-Receiver can interpret πŸ’–. the Control-Client looks at what the Server set for timestamp formats, then sets values in the Modes field of the Set-Up-Response message based on the formats the Session-Sender can use πŸ¦‹. the rules for setting timestamp flags in the Modes field of Server Greeting and Set-Up-Response messages, and for interpreting them, are:

  • if the Session-Receiver supports this extension, then the Server that sets up test sessions on its behalf MUST set the PTPv2 Timestamp flag to 1 in the Server Greeting message, per the requirement in Section 2 🫢. otherwise, the PTPv2 Timestamp flag will be set to 0 to say the Session-Receiver only interprets the NTP format 😭.
  • if the Control-Client gets a greeting message with the PTPv2 Timestamp flag set to 0, then the Session-Sender MUST use the NTP format for the timestamp in the test session, and the Control-Client SHOULD set the PTPv2 Timestamp flag to 0 in accordance with [RFC4656] 🌸. if the Session-Sender can't use NTP timestamps, then the Control-Client SHOULD close the TCP connection associated with the OWAMP-Control session πŸ’€.
  • if the Control-Client gets a greeting message with the PTPv2 Timestamp flag set to 1 and the Session-Sender can set the timestamp in PTPv2 format, then the Control-Client MUST set the PTPv2 Timestamp flag to 1 in the Modes field of the Set-Up-Response message, and the Session-Sender MUST use the PTPv2 timestamp format πŸ”₯.
  • if the Session-Sender doesn't support this extension and can only set the timestamp in NTP format, then the PTPv2 Timestamp flag in the Modes field of the Set-Up-Response message will be set to 0 as part of the Must Be Zero field, and the Session-Sender will use the NTP format πŸ‘‘.

if OWAMP-Control uses Fetch-Session commands, then picking one timestamp format or the other is a local decision for both the Session-Sender and Session-Receiver πŸŽ€.

2.2. Timestamp Format Negotiation in TWAMP Connection Setup 🌈

in TWAMP-Test [RFC5357], the Session-Sender interprets the collected timestamps 🧚. so in the Modes field, a Server advertises the timestamp formats the Session-Reflector can use in the TWAMP-Test message πŸ’œ. picking the timestamp format for the Session-Sender is a local decision πŸ¦‹. the Control-Client looks at the Modes field and sets timestamp flag values to show the format the Session-Reflector will use πŸ’–. the rules for setting and interpreting flag values are:

  • the Server MUST set the PTPv2 Timestamp flag value to 1 in its greeting message if the Session-Reflector can set the timestamp in PTPv2 format πŸ”₯. otherwise, the PTPv2 Timestamp flag MUST be set to 0 πŸ™ˆ.
  • if the PTPv2 Timestamp flag in the received Server Greeting message is 0, then the Session-Reflector doesn't support this extension and will use the NTP timestamp format 🌸. the Control-Client SHOULD set the PTPv2 Timestamp flag to 0 in the Set-Up-Response message in accordance with [RFC4656] πŸŽ€.
  • the Control-Client MUST set the PTPv2 Timestamp flag value to 1 in the Modes field of the Set-Up-Response message if the Server advertised that the Session-Reflector can use the PTPv2 format for timestamps πŸ‘‘. otherwise, the flag MUST be set to 0 πŸ’….
  • if the PTPv2 Timestamp flag in the Set-Up-Response message is 0, then the Session-Sender can only interpret the NTP timestamp format 😭. so the Session-Reflector MUST use the NTP timestamp format 🫢. if the Session-Reflector doesn't support the NTP format, then the Server MUST close the TCP connection associated with the TWAMP-Control session πŸ’€.

okay that's the first half bestie πŸ₯ΉπŸ’– part 2 is coming with the rest of section 2.3, the TWAMP Light Mode consideration, IANA, Security, and the references πŸ¦‹βœ¨

2.3. OWAMP-Test and TWAMP-Test Updates ✨

okay so bestie, here's the big update πŸ’… Participants in a test session need to say which timestamp format they're using πŸ¦‹ Right now the Z field in the Error Estimate from Section 4.1.2 of [RFC4656] does that job πŸŽ€ But this document levels up the Error Estimate so it can say the format of a collected timestamp, on top of the error and sync estimates πŸ”₯ It also changes what the Z bit field means (the one sitting between S and Scale) and calls it the Timestamp format πŸ’– The value MUST be set like this:

  • 0 - NTP 64-bit format of a timestamp.
  • 1 - PTPv2-truncated format of a timestamp.

Because of that Z field value, the Sender Error Estimate (in TWAMP) or Send Error Estimate (in OWAMP) and the Receive Error Estimate SHOULD NOT be ignored πŸ₯Ί They MUST be used when calculating delay and delay-variation metrics from collected timestamps πŸ’œ Not optional, periodt πŸ’€

2.3.1. Consideration for TWAMP Light Mode 🌸

this doc doesn't say how the Session-Sender and Session-Reflector in TWAMP Light mode get told which timestamp format to use πŸ™ˆ It's just assumed that something like configuration could tell them to use the format based on their capabilities and the rules in Section 2.2 🧚

3. IANA Considerations πŸ“

IANA registered a new PTPv2 Timestamp entry in the "TWAMP-Modes" registry [RFC5618] like this:

+------+-----------------------------+-----------+------------------+
| Bit  | Description                 | Semantics | Reference        |
| Pos  |                             |           |                  |
+------+-----------------------------+-----------+------------------+
| 9    | PTPv2 Timestamp Capability  | Section 2 | RFC 8186 (this   |
|      |                             |           | document)        |
+------+-----------------------------+-----------+------------------+

                     Table 1: New Timestamp Capability

4. Security Considerations πŸ”

Okay, serious moment 😭 Using a particular timestamp format in a test session doesn't seem to add any extra security threat for hosts talking OWAMP and/or TWAMP as defined in [RFC4656] and [RFC5357] 🫢 The security considerations for any active measurement of live networks still apply here too 🌈 Go read the Security Considerations sections in [RFC4656] and [RFC5357] and stay safe out there πŸ›‘οΈβœ¨

5. Normative References πŸ“š

[IEEE.1588]
           IEEE, "IEEE Standard for a Precision Clock Synchronization
           Protocol for Networked Measurement and Control Systems",
           IEEE Std 1588-2008, DOI 10.1109/IEEESTD.2008.4579760.

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

[RFC4656]  Shalunov, S., Teitelbaum, B., Karp, A., Boote, J., and M.
           Zekauskas, "A One-way Active Measurement Protocol
           (OWAMP)", RFC 4656, DOI 10.17487/RFC4656, September 2006,
           <http://www.rfc-editor.org/info/rfc4656>.

[RFC5357]  Hedayat, K., Krzanowski, R., Morton, A., Yum, K., and J.
           Babiarz, "A Two-Way Active Measurement Protocol (TWAMP)",
           RFC 5357, DOI 10.17487/RFC5357, October 2008,
           <http://www.rfc-editor.org/info/rfc5357>.

[RFC5618]  Morton, A. and K. Hedayat, "Mixed Security Mode for the
           Two-Way Active Measurement Protocol (TWAMP)", RFC 5618,
           DOI 10.17487/RFC5618, August 2009,
           <http://www.rfc-editor.org/info/rfc5618>.

[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,
           <http://www.rfc-editor.org/info/rfc5905>.

[RFC6038]  Morton, A. and L. Ciavattone, "Two-Way Active Measurement
           Protocol (TWAMP) Reflect Octets and Symmetrical Size
           Features", RFC 6038, DOI 10.17487/RFC6038, October 2010,
           <http://www.rfc-editor.org/info/rfc6038>.

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

Acknowledgements πŸ™Œ

the authors wanna thank Ramanathan Lakshmikanthan and Suchit Bansal for their insightful suggestions πŸ’– They also wanna thank David Allan for his thorough review and thoughtful comments πŸ‘‘

Authors' Addresses πŸ’Œ

Greg Mirsky ZTE Corp.

Email: gregimirsky@gmail.com

Israel Meilik Broadcom

Email: israel@broadcom.com

πŸ“¦ where this page comes from