draft-ietf-ippm-stamp-option-tlv-02.txt | draft-ietf-ippm-stamp-option-tlv-03.txt | |||
---|---|---|---|---|
Network Working Group G. Mirsky | Network Working Group G. Mirsky | |||
Internet-Draft X. Min | Internet-Draft X. Min | |||
Intended status: Standards Track ZTE Corp. | Intended status: Standards Track ZTE Corp. | |||
Expires: May 3, 2020 H. Nydell | Expires: August 24, 2020 H. Nydell | |||
Accedian Networks | Accedian Networks | |||
R. Foote | R. Foote | |||
Nokia | Nokia | |||
A. Masputra | A. Masputra | |||
Apple Inc. | Apple Inc. | |||
E. Ruffini | E. Ruffini | |||
OutSys | OutSys | |||
October 31, 2019 | February 21, 2020 | |||
Simple Two-way Active Measurement Protocol Optional Extensions | Simple Two-way Active Measurement Protocol Optional Extensions | |||
draft-ietf-ippm-stamp-option-tlv-02 | draft-ietf-ippm-stamp-option-tlv-03 | |||
Abstract | Abstract | |||
This document describes optional extensions to Simple Two-way Active | This document describes optional extensions to Simple Two-way Active | |||
Measurement Protocol (STAMP) which enable measurement performance | Measurement Protocol (STAMP) which enable measurement performance | |||
metrics in addition to ones supported by the STAMP base | metrics in addition to ones supported by the STAMP base | |||
specification. | specification. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 1, line 41 ¶ | skipping to change at page 1, line 41 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on May 3, 2020. | This Internet-Draft will expire on August 24, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Conventions used in this document . . . . . . . . . . . . . . 3 | 2. Conventions used in this document . . . . . . . . . . . . . . 3 | |||
2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2.2. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 2.2. Requirements Language . . . . . . . . . . . . . . . . . . 3 | |||
3. Theory of Operation . . . . . . . . . . . . . . . . . . . . . 3 | 3. STAMP Test Session Identifier . . . . . . . . . . . . . . . . 4 | |||
4. TLV Extensions to STAMP . . . . . . . . . . . . . . . . . . . 4 | 4. TLV Extensions to STAMP . . . . . . . . . . . . . . . . . . . 8 | |||
4.1. Extra Padding TLV . . . . . . . . . . . . . . . . . . . . 6 | 4.1. Extra Padding TLV . . . . . . . . . . . . . . . . . . . . 9 | |||
4.2. Location TLV . . . . . . . . . . . . . . . . . . . . . . 6 | 4.2. Location TLV . . . . . . . . . . . . . . . . . . . . . . 10 | |||
4.3. Timestamp Information TLV . . . . . . . . . . . . . . . . 8 | 4.3. Timestamp Information TLV . . . . . . . . . . . . . . . . 11 | |||
4.4. Class of Service TLV . . . . . . . . . . . . . . . . . . 9 | 4.4. Class of Service TLV . . . . . . . . . . . . . . . . . . 12 | |||
4.5. Direct Measurement TLV . . . . . . . . . . . . . . . . . 10 | 4.5. Direct Measurement TLV . . . . . . . . . . . . . . . . . 14 | |||
4.6. Access Report TLV . . . . . . . . . . . . . . . . . . . . 11 | 4.6. Access Report TLV . . . . . . . . . . . . . . . . . . . . 14 | |||
4.7. Follow-up Telemetry TLV . . . . . . . . . . . . . . . . . 13 | 4.7. Follow-up Telemetry TLV . . . . . . . . . . . . . . . . . 16 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | 4.8. HMAC TLV . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
5.1. STAMP TLV Registry . . . . . . . . . . . . . . . . . . . 14 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | |||
5.2. Synchronization Source Sub-registry . . . . . . . . . . . 15 | 5.1. STAMP TLV Registry . . . . . . . . . . . . . . . . . . . 19 | |||
5.3. Timestamping Method Sub-registry . . . . . . . . . . . . 16 | 5.2. Synchronization Source Sub-registry . . . . . . . . . . . 20 | |||
5.4. Access ID Sub-registry . . . . . . . . . . . . . . . . . 17 | 5.3. Timestamping Method Sub-registry . . . . . . . . . . . . 20 | |||
5.5. Return Code Sub-registry . . . . . . . . . . . . . . . . 17 | 5.4. Access ID Sub-registry . . . . . . . . . . . . . . . . . 21 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | 5.5. Return Code Sub-registry . . . . . . . . . . . . . . . . 22 | |||
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 23 | |||
8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 18 | 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 19 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 19 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 23 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 | 9.2. Informative References . . . . . . . . . . . . . . . . . 24 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 | ||||
1. Introduction | 1. Introduction | |||
Simple Two-way Active Measurement Protocol (STAMP) | Simple Two-way Active Measurement Protocol (STAMP) | |||
[I-D.ietf-ippm-stamp] supports the use of optional extensions that | [I-D.ietf-ippm-stamp] supports the use of optional extensions that | |||
use Type-Length-Value (TLV) encoding. Such extensions are to enhance | use Type-Length-Value (TLV) encoding. Such extensions are to enhance | |||
the STAMP base functions, such as measurement of one-way and round- | the STAMP base functions, such as measurement of one-way and round- | |||
trip delay, latency, packet loss, as well as ability to detect packet | trip delay, latency, packet loss, as well as ability to detect packet | |||
duplication and out-of-order delivery of the test packets. This | duplication and out-of-order delivery of the test packets. This | |||
specification provides definitions of optional STAMP extensions, | specification provides definitions of optional STAMP extensions, | |||
skipping to change at page 3, line 39 ¶ | skipping to change at page 3, line 39 ¶ | |||
GLONASS Global Orbiting Navigation Satellite System | GLONASS Global Orbiting Navigation Satellite System | |||
LORAN-C Long Range Navigation System Version C | LORAN-C Long Range Navigation System Version C | |||
MBZ Must Be Zeroed | MBZ Must Be Zeroed | |||
CoS Class of Service | CoS Class of Service | |||
PMF Performance Measurement Function | PMF Performance Measurement Function | |||
SSID STAMP Session Identifier | ||||
2.2. Requirements Language | 2.2. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
3. Theory of Operation | 3. STAMP Test Session Identifier | |||
STAMP Session-Sender transmits test packets to STAMP Session- | STAMP Session-Sender transmits test packets to STAMP Session- | |||
Reflector. STAMP Session-Reflector receives Session-Sender's packet | Reflector. STAMP Session-Reflector receives Session-Sender's packet | |||
and acts according to the configuration and optional control | and acts according to the configuration and optional control | |||
information communicated in the Session-Sender's test packet. STAMP | information communicated in the Session-Sender's test packet. STAMP | |||
defines two different test packet formats, one for packets | defines two different test packet formats, one for packets | |||
transmitted by the STAMP-Session-Sender and one for packets | transmitted by the STAMP-Session-Sender and one for packets | |||
transmitted by the STAMP-Session-Reflector. STAMP supports two | transmitted by the STAMP-Session-Reflector. STAMP supports two | |||
modes: unauthenticated and authenticated. Unauthenticated STAMP test | modes: unauthenticated and authenticated. Unauthenticated STAMP test | |||
packets are compatible on the wire with unauthenticated TWAMP-Test | packets are compatible on the wire with unauthenticated TWAMP-Test | |||
[RFC5357] packet formats. | [RFC5357] packet formats. | |||
By default, STAMP uses symmetrical packets, i.e., the size of the | By default, STAMP uses symmetrical packets, i.e., the size of the | |||
packet transmitted by Session-Reflector equals the size of the packet | packet transmitted by Session-Reflector equals the size of the packet | |||
received by the Session-Reflector. | received by the Session-Reflector. | |||
4. TLV Extensions to STAMP | A STAMP Session is identified using 4-tuple (source and destination | |||
IP addresses, source and destination UDP port numbers). A STAMP | ||||
Figure 1 displays the format of STAMP Session-Sender test packet in | Session-Sender MAY generate locally unique STAMP Session Identifier | |||
unauthenticated mode that includes a TLV. | (SSID). SSID is two octets long non-zero unsigned integer. A | |||
Session-Sender MAY use SSID to identify a STAMP test session. If | ||||
SSID is used, it MUST be present in each test packet of the given | ||||
test session. In the unauthenticated mode, SSID is located, as | ||||
displayed in Figure 1. | ||||
0 1 2 3 | 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 | 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 | | | Sequence Number | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Timestamp | | | Timestamp | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Error Estimate | | | | Error Estimate | SSID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
| | | | | | |||
| MBZ (30 octets) | | | MBZ (28 octets) | | |||
| | | | | | |||
| | | | | | |||
| | | | | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Value ~ | ~ Value ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 1: STAMP Session-Sender test packet format with TLV in | Figure 1: STAMP Session-Sender test packet format with TLV in | |||
unauthenticated mode | unauthenticated mode | |||
The MBZ (Must Be Zeroed) field of a test packet transmitted by a | An implementation of STAMP Session-Reflector that supports this | |||
STAMP Session-Sender MUST be 30 octets long. A STAMP Session-Sender | specification SHOULD identify a STAMP Session using the SSID in | |||
test packet MUST NOT use the Reflect Octets capability defined in | combination with elements of the usual 4-tuple. A conforming | |||
[RFC6038]. | implementation of STAMP Session-Reflector MUST copy the SSID value | |||
from the received test packet and put it into the reflected packet as | ||||
TLVs (Type-Length-Value tuples) have the two octets long Type field, | displayed in Figure 2. | |||
two octets long Length field that is the length of the Value field in | ||||
octets. Type values, see Section 5.1, less than 32768 identify | ||||
mandatory TLVs that MUST be supported by an implementation. Type | ||||
values greater than or equal to 32768 identify optional TLVs that | ||||
SHOULD be ignored if the implementation does not understand or | ||||
support them. If a Type value for TLV or sub-TLV is in the range for | ||||
Vendor Private Use, the Length MUST be at least 4, and the first four | ||||
octets MUST be that vendor's the Structure of Management Information | ||||
(SMI) Private Enterprise Number, in network octet order. The rest of | ||||
the Value field is private to the vendor. Following sections | ||||
describe the use of TLVs for STAMP that extend STAMP capability | ||||
beyond its base specification. | ||||
Figure 2 displays the format of STAMP Session-Reflector test packet | ||||
in unauthenticated mode that includes a TLV. | ||||
0 1 2 3 | 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 | 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 | | | Sequence Number | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Timestamp | | | Timestamp | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Error Estimate | MBZ | | | Error Estimate | SSID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Receive Timestamp | | | Receive Timestamp | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Session-Sender Sequence Number | | | Session-Sender Sequence Number | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Session-Sender Timestamp | | | Session-Sender Timestamp | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Session-Sender Error Estimate | MBZ | | | Session-Sender Error Estimate | MBZ | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|Ses-Sender TTL | MBZ2 | | |Ses-Sender TTL | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Value ~ | ~ Value ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 2: STAMP Session-Reflector test packet format with TLV in | Figure 2: STAMP Session-Reflector test packet format with TLV in | |||
unauthenticated mode | unauthenticated mode | |||
The MBZ2 field of a test packet transmitted by a STAMP Session- | A STAMP Session-Reflector that does not support this specification, | |||
Reflector MUST be 3 octets long. | will return the zeroed SSID field in the reflected STAMP test packet. | |||
The Session-Sender MUST NOT stop the session if it receives a zeroed | ||||
SSID field. | ||||
In the authenticated mode, location of SSID field is shown in | ||||
Figure 3 and Figure 4. | ||||
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 | SSID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
~ ~ | ||||
| MBZ (68 octets) | | ||||
~ ~ | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | ||||
| HMAC (16 octets) | | ||||
| | | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Figure 3: STAMP Session-Sender test packet format in authenticated | ||||
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 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| MBZ (12 octets) | | ||||
| | | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Timestamp | | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Error Estimate | SSID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| MBZ (4 octets) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Receive Timestamp | | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| MBZ (8 octets) | | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Session-Sender Sequence Number | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| MBZ (12 octets) | | ||||
| | | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Session-Sender Timestamp | | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Session-Sender Error Estimate | | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ||||
| MBZ (6 octets) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|Ses-Sender TTL | | | ||||
+-+-+-+-+-+-+-+-+ + | ||||
| | | ||||
| MBZ (15 octets) | | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| HMAC (16 octets) | | ||||
| | | ||||
| | | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Figure 4: STAMP Session-Reflector test packet format in authenticated | ||||
mode | ||||
4. TLV Extensions to STAMP | ||||
Type-Length-Value (TLV) encoding scheme provides flexible extension | ||||
mechanism for optional informational elements. TLV is an optional | ||||
field in the STAMP test packet. TLVs have the two octets long Type | ||||
field, two octets long Length field that is the length of the Value | ||||
field in octets. Type values, see Section 5.1, less than 32768 | ||||
identify mandatory TLVs that MUST be supported by an implementation. | ||||
Type values greater than or equal to 32768 identify optional TLVs | ||||
that SHOULD be ignored if the implementation does not understand or | ||||
support them. If a Type value for TLV or sub-TLV is in the range for | ||||
Vendor Private Use, the Length MUST be at least 4, and the first four | ||||
octets MUST be that vendor's the Structure of Management Information | ||||
(SMI) Private Enterprise Number, in network octet order. The rest of | ||||
the Value field is private to the vendor. Following sections | ||||
describe the use of TLVs for STAMP that extend STAMP capability | ||||
beyond its base specification. | ||||
A STAMP node, whether Session-Sender or Session-Reflector, receiving | A STAMP node, whether Session-Sender or Session-Reflector, receiving | |||
a test packet MUST determine whether the packet is a base STAMP | a test packet MUST determine whether the packet is a base STAMP | |||
packet or includes one or more TLVs. The node MUST compare the value | packet or includes one or more TLVs. The node MUST compare the value | |||
in the Length field of the UDP header and the length of the base | in the Length field of the UDP header and the length of the base | |||
STAMP test packet in the mode, unauthenticated or authenticated based | STAMP test packet in the mode, unauthenticated or authenticated based | |||
on the configuration of the particular STAMP test session. If the | on the configuration of the particular STAMP test session. If the | |||
difference between the two values is larger than the length of UDP | difference between the two values is larger than the length of UDP | |||
header, then the test packet includes one or more STAMP TLVs that | header, then the test packet includes one or more STAMP TLVs that | |||
immediately follow the base STAMP test packet. | immediately follow the base STAMP test packet. | |||
A system that has received a STAMP test packet with extension TLVs | ||||
MUST validate each fixed-size TLV by verifying that the value in the | ||||
Length field equals the value defined for the particular type. If | ||||
the values are not equal, the processing of extension TLVs MUST be | ||||
stopped and the event logged (logging SHOULD be throttled). Also, if | ||||
the system is the Session-Reflector in that test, it MUST send | ||||
(transmission of ICMP Error messages SHOULD be throttled) the ICMP | ||||
Parameter Problem message with Code set to 0 and the Pointer | ||||
referring to the Length field of the TLV. | ||||
4.1. Extra Padding TLV | 4.1. Extra Padding TLV | |||
0 1 2 3 | 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 | 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 Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
~ Extra Padding ~ | ~ Extra Padding ~ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 3: Extra Padding TLV | Figure 5: Extra Padding TLV | |||
where fields are defined as the following: | where fields are defined as the following: | |||
o Extra Padding Type - TBA1 allocated by IANA Section 5.1 | o Extra Padding Type - TBA1 allocated by IANA Section 5.1 | |||
o Length - two octets long field equals length on the Extra Padding | o Length - two octets long field equals length on the Extra Padding | |||
field in octets. | field in octets. | |||
o Extra Padding - a pseudo-random sequence of numbers. The field | o Extra Padding - a pseudo-random sequence of numbers. The field | |||
MAY be filled with all zeroes. | MAY be filled with all zeroes. | |||
The Extra Padding TLV is similar to the Packet Padding field in | The Extra Padding TLV is similar to the Packet Padding field in | |||
TWAMP-Test packet [RFC5357]. The in STAMP the Packet Padding field | TWAMP-Test packet [RFC5357]. The Extra Padding TLV MUST be used to | |||
is used to ensure symmetrical size between Session-Sender and | create STAMP test packets of larger size. The Extra Padding TLV MUST | |||
Session-Reflector test packets. Extra Padding TLV MUST be used to | be the last TLV in a STAMP test packet. | |||
create STAMP test packets of larger size. | ||||
4.2. Location TLV | 4.2. Location TLV | |||
STAMP session-sender MAY include the Location TLV to request | STAMP session-sender MAY include the Location TLV to request | |||
information from the session-reflector. The session-sender SHOULD | information from the session-reflector. The session-sender SHOULD | |||
NOT fill any information fields except for Type and Length. The | NOT fill any information fields except for Type and Length. The | |||
session-reflector MUST validate the Length value against the address | session-reflector MUST validate the Length value against the address | |||
family of the transport encapsulating the STAMP test packet. If the | family of the transport encapsulating the STAMP test packet. If the | |||
value of the Length field is invalid, the session-reflector MUST zero | value of the Length field is invalid, the session-reflector MUST zero | |||
all fields and MUST NOT return any information to the session-sender. | all fields and MUST NOT return any information to the session-sender. | |||
The session-reflector MUST ignore all other fields of the received | The session-reflector MUST ignore all other fields of the received | |||
Location TLV. | Location TLV. | |||
0 1 2 3 | 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 | 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 | | | Location Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Source MAC | | | Source MAC | | |||
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Reserved A | | | | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Destination IP Address ~ | ~ Destination IP Address ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Source IP Address ~ | ~ Source IP Address ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Dest.port | Src.Port | Reserved B | | | Destination Port | Source Port | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 4: Session-Reflector Location TLV | Figure 6: Session-Reflector Location TLV | |||
where fields are defined as the following: | where fields are defined as the following: | |||
o Location Type - TBA2 allocated by IANA Section 5.1 | o Location Type - TBA2 allocated by IANA Section 5.1 | |||
o Length - two octets long field equals length on the Value field in | o Length - two octets long field equals length on the Value field in | |||
octets. Length field value MUST be 20 octets for the IPv4 address | octets. Length field value MUST be 20 octets for the IPv4 address | |||
family. For the IPv6 address family value of the Length field | family. For the IPv6 address family value of the Length field | |||
MUST be 44 octets. All other values are invalid. | MUST be 44 octets. All other values are invalid. | |||
o Source MAC - 6 octets 48 bits long field. The session-reflector | o Source MAC - 6 octets 48 bits long field. The session-reflector | |||
MUST copy Source MAC of received STAMP packet into this field. | MUST copy Source MAC of received STAMP packet into this field. | |||
o Reserved A - two octets long field. MUST be zeroed on | o Reserved - two octets long field. MUST be zeroed on transmission | |||
transmission and ignored on reception. | and ignored on reception. | |||
o Destination IP Address - IPv4 or IPv6 destination address of the | o Destination IP Address - IPv4 or IPv6 destination address of the | |||
received by the session-reflector STAMP packet. | received by the session-reflector STAMP packet. | |||
o Source IP Address - IPv4 or IPv6 source address of the received by | o Source IP Address - IPv4 or IPv6 source address of the received by | |||
the session-reflector STAMP packet. | the session-reflector STAMP packet. | |||
o Dest.port - one octet long UDP destination port number of the | o Destination Port - two octets long UDP destination port number of | |||
received STAMP packet. | the received STAMP packet. | |||
o Src.port - one octet long UDP source port number of the received | ||||
STAMP packet. | ||||
o Reserved B - two octets long field. MUST be zeroed on | o Source Port - two octets long UDP source port number of the | |||
transmission and ignored on reception. | received STAMP packet. | |||
The Location TLV MAY be used to determine the last-hop addressing for | The Location TLV MAY be used to determine the last-hop addressing for | |||
STAMP packets including source and destination IP addresses as well | STAMP packets including source and destination IP addresses as well | |||
as the MAC address of the last-hop router. Last-hop MAC address MAY | as the MAC address of the last-hop router. Last-hop MAC address MAY | |||
be monitored by the Session-Sender whether there has been a path | be monitored by the Session-Sender whether there has been a path | |||
switch on the last hop, closest to the Session-Reflector. The IP | switch on the last hop, closest to the Session-Reflector. The IP | |||
addresses and UDP port will indicate if there is a NAT router on the | addresses and UDP port will indicate if there is a NAT router on the | |||
path, and allows the Session-Sender to identify the IP address of the | path, and allows the Session-Sender to identify the IP address of the | |||
Session-Reflector behind the NAT, detect changes in the NAT mapping | Session-Reflector behind the NAT, detect changes in the NAT mapping | |||
that could cause sending the STAMP packets to the wrong Session- | that could cause sending the STAMP packets to the wrong Session- | |||
skipping to change at page 8, line 40 ¶ | skipping to change at page 11, line 43 ¶ | |||
information to the session-sender. | information to the session-sender. | |||
0 1 2 3 | 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 | 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 | | | Timestamp Information Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sync. Src In | Timestamp In | Sync. Src Out | Timestamp Out | | | Sync. Src In | Timestamp In | Sync. Src Out | Timestamp Out | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 5: Timestamp Information TLV | Figure 7: Timestamp Information TLV | |||
where fields are defined as the following: | where fields are defined as the following: | |||
o Timestamp Information Type - TBA3 allocated by IANA Section 5.1 | o Timestamp Information Type - TBA3 allocated by IANA Section 5.1 | |||
o Length - two octets long field, equals four octets. | o Length - two octets long field, equals four octets. | |||
o Sync Src In - one octet long field that characterizes the source | o Sync Src In - one octet long field that characterizes the source | |||
of clock synchronization at the ingress of Session-Reflector. | of clock synchronization at the ingress of Session-Reflector. | |||
There are several of methods to synchronize the clock, e.g., | There are several of methods to synchronize the clock, e.g., | |||
Network Time Protocol (NTP) [RFC5905], Precision Time Protocol | Network Time Protocol (NTP) [RFC5905], Precision Time Protocol | |||
(PTP) [IEEE.1588.2008], Synchronization Supply Unit (SSU) or | (PTP) [IEEE.1588.2008], Synchronization Supply Unit (SSU) or | |||
Building Integrated Timing Supply (BITS), or Global Positioning | Building Integrated Timing Supply (BITS), or Global Positioning | |||
System (GPS), Global Orbiting Navigation Satellite System | System (GPS), Global Orbiting Navigation Satellite System | |||
(GLONASS) and Long Range Navigation System Version C (LORAN-C). | (GLONASS) and Long Range Navigation System Version C (LORAN-C). | |||
The value is one of the listed in Table 4. | The value is one of the listed in Table 4. | |||
o Timestamp In - one octet long field that characterizes the method | o Timestamp In - one octet long field that characterizes the method | |||
by which the ingress of Session-Reflector obtained the timestamp | by which the ingress of Session-Reflector obtained the timestamp | |||
skipping to change at page 9, line 49 ¶ | skipping to change at page 13, line 13 ¶ | |||
the reverse direction. | the reverse direction. | |||
0 1 2 3 | 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 | 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 | | | Class of Service Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| DSCP1 | DSCP2 |ECN| Reserved | | | DSCP1 | DSCP2 |ECN| Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 6: Class of Service TLV | Figure 8: Class of Service TLV | |||
where fields are defined as the following: | where fields are defined as the following: | |||
o Class of Service Type - TBA4 allocated by IANA Section 5.1 | o Class of Service Type - TBA4 allocated by IANA Section 5.1 | |||
o Length - two octets long field, equals four octets. | o Length - two octets long field, equals four octets. | |||
o DSCP1 - The Differentiated Services Code Point (DSCP) intended by | o DSCP1 - The Differentiated Services Code Point (DSCP) intended by | |||
the Session-Sender. To be used as the return DSCP from the | the Session-Sender. To be used as the return DSCP from the | |||
Session-Reflector. | Session-Reflector. | |||
skipping to change at page 11, line 17 ¶ | skipping to change at page 14, line 24 ¶ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Direct Measurement Type | Length | | | Direct Measurement Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Session-Sender Tx counter (S_TxC) | | | Session-Sender Tx counter (S_TxC) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Session-Reflector Rx counter (R_RxC) | | | Session-Reflector Rx counter (R_RxC) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Session-Reflector Tx counter (R_TxC) | | | Session-Reflector Tx counter (R_TxC) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 7: Direct Measurement TLV | Figure 9: Direct Measurement TLV | |||
where fields are defined as the following: | where fields are defined as the following: | |||
o Direct Measurement Type - TBA5 allocated by IANA Section 5.1 | o Direct Measurement Type - TBA5 allocated by IANA Section 5.1 | |||
o Length - two octets long field equals length on the Value field in | o Length - two octets long field equals length on the Value field in | |||
octets. Length field value MUST be 12 octets. | octets. Length field value MUST be 12 octets. | |||
o Session-Sender Tx counter (S_TxC) is four octets long field. | o Session-Sender Tx counter (S_TxC) is four octets long field. | |||
o Session-Reflector Rx counter (R_RxC) is four octets long field. | o Session-Reflector Rx counter (R_RxC) is four octets long field. | |||
MUST be zeroed by the Session-Sender and filled by the Session- | MUST be zeroed by the Session-Sender and filled by the Session- | |||
Reflector. | Reflector. | |||
o Session-Reflector Tx counter (R_TxC) is four octets long field. | o Session-Reflector Tx counter (R_TxC) is four octets long field. | |||
MUST be zeroed by the Session-Sender and filled by the Session- | MUST be zeroed by the Session-Sender and filled by the Session- | |||
Reflector. | Reflector. | |||
4.6. Access Report TLV | 4.6. Access Report TLV | |||
A STAMP Session-Sender MAY include Access Report TLV (Figure 8) to | A STAMP Session-Sender MAY include Access Report TLV (Figure 10) to | |||
indicate changes to the access network status to the Session- | indicate changes to the access network status to the Session- | |||
Reflector. The definition of an access network is outside the scope | Reflector. The definition of an access network is outside the scope | |||
of this document. | of this document. | |||
0 1 2 3 | 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 | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Access Report Type | Length | | | Access Report Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Access ID | Return Code | Reserved | | | Access ID | Return Code | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 8: Access Report TLV | Figure 10: Access Report TLV | |||
where fields are defined as follows: | where fields are defined as follows: | |||
o Access Report Type - TBA6 allocated by IANA Section 5.1. | o Access Report Type - TBA6 allocated by IANA Section 5.1. | |||
o Length - two octets long field, equals four octets. | o Length - two octets long field, equals four octets. | |||
o Access ID - one octet long field that identifies the access | o Access ID - one octet long field that identifies the access | |||
network, e.g., 3GPP (Radio Access Technologies specified by 3GPP) | network, e.g., 3GPP (Radio Access Technologies specified by 3GPP) | |||
or Non-3GPP (accesses that are not specified by 3GPP) [TS23501]. | or Non-3GPP (accesses that are not specified by 3GPP) [TS23501]. | |||
skipping to change at page 13, line 36 ¶ | skipping to change at page 17, line 12 ¶ | |||
(defined in Section 4.2 [I-D.ietf-ippm-stamp]), it MUST zero Sequence | (defined in Section 4.2 [I-D.ietf-ippm-stamp]), it MUST zero Sequence | |||
Number and Timestamp fields. | Number and Timestamp fields. | |||
0 1 2 3 | 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 | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Follow-up Telemetry Type | Length | | | Follow-up Telemetry Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sequence Number | | | Sequence Number | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Timestamp | | | Follow-up Timestamp | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Timestamp M | Reserved | | | Timestamp M | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 9: Follow-up Telemetry TLV | Figure 11: Follow-up Telemetry TLV | |||
where fields are defined as follows: | where fields are defined as follows: | |||
o Follow-up Telemetry Type - TBA7 allocated by IANA Section 5.1. | o Follow-up Telemetry Type - TBA7 allocated by IANA Section 5.1. | |||
o Length - two octets long field, equals 12 octets. | o Length - two octets long field, equals 16 octets. | |||
o Sequence Number - four octets long field indicating the sequence | o Sequence Number - four octets long field indicating the sequence | |||
number of the last packet reflected in the same STAMP-test | number of the last packet reflected in the same STAMP-test | |||
session. Since the Session-Reflector runs in the stateful mode | session. Since the Session-Reflector runs in the stateful mode | |||
(defined in Section 4.2 [I-D.ietf-ippm-stamp]), it is the Session- | (defined in Section 4.2 [I-D.ietf-ippm-stamp]), it is the Session- | |||
Reflector's Sequence Number of the previous reflected packet. | Reflector's Sequence Number of the previous reflected packet. | |||
o Timestamp - eight octets long field, with the format indicated by | o Follow-up Timestamp - eight octets long field, with the format | |||
the Z flag of the Error Estimate field as described in Section 4.1 | indicated by the Z flag of the Error Estimate field of the packet | |||
transmitted by a Session-Reflector, as described in Section 4.1 | ||||
[I-D.ietf-ippm-stamp]. It carries the timestamp when the | [I-D.ietf-ippm-stamp]. It carries the timestamp when the | |||
reflected packet with the specified sequence number was sent.. | reflected packet with the specified sequence number was sent.. | |||
o Timestamp M(ode) - one octet long field that characterizes the | o Timestamp M(ode) - one octet long field that characterizes the | |||
method by which the entity that transmits a reflected STAMP packet | method by which the entity that transmits a reflected STAMP packet | |||
obtained the timestamp. The value is one of the listed in | obtained the Follow-up Timestamp. The value is one of the listed | |||
Table 6. | in Table 6. | |||
o Reserved - the field MUST be zeroed on transmission and ignored on | o Reserved - the three octest-long field. Its value MUST be zeroed | |||
receipt. | on transmission and ignored on receipt. | |||
4.8. HMAC TLV | ||||
The STAMP authenticated mode protects the integrity of data collected | ||||
in STAMP base packet. STAMP extensions are designed to provide | ||||
valuable information about the condition of a network, and protecting | ||||
the integrity of that data is also essential. The keyed Hashed | ||||
Message Authentication Code (HMAC) TLV MUST be included in a STAMP | ||||
test packet in the authenticated mode, excluding when the only TLV | ||||
present is Extra Padding TLV. The HMAC TLV MUST follow all TLVs | ||||
included in a STAMP test packet, except for the Extra Padding TLV. | ||||
The HMAC TLV MAY be used to protect the integrity of STAMP extensions | ||||
in STAMP 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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| HMAC Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | ||||
| HMAC | | ||||
| | | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Figure 12: HMAC TLV | ||||
where fields are defined as follows: | ||||
o HMAC Type - is two octets long field, value TBA8 allocated by IANA | ||||
Section 5.1. | ||||
o Length - two octets long field, equals 16 octets. | ||||
o HMAC - is 16 octets long field that carries HMAC digest of the | ||||
text of all preceding TLVs. | ||||
As defined in [I-D.ietf-ippm-stamp], STAMP uses HMAC-SHA-256 | ||||
truncated to 128 bits ([RFC4868]). All considerations regarding | ||||
using the key and key distribution and management listed in | ||||
Section 4.4 of [I-D.ietf-ippm-stamp] are fully applicable to the use | ||||
of the HMAC TLV. HMAC is calculated as defined in [RFC2104] over | ||||
text as the concatenation of all preceding TLVs. The digest then | ||||
MUST be truncated to 128 bits and written into the HMAC field. In | ||||
the authenticated mode, HMAC MUST be verified before using any data | ||||
in the included STAMP TLVs. If HMAC verification by the Session- | ||||
Reflector fails, then an ICMP Parameter Problem message MUST be | ||||
generated (with consideration of limiting the rate of error | ||||
messages). The Code value MUST be set to 0 and the Pointer | ||||
identifying HMAC Type. Also, both Session-Sender and Session- | ||||
Reflector SHOULD log the notification that HMAC verification of STAMP | ||||
TLVs failed. The packet that failed HMAC verification MUST be | ||||
dropped. | ||||
5. IANA Considerations | 5. IANA Considerations | |||
5.1. STAMP TLV Registry | 5.1. STAMP TLV Registry | |||
IANA is requested to create the STAMP TLV Type registry. All code | IANA is requested to create the STAMP TLV Type registry. All code | |||
points in the range 1 through 32759 in this registry shall be | points in the range 1 through 32759 in this registry shall be | |||
allocated according to the "IETF Review" procedure as specified in | allocated according to the "IETF Review" procedure as specified in | |||
[RFC8126]. Code points in the range 32760 through 65279 in this | [RFC8126]. Code points in the range 32760 through 65279 in this | |||
registry shall be allocated according to the "First Come First | registry shall be allocated according to the "First Come First | |||
skipping to change at page 15, line 12 ¶ | skipping to change at page 19, line 42 ¶ | |||
This document defines the following new values in the STAMP TLV Type | This document defines the following new values in the STAMP TLV Type | |||
registry: | registry: | |||
+-------+-----------------------+---------------+ | +-------+-----------------------+---------------+ | |||
| Value | Description | Reference | | | Value | Description | Reference | | |||
+-------+-----------------------+---------------+ | +-------+-----------------------+---------------+ | |||
| TBA1 | Extra Padding | This document | | | TBA1 | Extra Padding | This document | | |||
| TBA2 | Location | This document | | | TBA2 | Location | This document | | |||
| TBA3 | Timestamp Information | This document | | | TBA3 | Timestamp Information | This document | | |||
| TBA4 | Class of Service | This document | | | TBA4 | Class of Service | This document | | |||
| TBA5 | Direct Measurement | This document | | ||||
| TBA6 | Access Report | This document | | | TBA6 | Access Report | This document | | |||
| TBA7 | Follow-up Telemetry | This document | | | TBA7 | Follow-up Telemetry | This document | | |||
| TBA8 | HMAC | This document | | ||||
+-------+-----------------------+---------------+ | +-------+-----------------------+---------------+ | |||
Table 2: STAMP Types | Table 2: STAMP Types | |||
5.2. Synchronization Source Sub-registry | 5.2. Synchronization Source Sub-registry | |||
IANA is requested to create Synchronization Source sub-registry as | IANA is requested to create Synchronization Source sub-registry as | |||
part of STAMP TLV Type registry. All code points in the range 1 | part of STAMP TLV Type registry. All code points in the range 1 | |||
through 127 in this registry shall be allocated according to the | through 127 in this registry shall be allocated according to the | |||
"IETF Review" procedure as specified in [RFC8126]. Code points in | "IETF Review" procedure as specified in [RFC8126]. Code points in | |||
skipping to change at page 19, line 12 ¶ | skipping to change at page 23, line 36 ¶ | |||
Phone: +86 18105183663 | Phone: +86 18105183663 | |||
Email: guo.jun2@zte.com.cn | Email: guo.jun2@zte.com.cn | |||
9. References | 9. References | |||
9.1. Normative References | 9.1. Normative References | |||
[I-D.ietf-ippm-stamp] | [I-D.ietf-ippm-stamp] | |||
Mirsky, G., Jun, G., Nydell, H., and R. Foote, "Simple | Mirsky, G., Jun, G., Nydell, H., and R. Foote, "Simple | |||
Two-way Active Measurement Protocol", draft-ietf-ippm- | Two-way Active Measurement Protocol", draft-ietf-ippm- | |||
stamp-09 (work in progress), October 2019. | stamp-10 (work in progress), October 2019. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC5357] Hedayat, K., Krzanowski, R., Morton, A., Yum, K., and J. | [RFC5357] Hedayat, K., Krzanowski, R., Morton, A., Yum, K., and J. | |||
Babiarz, "A Two-Way Active Measurement Protocol (TWAMP)", | Babiarz, "A Two-Way Active Measurement Protocol (TWAMP)", | |||
RFC 5357, DOI 10.17487/RFC5357, October 2008, | RFC 5357, DOI 10.17487/RFC5357, October 2008, | |||
<https://www.rfc-editor.org/info/rfc5357>. | <https://www.rfc-editor.org/info/rfc5357>. | |||
[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 | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
Writing an IANA Considerations Section in RFCs", BCP 26, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
RFC 8126, DOI 10.17487/RFC8126, June 2017, | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
<https://www.rfc-editor.org/info/rfc8126>. | <https://www.rfc-editor.org/info/rfc8126>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
9.2. Informative References | 9.2. Informative References | |||
[IEEE.1588.2008] | [IEEE.1588.2008] | |||
"Standard for a Precision Clock Synchronization Protocol | "Standard for a Precision Clock Synchronization Protocol | |||
for Networked Measurement and Control Systems", | for Networked Measurement and Control Systems", | |||
IEEE Standard 1588, March 2008. | IEEE Standard 1588, March 2008. | |||
[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>. | ||||
[RFC4868] Kelly, S. and S. Frankel, "Using HMAC-SHA-256, HMAC-SHA- | ||||
384, and HMAC-SHA-512 with IPsec", RFC 4868, | ||||
DOI 10.17487/RFC4868, May 2007, | ||||
<https://www.rfc-editor.org/info/rfc4868>. | ||||
[RFC5905] Mills, D., Martin, J., Ed., Burbank, J., and W. Kasch, | [RFC5905] Mills, D., Martin, J., Ed., Burbank, J., and W. Kasch, | |||
"Network Time Protocol Version 4: Protocol and Algorithms | "Network Time Protocol Version 4: Protocol and Algorithms | |||
Specification", RFC 5905, DOI 10.17487/RFC5905, June 2010, | Specification", RFC 5905, DOI 10.17487/RFC5905, June 2010, | |||
<https://www.rfc-editor.org/info/rfc5905>. | <https://www.rfc-editor.org/info/rfc5905>. | |||
[TS23501] 3GPP (3rd Generation Partnership Project), "Technical | [TS23501] 3GPP (3rd Generation Partnership Project), "Technical | |||
Specification Group Services and System Aspects; System | Specification Group Services and System Aspects; System | |||
Architecture for the 5G System; Stage 2 (Release 16)", | Architecture for the 5G System; Stage 2 (Release 16)", | |||
3GPP TS23501, 2019. | 3GPP TS23501, 2019. | |||
End of changes. 41 change blocks. | ||||
97 lines changed or deleted | 257 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |