Network Working Group                                          G. Mirsky
Internet-Draft                                                 ZTE Corp.
Intended status: Standards Track                                  G. Jun
Expires: July 8, September 2, 2018                               ZTE Corporation
                                                               H. Nydell
                                                       Accedian Networks
                                                         January 4,
                                                                R. Foote
                                                                   Nokia
                                                           March 1, 2018

               Simple Two-way Active Measurement Protocol
                        draft-ietf-ippm-stamp-00
                        draft-ietf-ippm-stamp-01

Abstract

   This document describes a Simple Two-way Active Measurement Protocol
   which enables measurement of both one-way and round-trip performance
   metrics like delay, delay variation and packet loss.

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 July 8, September 2, 2018.

Copyright Notice

   Copyright (c) 2018 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
   (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 . . . . . . . . . . . . . .   2   3
     2.1.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   2   3
     2.2.  Requirements Language . . . . . . . . . . . . . . . . . .   3
   3.  Softwarization of Performance Measurement . . . . . . . . . .   3
   4.  Theory of Operation . . . . . . . . . . . . . . . . . . . . .   3   4
     4.1.  Sender  Session-Sender Behavior and Packet Format . . . . . . . . . . . .   4
       4.1.1.  Sender  Session-Sender Packet Format in Unauthenticated Mode  . . . .    4
       4.1.2.  Sender  Session-Sender Packet Format in Authenticated and
               Encrypted Modes . . . . . . . . . . . . . . . . . . . . . . . .   6   7
     4.2.  Reflector  Session-Reflector Behavior and Packet Format  . . . . . . . . . .   7   8
       4.2.1.  Reflector  Session-Reflector Packet Format in Unauthenticated
               Mode  . . .   7
       4.2.2.  Reflector Packet Format in Authenticated and
               Encrypted Modes . . . . . . . . . . . . . . . . . . .   8
   5.  TLV Extensions to STAMP . . . . . . . . . . . . . . . . . . .   9
     5.1.  Extra Padding TLV . . . . . . . . . . . . . . . . . . . .  10
     5.2.  Location TLV  . . .
       4.2.2.  Session-Reflector Packet Format in Authenticated and
               Encrypted Modes . . . . . . . . . . . . . . . . . . .  10
     5.3.  Timestamp Information TLV . . . . . . . . . . . . . . . .  12
     5.4.  Class of Service TLV  . . . . . .
     4.3.  Interoperability with TWAMP Light . . . . . . . . . . . .  12
   6.
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  13
     6.1.  STAMP TLV Registry  . . . . . . . . . . . . . . . .  12
   6.  Security Considerations . . .  13
     6.2.  Synchronization Source Sub-registry . . . . . . . . . . .  14
     6.3.  Timestamp Method Sub-registry . . . . .  12
   7.  Acknowledgments . . . . . . . . .  14
     6.4.  CoS Operation Sub-registry . . . . . . . . . . . . . .  12
   8.  References  .  14
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  14
   8.  Acknowledgments . . . . .  13
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  14
   9.  Normative  13
     8.2.  Informative References  . . . . . . . . . . . . . . . . . . . .  14
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  15  14

1.  Introduction

2.  Conventions used

   Development and deployment of Two-Way Active Measurement Protocol
   (TWAMP) [RFC5357] and its extensions, e.g.  [RFC6038] that defined
   features such as Reflect Octets and Symmetrical Size for TWAMP,
   provided invaluable experience.  Several independent implementations
   exist, have been deployed and provide important operational
   performance measurements.  At the same time there has been noticeable
   interest in this using a simpler mechanism for active performance
   monitoring that can provide deterministic behaviour and inherit
   separation of control (vendor-specific configuration or
   orchestration) and test functions.  One of such is Performance
   Measurement from IP Edge to Customer Equipment using TWAMP Light from
   Broadband Forum ([BBF.TR-390]).  This document

2.1.  Terminology

   STAMP - defines active
   performance measurement test protocol, Simple Two-way Active
   Measurement Protocol

   NTP - Network Time Protocol

   PTP - Precision Time Protocol

2.2.  Requirements Language

   The (STAMP), that enables measurement of both one-
   way and round-trip performance metrics like delay, delay variation
   and packet loss.

2.  Conventions used in this document

2.1.  Terminology

   STAMP - Simple Two-way Active Measurement Protocol

   NTP - Network Time Protocol

   PTP - Precision Time Protocol

   HMAC Hashed Message Authentication Code

   OWAMP One-Way Active Measurement Protocol

   TWAMP Two-Way Active Measurement Protocol

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

3.  Softwarization of Performance Measurement

   Instance of a

   Figure 1 presents Simple Two-way Active Measurement Protocol (STAMP)
   session between a Sender
   Session-Sender and Session-Reflector with a Reflector controlled by communication
   between a Configuration Client as a manager measurement session.  The
   configuration and Configuration Servers
   as agents management of the configuration session that configures STAMP
   measurement between Sender Session-Sender, Session-
   Reflector and Reflector.  The Configuration Client
   also issues queries to obtain operational state information and/or
   measurement results. management of the STAMP sessions can be achieved
   through various means.  Command Line Interface, OSS/BSS using SNMP or
   SDN using Netconf/YANG are but a few examples.

         o----------------------------------------------------------o
         |                        Config client                      Configuration and                   |
         |                         Management                       |
         o----------------------------------------------------------o
                ||                                          ||
                ||             NETCONF/RESTCONF                                          ||
                ||                                          ||
      o-------------------o                       o-------------------o
      |   Config server   |                       |   Config server   |
      |                   |                       |                   |
      +-------------------+                       +-------------------+
     +----------------------+                +-------------------------+
     | STAMP Sender Session-Sender | <--- STAMP---> | STAMP Reflector Session-Reflector |
      +-------------------+                       +-------------------+
     +----------------------+                +-------------------------+

                      Figure 1: STAMP Reference Model

4.  Theory of Operation

   STAMP Sender Session-Sender transmits test packets toward STAMP Session-
   Reflector.  STAMP
   Reflector Session-Reflector receives Sender's Session-Sender's packet
   and acts according to the configuration and optional control
   information communicated in the
   Sender's Session-Sender's test packet.  STAMP
   defines two different test packet formats, one for packets
   transmitted by the STAMP-Sender STAMP-Session-Sender and one for packets
   transmitted by the STAMP-Reflector. STAMP-Session-Reflector.  STAMP supports three
   modes: unauthenticated, authenticated, and encrypted.
   Unauthenticated STAMP test packets are compatible on the wire with
   unauthenticated TWAMP-Test [RFC5357] packet formats.

   By default STAMP uses symmetrical packets, i.e. size of the packet
   transmitted by Reflector Session-Reflector equals to the size of the packet
   received by the Reflector. Session-Reflector.

4.1.  Sender  Session-Sender Behavior and Packet Format

4.1.1.  Sender  Session-Sender Packet Format in Unauthenticated Mode

   Because STAMP supports symmetrical test packets, STAMP Sender Session-Sender
   packet has minimum size of 44 octets in unauthenticated mode, see
   Figure 2, and 48 octets in authenticated or encrypted modes , see
   Figure 4.

   For unauthenticated mode:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                        Sequence Number                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                          Timestamp                            |
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |         Error Estimate        |                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
      |                                                               |
      |                                                               |
      |                         MBZ (27 octets)                       |
      |                                                               |
      |                                                               |
      |                                                               |
      +               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |               |          Server Octets        |               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               +
      |           Remaining Packet Padding (to be reflected)          |
      ~          (length in octets specified in command) Server Octets)        ~
      +                                               +-+-+-+-+-+-+-+-+
      |                                               |    Comp.MBZ   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |             Type              |           Length              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ~                            Value                              ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Figure 2: STAMP Sender Session-Sender test packet format in unauthenticated
                                   mode

   where fields are defined as the following:

   o  Sequence Number is four octets long field.  For each new session
      its value starts at zero and is incremented with each transmitted
      packet.

   o  Timestamp is eight octets long field.  STAMP node MUST support
      Network Time Protocol (NTP) version 4 64-bit timestamp format
      [RFC5905].  STAMP node MAY support IEEE 1588v2 Precision Time
      Protocol truncated 64-bit timestamp format [IEEE.1588.2008].

   o  Error Estimate is two octets long field with format displayed in
      Figure 3
            0                   1
            0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           |S|Z|   Scale   |   Multiplier  |
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Figure 3: Error Estimate Format

      where S, Scale and Multiplier fields are interpreted as they have
      been defined in section 4.1.2 [RFC4656]; and Z field - as has been
      defined in section 2.3 [RFC8186]:

      *  0 - NTP 64 bit format of a timestamp;

      *  1 - PTPv2 truncated format of a timestamp.

      The STAMP Session-Sender and Session-Reflector MAY use, not use,
      or set value of the Z field in accordance with the timestamp
      format in use.  This optional field is to enhance operations but
      local configuration or defaults could be used in its place.

   o  Must-be-Zero (MBZ) field in the sender session-sender unauthenticated
      packet is 27 octets long.  It MUST be all zeroed on transmission
      and ignored on receipt.

   o  Server Octets field is two octets long field.  It MUST follow the
      27 octets long MBZ field.  The Reflect Octets capability defined
      in [RFC6038].  The value in the Server Octets field equals to the
      number of octets the Reflector Session-Reflector is expected to copy back to
      the
      Sender Session-Sender starting with the Server Octets field.  Thus
      the minimal non-zero value for the Server Octets field is two and
      value of one is invalid.  If none of Payload to be copied the
      value of the Server Octets field MUST be set to zero on transmit.

   o  Remaining Packet Padding is optional field of variable length.
      The number of octets in the Remaining Packet Padding field is the
      value of the Server Octets field less the length of the Server
      Octets field.

   o  Comp.MBZ is variable length field used to achieve alignment on
      word boundary.  Thus the length of Comp.MBZ field may be only 0,
      1, 2 or 3 octets.  The value of the field MUST be zeroed on
      transmission and ignored on receipt.

   The unauthenticated STAMP Sender Session-Sender packet MAY include Type-Length-Value Type-
   Length-Value encodings that immediately follow the Comp.  MBZ field.

   o  Type field is two octets long.  The value of the Type field is the
      codepoint allocated by IANA Section 6 5 that identifies data in the
      Value field.

   o  Length is two octets long field and its value is the length of the
      Value field in octets.

   o  Value field contains the application specific information.  The
      length of the Value field MUST be four octets aligned.

4.1.2.  Sender  Session-Sender Packet Format in Authenticated and Encrypted
        Modes

   For authenticated and encrypted modes:

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                      Sequence Number                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |                      MBZ (12 octets)                          |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        Timestamp                              |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |        Error Estimate         |                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
    ~                                                               ~
    |                         MBZ (6 (70 octets)                       |
    ~                                                               ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             Type              |           Length              |                       HMAC (16 octets)
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~                            Value                              ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~                           Comp.MBZ                            ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |                       HMAC (16 octets)                        |
    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                                                               |             Type
    |           Length                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~                            Value                              ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Figure 4: STAMP Sender Session-Sender test packet format in authenticated or
                              encrypted modes

4.2.  Reflector Behavior and Packet Format

   The Reflector receives field definitions are the STAMP test packet, verifies it, prepares
   and transmits same as the reflected test packet.  [Editor note: Verification
   may include presence and content of TLVs unauthenticated mode,
   listed in Section 4.1.1.  In addition, Commp.MBZ field is variable
   length filed to align the packet on 16 octets boundary.  Also, the
   packet includes a key-hashed message authentication code (HMAC)
   ([RFC2104]) hash at the end of the PDU.

   The STAMP test packet.]

4.2.1.  Reflector Packet Format Session-Sender-packet format (Figure 4) is the same in Unauthenticated Mode

   For unauthenticated mode:

     0                   1                   2                   3
     0 1
   authenticated and encrypted modes.  The encryption and authentication
   operations are, however, different and protect the data as following:

      in authenticated mode the Sequence Number is protected while the
      Timestamp and the Error Estimate are sent in clear text;

      in encrypted mode all fields, including the timestamp and Error
      Estimate, are protected to provide maximum data confidentiality
      and integrity protection.

   Sending the Timestamp in clear text in authenticated mode allows more
   consistent reading of time by a Session-Sender on the transmission of
   the test packet.  Reading of the time in encrypted mode must be
   followed by its encryption which introduces variable delay thus
   affecting calculated timing metrics.

4.2.  Session-Reflector Behavior and Packet Format

   The Session-Reflector receives the STAMP test packet, verifies it,
   prepares and transmits the reflected test packet.

   Two modes of STAMP Session-Reflector characterize expected behavior
   and, consequently, performance metrics that can be measured:

   o  Stateless - STAMP Session-Reflector does not maintain test state
      and will reflect back the received sequence number without
      modification.  As a result, only round-trip packet loss can be
      calculated while the reflector is operating in stateless mode.

   o  Stateful - STAMP Session-Reflector maintains test state
      determining forward loss, gaps recognized in the received sequence
      number.  This means both near-end (forward) and far-end (backward)
      packet loss can be computed.  This implies that the STAMP Session-
      Reflector MUST keep a state for each accepted STAMP-test session,
      uniquely identifying STAMP-test packets to one such session
      instance, and enabling adding a sequence number in the test reply
      that is individually incremented on a per-session basis.

4.2.1.  Session-Reflector Packet Format in Unauthenticated Mode

   For unauthenticated mode:

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        Sequence Number                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          Timestamp                            |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |         Error Estimate        |           MBZ                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          Receive Timestamp                    |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        Sender                 Session-Sender Sequence Number                |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                      Sender                  Session-Sender Timestamp                     |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |      Sender Session-Sender Error Estimate |           MBZ                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Sender
    |Ses-Sender TTL |                                               |
    +-+-+-+-+-+-+-+-+                                               +
    |                                                               |
    ~                Packet Padding (reflected)                     ~
    +                                               +-+-+-+-+-+-+-+-+
    |                                               |    Comp.MBZ   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             Type              |           Length              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~                            Value                              ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

          Figure 5: STAMP Reflector Session-Reflector test packet format in
                           unauthenticated mode

   where fields are defined as the following:

   o  Sequence Number is four octets long field.  The value of the
      Sequence Number field is set according to the mode of the STAMP
      Reflector:
      Session-Reflector:

      *  in the stateless mode the Reflector Session-Reflector copies the value
         from the received STAMP test packet's Sequence Number field;

      *  in the stateful mode the Reflector Session-Reflector counts the received
         STAMP test packets in each test session and uses that counter
         to set value of the Sequence Number field.

   o  Timestamp and Receiver Timestamp fields are each 8 octets long.
      The format of these fields, NTP or PTPv2, indicated by the Z flag
      of the Error Estimate field as described in Section 4.1.

   o  Error Estimate has the same size and interpretation as described
      in Section 4.1.

   o  Sender  Session-Sender Sequence Number, Sender Session-Sender Timestamp, and Sender
      Session-Sender Error Estimate are copies of the corresponding
      fields in the STAMP test packet send by the Sender. Session-Sender.

   o  Sender  Ses(sion)-Sender TTL is one octet long field and its value is the
      copy of the TTL field from the received STAMP test packet.

   o  Packet Padding (reflected) is optional variable length field.  The
      length of the Packet Padding (reflected) field MUST be equal to
      the value of the Server Octets field (Figure 2).  If the value is
      non-zero, the Reflector Session-Reflector copies octets starting with the
      Server Octets field.

   o  Comp.MBZ is variable length field used to achieve alignment on
      word boundary.  Thus the length of Comp.MBZ field may be only 0,
      1, 2 or 3 octets.  The value of the field MUST be zeroed on
      transmission and ignored on receipt.

4.2.2.  Reflector  Session-Reflector Packet Format in Authenticated and Encrypted
        Modes

   For authenticated and encrypted modes:

      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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                        Sequence Number                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                        MBZ (12 octets)                        |
      |                                                               |
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                          Timestamp                            |
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |         Error Estimate        |                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
      |                        MBZ (6 octets)                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                        Receive Timestamp                      |
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                        MBZ (8 octets)                         |
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                        Sender                 Session-Sender Sequence Number                |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                        MBZ (12 octets)                        |
      |                                                               |
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                      Sender                 Session-Sender Timestamp                      |
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      Sender Session-Sender Error Estimate |                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
      |                        MBZ (6 octets)                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Sender
      |Ses-Sender TTL |                                               |
      +-+-+-+-+-+-+-+-+                                               +
      |                                                               |
      |                                                               |
      |                        MBZ (15 octets)                        |
      +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |             Type              |           Length              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ~                            Value                              ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ~                           Comp.MBZ                            ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                        HMAC (16 octets)                       |
      |                                                               |
      |                                                               |
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Figure 6: STAMP Reflector Session-Reflector test packet format in authenticated
                            or encrypted modes

5.  TLV Extensions

   The field definitions are the same as the unauthenticated mode,
   listed in Section 4.2.1, and includes a key-hashed message
   authentication code (HMAC) ([RFC2104]) hash at the end of the PDU.

4.3.  Interoperability with TWAMP Light

   One of important requirements to STAMP

   TBA

5.1.  Extra Padding TLV

   TBA

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      Extra Padding Type       |           Length              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~                         Extra Padding                         ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Figure 7: Extra Padding TLV

   where fields are defined as the following:

   o  Extra Padding Type - TBA1 allocated by IANA Section 6.1

   o  Length - 2 octets long field equals length on the Extra Padding
      field in octets.

   o  Extra Padding - pseudo-random sequence of numbers.  The field MAY
      be filled with all zeroes.

5.2.  Location TLV

   STAMP sender MAY include the Location TLV to request information from
   the reflector.  The sender SHOULD NOT fill any information fields
   except for Type and Length.  The reflector MUST validate the Length
   value against address family of the transport encapsulating the STAMP
   test packet.  If the value of the Length field is invalid, the
   reflector MUST zero all fields and MUST NOT return any information to
   the sender.  The reflector MUST ignore all other fields of the
   received Location TLV.

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |          Location Type        |           Length              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                          Source MAC                           |
      +                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                               |              MBZ              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ~                    Destination IP Address                     ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ~                       Source IP Address                       ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   Dest.port   |   Src.Port    |           MBZ                 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Figure 8: Reflector Location TLV

   where fields are defined as the following:

   o  Location Type - TBA1 allocated by IANA Section 6.1

   o  Length - 2 octets long field equals length on the Value field in
      octets.  Length field value MUST be 20 octets for IPv4 address
      family.  For IPv6 address family value of the Length field MUST be
      44 octets.  All other values are invalid

   o  Source MAC - 6 octets 48 bits long field.  The reflector MUST copy
      Source MAC of received STAMP packet into this field.

   o  MBZ - two octets long field.  MUST be zeroed on transmission and
      ignored on reception.

   o  Destination IP Address - IPv4 or IPv6 destination address of the
      received by the reflector STAMP packet.

   o  Source IP Address - IPv4 or IPv6 source address of the received by
      the reflector STAMP packet.

   o  Dest.port - one octet long UDP destination port number of the
      received STAMP packet.

   o  Src.port - one octet long UDP source port number of the received
      STAMP packet.

5.3.  Timestamp Information TLV

   STAMP sender MAY include the Timestamp Information TLV to request
   information from the reflector.  The sender SHOULD NOT fill any
   information fields except for Type and Length.  The reflector MUST
   validate the Length value of the STAMP test packet.  If the value of
   the Length field is invalid, the reflector MUST zero all fields and
   MUST NOT return any information to the sender.

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Timestamp Information Type   |           Length              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     Synchronization Source    |       Timestamp Method        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Figure 9: Timestamp Information TLV

   where fields are defined as the following:

   o  Timestamp Information Type - TBA1 allocated by IANA Section 6.1

   o  Length - 2 octets long field, equals 4 octets.

   o  Synchronization Source - two octets long field that characterizes
      the source of clock synchronization at the reflector.  The value is one of Section 6.2.

   o  Timestamp Method - ability to interwork with
   TWAMP Light device.  There are two octets long field that characterizes
      timestamping method at the reflector.  The value is one of
      Section 6.3.  [Ed.note: Should it be split possible combinations for ingress and
      egress?]

5.4.  Class of Service TLV

   The such use
   case:

   o  STAMP sender MAY include Class of Service TLV in the Session-Sender with TWAMP Light Session-Reflector;

   o  TWAMP Light Session-Sender with STAMP test
   packet.  If Session-Reflector.

   In the Class former case, Session-Sender MAY not be aware that its Session-
   Reflector does not support STAMP.  For example, TWAMP Light Session-
   Reflector may not support use of Service TLV is present UDP port 862 as defined in the STAMP test
   packet and the value of the Op field equals Report (TBA5) value
   Section 6.4, then the
   [I-D.ietf-ippm-port-twamp-test].  But because STAMP reflector Session-Sender
   MUST copy DSCP and ECN values
   from the received STAMP test packet into DSCP and ECN fields of the
   Class of Service TLV of the reflected STAMP be able to send test packet.  If the
   value of the Op field equals Set and Report (TBA6) Section 6.4, then
   the STAMP reflector MUST use DSCP value packets to destination UDP port number from
   the Class of Service TLV
   in the received STAMP test packet as DSCP value of STAMP reflected
   test packet and MUST copy DSCP and ECN values of the received STAMP Dynamic and/or Private Ports range 49152-65535, test packet into DSCP and ECN fields of Class management
   system should find port number that both devices can use.  And if any
   of Service TLV in the TLV-based STAMP reflected packet.

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      Class of Service Type    |           Length              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    DSCP   |ECN|Op |               MBZ                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Figure 10: Class of Service TLV

   where fields extensions are defined used, the TWAMP Light Session-
   Reflector will view them as Packet Padding field.  The Session-Sender
   SHOULD use the following:

   o

6.  IANA Considerations

6.1. default format for its timestamps - NTP.  And it MAY
   use PTPv2 timestamp format.

   In the latter scenario, test management system should set STAMP TLV Registry

   IANA is requested
   Session-Reflector to create STAMP TLV Type registry.  All code points
   in use UDP port number from the range 1 through 32759 in this registry shall be allocated
   according to Dynamic and/or
   Private Ports range.  As for Packet Padding field that the "IETF Review" procedure as specified in [RFC8126].
   Code points TWAMP
   Light Session-Sender includes in its transmitted packet, the range 32760 through 65279 in this registry shall
   be allocated STAMP
   Session-Reflector will process it according to [RFC6038] and return
   reflected packet of the "First Come First Served" procedure as
   specified in [RFC8126].  Remaining code points are allocated
   according to symmetrical size.  The Session-Reflector MUST
   use the Table 1:

        +---------------+--------------+-------------------------+
        | Value         | Description  | Reference               |
        +---------------+--------------+-------------------------+
        | 0             |   Reserved   | This document           |
        | 1- 32759      |  Unassigned  | IETF Review             |
        | 32760 - 65279 |  Unassigned  | First Come First Served |
        | 65280 - 65519 | Experimental | This document           |
        | 65520 default format for its timestamps - 65534 | Private Use  | This document           |
        | 65535         |   Reserved   | NTP.

5.  IANA Considerations

   This document           |
        +---------------+--------------+-------------------------+

                     Table 1: STAMP TLV Type Registry doesn't have any IANA action.  This document defines section may be
   removed before the following new values publication.

6.  Security Considerations

   Use of HMAC in STAMP TLV Type
   registry:

             +-------+-----------------------+---------------+
             | Value |      Description      | Reference     |
             +-------+-----------------------+---------------+
             | TBA1  |     Extra Padding     | This document |
             | TBA2  |        Location       | This document |
             | TBA3  | Timestamp Information | This document |
             | TBA4  |    Class authenticated and encrypted modes may be used to
   simultaneously verify both the data integrity and the authentication
   of Service   | This document |
             +-------+-----------------------+---------------+

                           Table 2: the STAMP Types

6.2.  Synchronization Source Sub-registry

   TBD

6.3.  Timestamp Method Sub-registry

   TBD

6.4.  CoS Operation Sub-registry

   TBD test packets.

7.  Security Considerations

   TBD

8.  Acknowledgments

   TBD

9.

8.  References

8.1.  Normative References

   [BBF.TR-390]
              "Performance Measurement from IP Edge to Customer
              Equipment using TWAMP Light", BBF TR-390, May 2017.

   [I-D.ietf-ippm-port-twamp-test]
              Morton, A. and G. Mirsky, "OWAMP and TWAMP Well-Known Port
              Assignments", draft-ietf-ippm-port-twamp-test-00 (work in
              progress), January 2018.

   [IEEE.1588.2008]
              "Standard for a Precision Clock Synchronization Protocol
              for Networked Measurement and Control Systems",
              IEEE Standard 1588, March 2008.

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

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

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

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

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

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

   [RFC8186]  Mirsky, G. and I. Meilik, "Support of the IEEE 1588
              Timestamp Format in a Two-Way Active Measurement Protocol
              (TWAMP)", RFC 8186, DOI 10.17487/RFC8186, June 2017,
              <https://www.rfc-editor.org/info/rfc8186>.

8.2.  Informative References

   [RFC2104]  Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed-
              Hashing for Message Authentication", RFC 2104,
              DOI 10.17487/RFC2104, February 1997,
              <https://www.rfc-editor.org/info/rfc2104>.

Authors' Addresses

   Greg Mirsky
   ZTE Corp.

   Email: gregimirsky@gmail.com

   Guo Jun
   ZTE Corporation
   68# Zijinghua Road
   Nanjing, Jiangsu  210012
   P.R.China

   Phone: +86 18105183663
   Email: guo.jun2@zte.com.cn

   Henrik Nydell
   Accedian Networks

   Email: hnydell@accedian.com

   Richard Foote
   Nokia

   Email: footer.foote@nokia.com