rfc8972xml2.original.xml | rfc8972.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="utf-8"?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | ||||
<?rfc toc="yes"?> | ||||
<?rfc tocompact="yes"?> | ||||
<?rfc tocdepth="3"?> | ||||
<?rfc tocindent="yes"?> | ||||
<?rfc symrefs="yes"?> | ||||
<?rfc sortrefs="yes"?> | ||||
<?rfc comments="yes"?> | ||||
<?rfc inline="yes"?> | ||||
<?rfc compact="yes"?> | ||||
<?rfc subcompact="no"?> | ||||
<rfc category="std" docName="draft-ietf-ippm-stamp-option-tlv-10" ipr="trust2009 | ||||
02" updates="8762"> | ||||
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
<front> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
<title abbrev="STAMP Extensions">Simple Two-way Active Measurement Protoc | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" | |||
ol Optional Extensions</title> | docName="draft-ietf-ippm-stamp-option-tlv-10" | |||
number="8972" | ||||
ipr="trust200902" | ||||
updates="8762" | ||||
obsoletes="" | ||||
submissionType="IETF" | ||||
category="std" | ||||
consensus="true" | ||||
xml:lang="en" | ||||
tocInclude="true" | ||||
tocDepth="3" | ||||
symRefs="true" | ||||
sortRefs="true" | ||||
version="3"> | ||||
<front> | ||||
<title abbrev="STAMP Extensions">Simple Two-Way Active Measurement Protocol | ||||
Optional Extensions</title> | ||||
<seriesInfo name="RFC" value="8972"/> | ||||
<author fullname="Greg Mirsky" initials="G." surname="Mirsky"> | <author fullname="Greg Mirsky" initials="G." surname="Mirsky"> | |||
<organization>ZTE Corp.</organization> | <organization>ZTE Corp.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street/> | <street/> | |||
<city/> | <city/> | |||
<code/> | <code/> | |||
<country/> | <country/> | |||
</postal> | </postal> | |||
<email>gregimirsky@gmail.com</email> | <email>gregimirsky@gmail.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Xiao Min" initials="X." surname="Min"> | ||||
<author fullname="Xiao Min" initials="X." surname="Min"> | ||||
<organization>ZTE Corp.</organization> | <organization>ZTE Corp.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street/> | <street/> | |||
<city/> | <city/> | |||
<code/> | <code/> | |||
<country/> | <country/> | |||
</postal> | </postal> | |||
<email>xiao.min2@zte.com.cn</email> | <email>xiao.min2@zte.com.cn</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<!-- | ||||
<author fullname="Guo Jun" initials="G." surname="Jun"> | ||||
<organization>ZTE Corporation</organization> | ||||
<address> | ||||
<postal> | ||||
<street>68# Zijinghua Road</street> | ||||
<city>Nanjing</city> | ||||
<region>Jiangsu</region> | ||||
<code>210012</code> | ||||
<country>P.R.China</country> | ||||
</postal> | ||||
<phone>+86 18105183663</phone> | ||||
<email>guo.jun2@zte.com.cn</email> | ||||
</address> | ||||
</author> | ||||
--> | ||||
<author fullname="Henrik Nydell" initials="H." surname="Nydell"> | <author fullname="Henrik Nydell" initials="H." surname="Nydell"> | |||
<organization>Accedian Networks</organization> | <organization>Accedian Networks</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street/> | <street/> | |||
<city/> | <city/> | |||
<code/> | <code/> | |||
<country/> | <country/> | |||
</postal> | </postal> | |||
<email>hnydell@accedian.com</email> | <email>hnydell@accedian.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="R." surname="Foote" fullname="Richard Foote"> | ||||
<author initials="R." surname="Foote" fullname="Richard Foote"> | <organization>Nokia</organization> | |||
<organization>Nokia</organization> | <address> | |||
<address> | <email>footer.foote@nokia.com </email> | |||
<email>footer.foote@nokia.com </email> | </address> | |||
</address> | </author> | |||
</author> | <author initials="A." surname="Masputra" fullname="Adi Masputra"> | |||
<organization>Apple Inc.</organization> | ||||
<author initials="A." surname="Masputra" fullname="Adi Masputra"> | <address> | |||
<organization>Apple Inc.</organization> | <postal> | |||
<address> | <street>One Apple Park Way</street> | |||
<postal> | <city>Cupertino</city> | |||
<street>One Apple Park Way</street> | <region>CA</region> | |||
<city>Cupertino</city> | <code>95014</code> | |||
<region>CA</region> | <country>United States of America</country> | |||
<code>95014</code> | </postal> | |||
<country>USA</country> | <email>adi@apple.com</email> | |||
</postal> | </address> | |||
<email>adi@apple.com</email> | </author> | |||
</address> | <author fullname="Ernesto Ruffini" initials="E." surname="Ruffini"> | |||
</author> | ||||
<author fullname="Ernesto Ruffini" initials="E." surname="Ruffini"> | ||||
<organization>OutSys</organization> | <organization>OutSys</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>via Caracciolo, 65</street> | <street>via Caracciolo, 65</street> | |||
<city>Milano</city> | <city>Milan</city> | |||
<code>20155</code> | <code>20155</code> | |||
<country>Italy</country> | <country>Italy</country> | |||
</postal> | </postal> | |||
<email>eruffini@outsys.org</email> | <email>eruffini@outsys.org</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date year="2021" month="January" /> | ||||
<date year="2020"/> | ||||
<area>Transport</area> | <area>Transport</area> | |||
<workgroup>Network Working Group</workgroup> | <workgroup>Network Working Group</workgroup> | |||
<keyword>IPPM</keyword> | ||||
<keyword>Internet-Draft</keyword> | <keyword>Performance Measurement </keyword> | |||
<abstract> | ||||
<keyword>IPPM</keyword> | <t> | |||
<keyword>Performance Measurement </keyword> | ||||
<abstract> | ||||
<t> | ||||
This document describes optional extensions to Simple | This document describes optional extensions to Simple | |||
Two-way Active Measurement Protocol (STAMP) that enable | Two-way Active Measurement Protocol (STAMP) that enable | |||
measurement of performance metrics. The document also defines | measurement of performance metrics. The document also defines | |||
a STAMP Test Session Identifier and thus updates RFC 8762. | a STAMP Test Session Identifier and thus updates RFC 8762. | |||
</t> | </t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | ||||
<middle> | <section anchor="intro" numbered="true" toc="default"> | |||
<section anchor="intro" title="Introduction"> | <name>Introduction</name> | |||
<t> | <t> | |||
Simple Two-way Active Measurement Protocol (STAMP) <xref target="RFC8762"/> defi | The Simple Two-way Active Measurement Protocol (STAMP) <xref target="RFC8762" fo | |||
ned the STAMP base functionalities. | rmat="default"/> defines the STAMP base functionalities. | |||
This document specifies the use of | This document specifies the use of | |||
optional extensions that use Type-Length-Value (TLV) encoding. | optional extensions that use Type-Length-Value (TLV) encoding. | |||
Such extensions enhance the STAMP base functions, | Such extensions enhance the STAMP base functions, | |||
such as measurement of one-way and round-trip delay, | such as measurement of one-way and round-trip delay, | |||
latency, packet loss, packet duplication, and | latency, packet loss, packet duplication, and | |||
out-of-order delivery of test packets. This specification defines | out-of-order delivery of test packets. This specification defines | |||
optional STAMP extensions, their formats, and the theory of operation. | optional STAMP extensions, their formats, and the theory of operation. | |||
Also, a STAMP Test Session Identifier is defined | Also, a STAMP Test Session Identifier is defined | |||
as an update of the base STAMP specification <xref target="RFC8762"/>. | as an update of the base STAMP specification <xref target="RFC8762" format="defa | |||
</t> | ult"/>. | |||
</section> | </t> | |||
</section> | ||||
<section title="Conventions Used in This Document"> | <section numbered="true" toc="default"> | |||
<section title="Acronyms"> | <name>Conventions Used in This Document</name> | |||
<t>BDS BeiDou Navigation Satellite System</t> | <section numbered="true" toc="default"> | |||
<t>BITS Building Integrated Timing Supply </t> | <name>Acronyms</name> | |||
<t>CoS Class of Service</t> | ||||
<t>DSCP Differentiated Services Code Point</t> | ||||
<t>ECN Explicit Congestion Notification</t> | ||||
<t>GLONASS Global Orbiting Navigation Satellite System</t> | ||||
<t>GPS Global Positioning System <xref target="GPS"/></t> | ||||
<t>HMAC Hashed Message Authentication Code</t> | ||||
<t>LORAN-C Long Range Navigation System Version C</t> | ||||
<t>MBZ Must Be Zero</t> | ||||
<t>NTP Network Time Protocol <xref target="RFC5905"/></t> | ||||
<t>PMF Performance Measurement Function</t> | ||||
<t>PTP Precision Time Protocol <xref target="IEEE.1588.2008"/></t> | ||||
<t>TLV Type-Length-Value</t> | ||||
<t>SSID STAMP Session Identifier</t> | ||||
<t>SSU Synchronization Supply Unit</t> | ||||
<t>STAMP Simple Two-way Active Measurement Protocol</t> | ||||
</section> | ||||
<section title="Requirements Language"> | ||||
<t> | ||||
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 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
when, and only when, they appear in all capitals, as shown here. | ||||
</t> | ||||
</section> | ||||
<dl newline="false" indent="12"> | ||||
<dt>BDS</dt><dd>BeiDou Navigation Satellite System</dd> | ||||
<dt>BITS</dt><dd>Building Integrated Timing Supply</dd> | ||||
<dt>CoS</dt><dd>Class of Service</dd> | ||||
<dt>DSCP</dt><dd>Differentiated Services Code Point</dd> | ||||
<dt>ECN</dt><dd>Explicit Congestion Notification</dd> | ||||
<dt>GLONASS</dt><dd>Global Orbiting Navigation Satellite System</dd> | ||||
<dt>GPS</dt><dd>Global Positioning System <xref target="GPS" format="default"/>< | ||||
/dd> | ||||
<dt>HMAC</dt><dd>Hashed Message Authentication Code</dd> | ||||
<dt>LORAN-C</dt><dd>Long Range Navigation System Version C</dd> | ||||
<dt>MBZ</dt><dd>Must Be Zero</dd> | ||||
<dt>NTP</dt><dd>Network Time Protocol <xref target="RFC5905" format="default"/>< | ||||
/dd> | ||||
<dt>PMF</dt><dd>Performance Measurement Function</dd> | ||||
<dt>PTP</dt><dd>Precision Time Protocol <xref target="IEEE.1588.2008" format="de | ||||
fault"/></dd> | ||||
<dt>RP</dt><dd>Reverse Path</dd> | ||||
<dt>SMI</dt><dd>Structure of Management Information</dd> | ||||
<dt>SSID</dt><dd>STAMP Session Identifier</dd> | ||||
<dt>SSU</dt><dd>Synchronization Supply Unit</dd> | ||||
<dt>STAMP</dt><dd>Simple Two-way Active Measurement Protocol</dd> | ||||
<dt>TLV</dt><dd>Type-Length-Value</dd> | ||||
</dl> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section anchor="test-identifier-sec" title="STAMP Test Session Identifier"> | <name>Requirements Language</name> | |||
<t> | <t> | |||
The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | ||||
IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | ||||
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | ||||
RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
be interpreted as | ||||
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
when, and only when, they appear in all capitals, as shown here. | ||||
</t> | ||||
</section> | ||||
</section> | ||||
<section anchor="test-identifier-sec" numbered="true" toc="default"> | ||||
<name>STAMP Test Session Identifier</name> | ||||
<t> | ||||
The STAMP Session-Sender transmits test packets to the STAMP Session-Reflector. The STAMP Session-Reflector | The STAMP Session-Sender transmits test packets to the STAMP Session-Reflector. The STAMP Session-Reflector | |||
receives the Session-Sender's packet and acts according to the configuration and optional control information | receives the Session-Sender's packet and acts according to the configuration and optional control information | |||
communicated in the Session-Sender's test packet. STAMP defines two different te st packet formats, one for | communicated in the Session-Sender's test packet. STAMP defines two different te st packet formats: one for | |||
packets transmitted by the STAMP Session-Sender and one for packets | packets transmitted by the STAMP Session-Sender and one for packets | |||
transmitted by the STAMP Session-Reflector. STAMP supports two modes: | transmitted by the STAMP Session-Reflector. STAMP supports two modes: | |||
unauthenticated and authenticated. Unauthenticated STAMP test packets | unauthenticated and authenticated. Unauthenticated STAMP test packets | |||
are compatible on the wire with unauthenticated TWAMP-Test <xref target="RFC5 357"/> | are compatible on the wire with unauthenticated TWAMP-Test <xref target="RFC5 357" format="default"/> | |||
packets. | packets. | |||
</t> | </t> | |||
<t> | <t> | |||
By default, STAMP uses symmetrical packets, i.e., the size of the packet | By default, STAMP uses symmetrical packets, i.e., the size of the packet | |||
transmitted by the Session-Reflector equals the size of | transmitted by the Session-Reflector equals the size of | |||
the packet received by the Session-Reflector. | the packet received by the Session-Reflector. | |||
</t> | </t> | |||
<t> | <t> | |||
A STAMP Session is identified by the 4-tuple (source and destination IP addres ses, | A STAMP Session is identified by the 4-tuple (source and destination IP addres ses, | |||
source and destination UDP port numbers). A STAMP Session-Sender | source and destination UDP port numbers). A STAMP Session-Sender | |||
MAY generate a locally unique STAMP Session Identifier (SSID). | <bcp14>MAY</bcp14> generate a locally unique STAMP Session Identifier (SSID). | |||
The SSID is a two-octet-long non-zero unsigned integer. SSID generation | The SSID is a two-octet-long, non-zero unsigned integer. The SSID generation | |||
policy is implementation-specific. <xref target="I-D.gont-numeric-ids-generat | policy is implementation specific. <xref target="I-D.irtf-pearg-numeric-ids-g | |||
ion"/> | eneration" format="default"/> thoroughly analyzes common algorithms for identifi | |||
thoroughly analyzes common algorithms for identifier generation and their vul | er generation and their vulnerabilities. | |||
nerabilities. | For example, an implementation can use the algorithms described in <xref targ | |||
For example, an implementation can use algorithms described in Section 7.1 of | et="I-D.irtf-pearg-numeric-ids-generation" sectionFormat="of" section="7.1"/>. | |||
<xref target="I-D.gont-numeric-ids-generation"/>. | An implementation <bcp14>MUST NOT</bcp14> assign the same identifier to diffe | |||
An implementation MUST NOT assign the same identifier to different STAMP test | rent STAMP test sessions. | |||
sessions. | A Session-Sender <bcp14>MAY</bcp14> use the SSID to identify | |||
A Session-Sender MAY use the SSID to identify | a STAMP test session. If the SSID is used, it <bcp14>MUST</bcp14> be present i | |||
a STAMP test session. If the SSID is used, it MUST be present in each test pac | n each test packet of the given test session. | |||
ket of the given test session. | In the unauthenticated mode, the SSID is located as displayed in <xref target= | |||
In the unauthenticated mode, the SSID is located as displayed in <xref target= | "session-sender-unauthenticated-format" format="default"/>. | |||
"session-sender-unauthenticated-format"/>. | </t> | |||
<figure align="left" anchor="session-sender-unauthenticated-format" t | <figure anchor="session-sender-unauthenticated-format"> | |||
itle="The format of an extended STAMP Session-Sender test packet in unauthentica | <name>The Format of an Extended STAMP Session-Sender Test Packet in Unau | |||
ted mode"> | thenticated Mode</name> | |||
<artwork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
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 | SSID | | | Error Estimate | SSID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
skipping to change at line 248 ¶ | skipping to change at line 212 ¶ | |||
| | | | | | |||
| MBZ (28 octets) | | | MBZ (28 octets) | | |||
| | | | | | |||
| | | | | | |||
| | | | | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ TLVs ~ | ~ TLVs ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
An implementation of the STAMP Session-Reflector that supports this specificat | <t> | |||
ion MUST | An implementation of the STAMP Session-Reflector that supports this specificat | |||
ion <bcp14>MUST</bcp14> | ||||
identify a STAMP Session using the SSID in combination with elements of the u sual 4-tuple | identify a STAMP Session using the SSID in combination with elements of the u sual 4-tuple | |||
for the session. Before a test session commences, a Session-Reflector MUST be | for the session. Before a test session commences, a Session-Reflector <bcp14> | |||
provisioned | MUST</bcp14> be provisioned | |||
with all the elements that identify the STAMP Session. A STAMP Session-Reflec | with all the elements that identify the STAMP Session. A STAMP Session-Reflec | |||
tor MUST discard | tor <bcp14>MUST</bcp14> discard | |||
non-matching STAMP test packet(s). The means of provisioning the STAMP Sessio | non-matching STAMP test packets. The means of provisioning the STAMP Session | |||
n identification | identification | |||
is outside the scope of this specification. | is outside the scope of this specification. | |||
<!-- If the Session-Reflector finds that | ||||
the SSID and 4-tuple combination changes during a test session, then | A conforming implementation of a STAMP Session-Reflector <bcp14>MUST</bcp14> | |||
the Session-Reflector MUST discard the non-matching packet(s) and take | copy | |||
no further action on them. | ||||
A conforming implementation of STAMP Session-Reflector MUST copy | ||||
the SSID value from the received test packet and put it into the reflected pac ket, | the SSID value from the received test packet and put it into the reflected pac ket, | |||
as displayed in <xref target="session-reflector-unauthenticated-format"/>. | as displayed in <xref target="session-reflector-unauthenticated-format" format | |||
<figure align="left" anchor="session-reflector-unauthenticated-format" t | ="default"/>. | |||
itle="The format of an extended STAMP Session-Reflector test packet in unauthent | </t> | |||
icated mode"> | <figure anchor="session-reflector-unauthenticated-format"> | |||
<artwork><![CDATA[ | <name>The Format of an Extended STAMP Session-Reflector Test Packet in U | |||
nauthenticated Mode</name> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
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 | SSID | | | Error Estimate | SSID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
skipping to change at line 290 ¶ | skipping to change at line 253 ¶ | |||
| Session-Sender Timestamp | | | Session-Sender Timestamp | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Session-Sender Error Estimate | MBZ | | | Session-Sender Error Estimate | MBZ | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|Ses-Sender TTL | MBZ | | |Ses-Sender TTL | MBZ | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ TLVs ~ | ~ TLVs ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
</t> | <t> | |||
<t> | ||||
A STAMP Session-Reflector that does not support this specification | A STAMP Session-Reflector that does not support this specification | |||
will return the zeroed SSID field in the reflected STAMP test packet. | will return the zeroed SSID field in the reflected STAMP test packet. | |||
The Session-Sender MAY stop the session if it receives a zeroed SSID field. An | The Session-Sender <bcp14>MAY</bcp14> stop the session if it receives a zeroed | |||
implementation | SSID field. An implementation | |||
of a Session-Sender MUST support control of its behavior in such a scenario. | of a Session-Sender <bcp14>MUST</bcp14> support control of its behavior in such | |||
If the test session is not stopped, the Session-Sender, can, for example, | a scenario. | |||
send a base STAMP packet <xref target="RFC8762"/> or continue transmitting STAM | If the test session is not stopped, the Session-Sender can, for example, | |||
P test packets with the SSID. | send a base STAMP packet <xref target="RFC8762" format="default"/> or continue | |||
transmitting STAMP test packets with the SSID. | ||||
</t> | </t> | |||
<t> | <t> | |||
Location of the SSID field in the authenticated mode | The location of the SSID field in the authenticated mode | |||
is shown in <xref target="session-sender-authenticated-format"/> and <xref tar | is shown in Figures <xref target="session-sender-authenticated-format" format= | |||
get="session-reflector-authenticated-format"/>. | "counter"/> and <xref target="session-reflector-authenticated-format" format="co | |||
<figure align="left" anchor="session-sender-authenticated-format" title | unter"/>. | |||
="Base STAMP Session-Sender test packet format in authenticated mode"> | </t> | |||
<artwork><![CDATA[ | <figure anchor="session-sender-authenticated-format"> | |||
<name>The Format of an Extended STAMP Session-Sender Test Packet in Auth | ||||
enticated Mode</name> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
| MBZ (12 octets) | | | MBZ (12 octets) | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Timestamp | | | Timestamp | | |||
skipping to change at line 330 ¶ | skipping to change at line 294 ¶ | |||
| MBZ (68 octets) | | | MBZ (68 octets) | | |||
~ ~ | ~ ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
| HMAC (16 octets) | | | HMAC (16 octets) | | |||
| | | | | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ TLVs ~ | ~ TLVs ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork></figure> | |||
</figure> | <figure anchor="session-reflector-authenticated-format"> | |||
<name>The Format of an Extended STAMP Session-Reflector Test Packet in A | ||||
<figure align="left" anchor="session-reflector-authenticated-format" tit | uthenticated Mode</name> | |||
le="Base STAMP Session-Reflector test packet format in authenticated mode"> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
<artwork><![CDATA[ | ||||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| MBZ (12 octets) | | | MBZ (12 octets) | | |||
| | | | | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Timestamp | | | Timestamp | | |||
skipping to change at line 383 ¶ | skipping to change at line 346 ¶ | |||
| MBZ (15 octets) | | | MBZ (15 octets) | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| HMAC (16 octets) | | | HMAC (16 octets) | | |||
| | | | | | |||
| | | | | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ TLVs ~ | ~ TLVs ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
</t> | </section> | |||
</section> | <section anchor="stamp-extension-section" numbered="true" toc="default"> | |||
<name>TLV Extensions to STAMP</name> | ||||
<section anchor="stamp-extension-section" title="TLV Extensions to STAMP"> | ||||
<t> | <t> | |||
The Type-Length-Value (TLV) encoding scheme provides a flexible | The Type-Length-Value (TLV) encoding scheme provides a flexible | |||
extension mechanism for optional informational elements. | extension mechanism for optional informational elements. | |||
TLV is an optional field in the STAMP test packet. Multiple TLVs | TLV is an optional field in the STAMP test packet. Multiple TLVs | |||
MAY be placed in a STAMP test packet. Additional TLVs | <bcp14>MAY</bcp14> be placed in a STAMP test packet. Additional TLVs | |||
may be enclosed within a given TLV, subject to the semantics of the | may be enclosed within a given TLV, subject to the semantics of the | |||
(outer) TLV in question. | (outer) TLV in question. | |||
TLVs have a one-octet-long STAMP TLV Flags field, a one-octet-long Type field, and | TLVs have a one-octet-long STAMP TLV Flags field, a one-octet-long Type field, and | |||
a two-octet-long Length field that is equal to the length of the Value field i n octets. | a two-octet-long Length field that is equal to the length of the Value field i n octets. | |||
If a Type value for TLV or sub-TLV is in the range for Vendor | If a Type value for a TLV or sub-TLV is in the range for | |||
Private Use, the Length MUST be at least 4, and the first four octets | Private Use <xref target="RFC8126"/>, the length <bcp14>MUST</bcp14> be at le | |||
MUST be that vendor's Structure of | ast 4, and the first four octets | |||
<bcp14>MUST</bcp14> be that vendor's Structure of | ||||
Management Information (SMI) Private Enterprise Code, as recorded in | Management Information (SMI) Private Enterprise Code, as recorded in | |||
IANA's SMI Private Enterprise Codes sub-registry, in network octet | IANA's "SMI Network Management Private Enterprise Codes" subregistry, in netw ork octet | |||
order. The rest of the Value field is private to the vendor. | order. The rest of the Value field is private to the vendor. | |||
The following sections describe the use of TLVs for STAMP | The following sections describe the use of TLVs for STAMP | |||
that extend the STAMP capability beyond its base specification. | that extend the STAMP capability beyond its base specification. | |||
<figure align="left" anchor="tlv-format" title="TLV Format in a STAMP | </t> | |||
Extended Packet"> | <figure anchor="tlv-format"> | |||
<artwork><![CDATA[ | <name>TLV Format in a STAMP Extended Packet</name> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|STAMP TLV Flags| Type | Length | | |STAMP TLV Flags| Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Value ~ | ~ Value ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
where fields are defined as the following: | <t> | |||
<list style="symbols"> | The fields are defined as follows: | |||
<t>STAMP TLV Flags - eight-bit-long field. Detailed format and interpret | </t> | |||
ation of flags defined in this specification is below.</t> | <dl spacing="normal" newline="false"> | |||
<t>Type - one-octet-long field that characterizes the interpretation of | <dt>STAMP TLV Flags:</dt><dd>An eight-bit-long field. The detailed forma | |||
the Value field. It is allocated by IANA, as specified in <xref target=" | t and interpretation of flags defined in this specification are below.</dd> | |||
iana-stamp-tlv-registry"/>.</t> | <dt>Type:</dt><dd>A one-octet-long field that characterizes the interpre | |||
<t>Length - two-octet-long field equal to the length of the Value field i | tation of | |||
n octets.</t> | the Value field. It is allocated by IANA, as specified in <xref target=" | |||
<t>Value - a variable-length field. Its interpretation and encoding is de | iana-stamp-tlv-registry" format="default"/>.</dd> | |||
termined by the value of the Type field.</t> | <dt>Length:</dt><dd>A two-octet-long field equal to the length of the Va | |||
</list> | lue field in octets.</dd> | |||
All multibyte fields in TLVs defined in this specification are in network | <dt>Value:</dt><dd>A variable-length field. Its interpretation and encod | |||
byte order. | ing are determined by the value of the Type field.</dd> | |||
</t> | </dl> | |||
<t> | <t> | |||
The format of the STAMP TLV Flags displayed in <xref target="tlv-flags-format"/> | All multi-byte fields in TLVs defined in this specification are in networ | |||
and the location of flags is according to <xref target="iana-tlv-flags-reg"/>. | k byte order. | |||
<figure align="left" anchor="tlv-flags-format" title="STAMP TLV Flags | </t> | |||
Format"> | ||||
<artwork><![CDATA[ | <t> | |||
The format of the STAMP TLV Flags is displayed in <xref target="tlv-flags-format | ||||
" format="default"/>, and the location of flags is defined in <xref target="iana | ||||
-tlv-flags-reg" format="default"/>. | ||||
</t> | ||||
<figure anchor="tlv-flags-format"> | ||||
<name>STAMP TLV Flags Format</name> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
|U|M|I|R|R|R|R|R| | |U|M|I|R|R|R|R|R| | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<t> | ||||
where fields are defined as the following: | The fields are defined as follows: | |||
<list style="symbols"> | </t> | |||
<t>U (Unrecognized) is a one-bit flag. | <dl newline="false" spacing="normal"> | |||
A Session-Sender MUST set the U flag to 1 before transmitting an extende | <dt>U (Unrecognized):</dt><dd>A one-bit flag. | |||
d STAMP test packet. | A Session-Sender <bcp14>MUST</bcp14> set the U flag to 1 before transmit | |||
A Session-Reflector MUST set the U flag to 1 if the Session-Reflector ha | ting an extended STAMP test packet. | |||
s not understood the TLV. | A Session-Reflector <bcp14>MUST</bcp14> set the U flag to 1 if the Sessi | |||
Otherwise, the Session-Reflector MUST set the U flag in the reflected pa | on-Reflector has not understood the TLV. | |||
cket to 0.</t> | Otherwise, the Session-Reflector <bcp14>MUST</bcp14> set the U flag in t | |||
<t>M (Malformed) is a one-bit flag. | he reflected packet to 0.</dd> | |||
A Session-Sender MUST set the M flag to 0 before transmitting an extende | <dt>M (Malformed):</dt><dd>A one-bit flag. | |||
d STAMP test packet. | A Session-Sender <bcp14>MUST</bcp14> set the M flag to 0 before transmit | |||
A Session-Reflector MUST set the M flag to 1 if the Session-Reflector de | ting an extended STAMP test packet. | |||
termined the TLV is malformed, | A Session-Reflector <bcp14>MUST</bcp14> set the M flag to 1 if the Sessi | |||
on-Reflector determined the TLV is malformed, | ||||
i.e., the Length field value is not valid for the particular type, or | i.e., the Length field value is not valid for the particular type, or | |||
the remaining length of the extended STAMP packet is less than the size of the TLV. | the remaining length of the extended STAMP packet is less than the size of the TLV. | |||
Otherwise, the Session-Reflector MUST set the M flag in the reflected pa | Otherwise, the Session-Reflector <bcp14>MUST</bcp14> set the M flag in t | |||
cket to 0. | he reflected packet to 0. | |||
</t> | </dd> | |||
<t>I (Integrity) is a one-bit flag. | <dt>I (Integrity):</dt><dd>A one-bit flag. | |||
A Session-Sender MUST set the I flag to 0 before transmitting an extende | A Session-Sender <bcp14>MUST</bcp14> set the I flag to 0 before transmit | |||
d STAMP test packet. | ting an extended STAMP test packet. | |||
A Session-Reflector MUST set the I flag to 1 if the STAMP extensions hav | A Session-Reflector <bcp14>MUST</bcp14> set the I flag to 1 if the STAMP | |||
e failed HMAC verification (<xref target="hmac-sec"/>). | extensions have failed HMAC verification (<xref target="hmac-sec" format="defau | |||
Otherwise, the Session-Reflector MUST set the I flag in the reflected pa | lt"/>). | |||
cket to 0.</t> | Otherwise, the Session-Reflector <bcp14>MUST</bcp14> set the I flag in t | |||
<t>R - reserved flags for future use. These flags MUST be zeroed on trans | he reflected packet to 0.</dd> | |||
mit and ignored on receipt.</t> | <dt>R:</dt><dd>Reserved flags for future use. These flags <bcp14>MUST</b | |||
</list> | cp14> be zeroed on transmit and ignored on receipt.</dd> | |||
</t> | </dl> | |||
<t> | <t> | |||
A STAMP node, whether Session-Sender or Session-Reflector, receiving a test pack | A STAMP node, whether Session-Sender or Session-Reflector, receiving a test pack | |||
et MUST | et <bcp14>MUST</bcp14> | |||
determine whether the packet is a base STAMP packet or includes one or more TLVs | determine whether the packet is a base STAMP packet or whether it includes one o | |||
. | r more TLVs. | |||
The node MUST compare the value in the Length field of the UDP header and | The node <bcp14>MUST</bcp14> compare the value in the Length field of the UDP he | |||
the length of the base STAMP test packet in the mode, unauthenticated or authent | ader and | |||
icated based | the length of the base STAMP test packet in the mode, unauthenticated or authent | |||
icated, based | ||||
on the configuration of the particular STAMP test session. If the difference bet ween the two values is | on the configuration of the particular STAMP test session. If the difference bet ween the two values is | |||
larger than the length of the UDP header, then the test packet includes one or m ore STAMP TLVs | greater than the length of the UDP header, then the test packet includes one or more STAMP TLVs | |||
that immediately follow the base STAMP test packet. | that immediately follow the base STAMP test packet. | |||
A Session-Reflector that does not support STAMP extensions will not process but | A Session-Reflector that does not support STAMP extensions will not process but | |||
copy them into the reflected packet, as defined in Section 4.3 <xref target="RFC | copy them into the reflected packet, as defined in <xref | |||
8762"/>. | target="RFC8762" sectionFormat="of" section="4.3"/>. | |||
A Session-Reflector that supports TLVs will indicate specific TLVs that | A Session-Reflector that supports TLVs will indicate specific TLVs that | |||
it did not process by setting the U flag to 1 in those TLVs. | it did not process by setting the U flag to 1 in those TLVs. | |||
</t> | </t> | |||
<t> | <t> | |||
A STAMP Session-Sender that has received a reflected STAMP test packet with exte | A STAMP Session-Sender that has received a reflected STAMP test packet with exte | |||
nsion TLVs MUST validate each TLV: | nsion TLVs <bcp14>MUST</bcp14> validate each TLV: | |||
<list style="symbol"> | ||||
<t> | ||||
If the U flag is set, the STAMP system MUST skip the processing of the TLV. | ||||
</t> | ||||
<t> | ||||
If the M flag is set, the STAMP system MUST stop processing the remainder of the | ||||
extended STAMP packet. | ||||
</t> | ||||
<t> | ||||
If the I flag is set, the STAMP system MUST discard all TLVs and | ||||
MUST stop processing the remainder of the extended STAMP packet. | ||||
</t> | </t> | |||
<t> | <ul spacing="normal"> | |||
<li> | ||||
If the U flag is set, the STAMP system <bcp14>MUST</bcp14> skip the processing o | ||||
f the TLV. | ||||
</li> | ||||
<li> | ||||
If the M flag is set, the STAMP system <bcp14>MUST</bcp14> stop processing the r | ||||
emainder of the extended STAMP packet. | ||||
</li> | ||||
<li> | ||||
If the I flag is set, the STAMP system <bcp14>MUST</bcp14> discard all TLVs and | ||||
<bcp14>MUST</bcp14> stop processing the remainder of the extended STAMP packet. | ||||
</li> | ||||
<li> | ||||
If an implementation of a Session-Reflector does not recognize the Type field va lue, | If an implementation of a Session-Reflector does not recognize the Type field va lue, | |||
it MUST include a copy of the TLV into the reflected STAMP packet. | it <bcp14>MUST</bcp14> include a copy of the TLV in the reflected STAMP packet. | |||
The Session-Reflector MUST set the U flag to 1. | The Session-Reflector <bcp14>MUST</bcp14> set the U flag to 1. | |||
The Session-Reflector MUST skip the processing of the unrecognized TLV. | The Session-Reflector <bcp14>MUST</bcp14> skip the processing of the unrecognize | |||
</t> | d TLV. | |||
<t> | </li> | |||
If a TLV is malformed, the processing of extension TLVs MUST be | <li> | |||
stopped. The Session-Reflector MUST copy the remainder of the received extended | If a TLV is malformed, the processing of extension TLVs <bcp14>MUST</bcp14> be | |||
STAMP packet into the reflected STAMP packet. | stopped. The Session-Reflector <bcp14>MUST</bcp14> copy the remainder of the rec | |||
The Session-Reflector MUST set the M flag to 1. | eived extended STAMP packet into the reflected STAMP packet. | |||
</t> | The Session-Reflector <bcp14>MUST</bcp14> set the M flag to 1. | |||
</list> | </li> | |||
<!-- | </ul> | |||
An operator MUST be notified of the error. Detected error events MAY be logged. | <t> | |||
Note that the rate of logging MUST be controlled. | ||||
</t> | </t> | |||
<section anchor="padding-tlv-section" numbered="true" toc="default"> | ||||
<name>Extra Padding TLV</name> | ||||
<section anchor="padding-tlv-section" title="Extra Padding TLV"> | <figure anchor="padding-tlv-figuret"> | |||
<t> | <name>Extra Padding TLV</name> | |||
<figure align="left" anchor="padding-tlv-figuret" title="Extra Padding T | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
LV"> | ||||
<artwork><![CDATA[ | ||||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|STAMP TLV Flags|Extra Pad Type | Length | | |STAMP TLV Flags| Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
~ Extra Padding ~ | ~ Extra Padding ~ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
where fields are defined as the following: | <t> | |||
<list style="symbols"> | The fields are defined as follows: | |||
<t>STAMP TLV Flags - is an eight-bit-long field. Its format is presented | </t> | |||
in <xref target="tlv-flags-format"/>.</t> | <dl spacing="normal" newline="false"> | |||
<t>Extra Padding Type - is a one-octet-long field, value TBA1 allocated | <dt>STAMP TLV Flags:</dt><dd>An eight-bit-long field. Its format is pr | |||
by IANA <xref target="iana-stamp-tlv-registry"/>.</t> | esented in <xref target="tlv-flags-format" format="default"/>.</dd> | |||
<t>Length - two-octet-long field equal to the length of the Extra Padding | <dt>Type:</dt><dd>A one-octet-long field. Value 1 has been allocated b | |||
field in octets.</t> | y IANA (<xref target="iana-stamp-tlv-registry" format="default"/>).</dd> | |||
<t>Extra Padding - SHOULD be filled by a sequence of a pseudo-random numb | <dt>Length:</dt><dd>A two-octet-long field equal to the length of the | |||
ers. The field MAY be filled with all zeros. | Extra Padding field in octets.</dd> | |||
An implementation MUST control the type of filling of the Extra Padding f | <dt>Extra Padding:</dt><dd>This field <bcp14>SHOULD</bcp14> be filled | |||
ield.</t> | by a sequence of pseudorandom numbers. The field <bcp14>MAY</bcp14> be filled wi | |||
</list> | th all zeros. | |||
</t> | An implementation <bcp14>MUST</bcp14> control the content of the Extra Pa | |||
<t> | dding field.</dd> | |||
The Extra Padding TLV is similar to the Packet Padding field in a TWAMP-Test p | </dl> | |||
acket <xref target="RFC5357"/>. | <t> | |||
The use of the Extra Padding TLV is RECOMMENDED to perform a STAMP test using | The Extra Padding TLV is similar to the Packet Padding field in a TWAMP-Test p | |||
test packets of larger size than the base STAMP packet | acket <xref target="RFC5357" format="default"/>. | |||
<xref target="RFC8762"/>. The length of the base STAMP packet is 44 octets | The use of the Extra Padding TLV is <bcp14>RECOMMENDED</bcp14> to perform a ST | |||
AMP test using | ||||
test packets that are larger than the base STAMP packet | ||||
<xref target="RFC8762" format="default"/>. The length of the base STAMP packet | ||||
is 44 octets | ||||
in the unauthenticated mode or 112 octets in the authenticated mode. | in the unauthenticated mode or 112 octets in the authenticated mode. | |||
The Extra Padding TLV MAY be present more than one time in an extended STAMP t | The Extra Padding TLV <bcp14>MAY</bcp14> be present more than one time in an e | |||
est packet. | xtended STAMP test packet. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="location-info-section" numbered="true" toc="default"> | ||||
<name>Location TLV</name> | ||||
<section anchor="location-info-section" title="Location TLV"> | <t> | |||
<t> | STAMP Session-Senders <bcp14>MAY</bcp14> include the variable-size Location TL | |||
STAMP Session-Senders MAY include the variable-size Location TLV to query loca | V to query location information from the Session-Reflector. | |||
tion information from the Session-Reflector. | The Session-Sender <bcp14>MUST NOT</bcp14> fill any information fields except | |||
The Session-Sender MUST NOT fill any information fields except for STAMP TLV F | for the STAMP TLV Flags, Type, and Length fields. | |||
lags, Type, and Length. | The Session-Reflector <bcp14>MUST</bcp14> verify that the TLV is well formed. | |||
The Session-Reflector MUST verify that the TLV is well-formed. If it is not, t | If it is not, the Session-Reflector follows the procedure defined in <xref targe | |||
he Session-Reflector follows the procedure defined in <xref target="stamp-extens | t="stamp-extension-section" format="default"/> | |||
ion-section"/> | ||||
for a malformed TLV. | for a malformed TLV. | |||
<figure align="left" anchor="location-tlv-figuret" title="Location TLV"> | </t> | |||
<artwork><![CDATA[ | <figure anchor="location-tlv-figuret"> | |||
<name>Location TLV</name> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|STAMP TLV Flags| Location Type | Length | | |STAMP TLV Flags| Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Destination Port | Source Port | | | Destination Port | Source Port | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Sub-TLVs ~ | ~ Sub-TLVs ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
where fields are defined as the following: | <t> | |||
<list style="symbols"> | The fields are defined as follows: | |||
<t>STAMP TLV Flags - is an eight-bit-long field. Its format is present | </t> | |||
ed in <xref target="tlv-flags-format"/>.</t> | <dl spacing="normal" newline="false"> | |||
<t>Location Type - is a one-octet-long field, value TBA2 allocated by IA | <dt>STAMP TLV Flags:</dt><dd>An eight-bit-long field. Its format is pr | |||
NA <xref target="iana-stamp-tlv-registry"/>.</t> | esented in <xref target="tlv-flags-format" format="default"/>.</dd> | |||
<t>Length - two-octet-long field equal to the length of the Value field i | <dt>Type:</dt><dd>A one-octet-long field. Value 2 has been allocated b | |||
n octets.</t> | y IANA (<xref target="iana-stamp-tlv-registry" format="default"/>).</dd> | |||
<t>Destination Port - two-octet-long UDP destination port number of the | <dt>Length:</dt><dd>A two-octet-long field equal to the length of the | |||
received STAMP packet.</t> | Value field in octets.</dd> | |||
<t>Source Port - two-octet-long UDP source port number of the received S | <dt>Destination Port:</dt><dd>A two-octet-long UDP destination port nu | |||
TAMP packet.</t> | mber of the received STAMP packet.</dd> | |||
<t>Sub-TLVs - a sequence of sub-TLVs, as defined further in this section | <dt>Source Port:</dt><dd>A two-octet-long UDP source port number of th | |||
. The sub-TLVs are used by the | e received STAMP packet.</dd> | |||
<dt>Sub-TLVs:</dt><dd>A sequence of sub-TLVs, as defined further in th | ||||
is section. The sub-TLVs are used by the | ||||
Session-Sender to request location information with generic sub-TLV type s, and the | Session-Sender to request location information with generic sub-TLV type s, and the | |||
Session-Reflector responds with the corresponding more-specific sub-TLVs | Session-Reflector responds with the corresponding more-specific sub-TLVs | |||
for the type of address (e.g., IPv4 or IPv6) used at the Session-Reflect | for the type of address (e.g., IPv4 or IPv6) used at the Session-Reflect | |||
or.</t> | or.</dd> | |||
</list> | </dl> | |||
</t> | <t>Note that all fields not filled by either a Session-Sender or Session | |||
<t>Note that all fields not filled by either a Session-Sender or Session-Refle | -Reflector are transmitted with all bits set to zero.</t> | |||
ctor are transmitted with all bits set to zero.</t> | <section anchor="location-sub-tlv-sec" numbered="true" toc="default"> | |||
<name>Location Sub-TLVs</name> | ||||
<t> | ||||
A sub-TLV in the Location TLV uses the format displayed in <xref target="tlv-f | ||||
ormat" format="default"/>. | ||||
Handling of the U and M flags in the sub-TLV is as defined in <xref target="st | ||||
amp-extension-section" format="default"/>. | ||||
The I flag <bcp14>MUST</bcp14> be set by a Session-Sender and Session-Reflecto | ||||
r to 0 before transmission and its value ignored on receipt. | ||||
The following types of sub-TLVs for the Location TLV are defined in this speci | ||||
fication | ||||
(<xref target="sub-tlv-type-tbl" format="default"/> lists the Type values): | ||||
</t> | ||||
<dl newline="false" spacing="normal"> | ||||
<dt>Source MAC Address sub-TLV:</dt><dd>A 12-octet-long sub-TLV. | ||||
The Type value is 1. | ||||
The value of the Length field <bcp14>MUST</bcp14> be equal to 8. | ||||
The Value field is an 8-octet-long MBZ field that <bcp14>MUST</bcp14> be zeroe | ||||
d on transmission and ignored on receipt. | ||||
</dd> | ||||
<dt> | ||||
Source EUI-48 Address sub-TLV:</dt><dd><t>A 12-octet-long sub-TLV that inclu | ||||
des the EUI-48 source MAC address. | ||||
The Type value is 2. | ||||
The value of the Length field <bcp14>MUST</bcp14> be equal to 8.</t> | ||||
<section anchor="location-sub-tlv-sec" title="Location Sub-TLVs"> | <figure anchor="eui-48-tlv-figure"> | |||
<t> | <name>The Value Field of the Source EUI-48 Address Sub-TLV</name | |||
A sub-TLV in the Location TLV uses the format displayed in <xref target="tlv-f | > | |||
ormat"/>. | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
<!-- | 0 1 2 3 | |||
A Session-Sender MUST set the U flag in a sub-TLV to 1 before transmitting the | 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 | |||
extended STAMP test packet. | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
The Session-Reflector MUST set the sub-TLV's U flag in the reflected test pack | | EUI-48 Address | | |||
et to 0 if it supports that type of sub-TLV. | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
If the Session-Reflector doesn't recognize the sub-TLV, it must copy it from t | | | MBZ | | |||
he received packet into the reflected packet. | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
A Session-Sender MUST set the M flag in a sub-TLV to 0 before transmitting the | ||||
extended STAMP test packet. | ||||
The Session-Reflector MUST set the M flag in the sub-TLV in the reflected pack | ||||
et to 1 if the sub-TLV is malformed. The Session-Reflector MUST | ||||
stop processing the Location TLV and MUST copy the remaining part of the Locat | ||||
ion TLV into the reflected test packet. | ||||
--> | ||||
Handling of the U and M flags in the sub-TLV is as defined in <xref target="st | ||||
amp-extension-section"/>. | ||||
The I flag MUST be set by a Session-Sender and Session-Reflector to 0 before t | ||||
ransmission and its value ignored on receipt. | ||||
The following types of sub-TLV for the Location TLV are defined in this specif | ||||
ication | ||||
(type values are assigned according to <xref target="sub-tlv-type-tbl"/>): | ||||
<list style="symbols"> | ||||
<t> | ||||
Source MAC Address sub-TLV - is a 12-octet-long sub-TLV. | ||||
The Type value is TBA9. | ||||
The value of the Length field MUST equal to 8. | ||||
The Value field is an 8-octet-long MBZ field that MUST be zeroed on transmissi | ||||
on and ignored on receipt. | ||||
</t> | ||||
<t> | ||||
Source EUI-48 Address sub-TLV - is a 12-octet-long sub-TLV that includes th | ||||
e EUI-48 source MAC address. | ||||
The Type value is TBA10. | ||||
The value of the Length field MUST equal to 8. | ||||
<figure align="left" anchor="eui-48-tlv-figure" title="The Value Field | ||||
of the Source EUI-48 Address sub-TLV"> | ||||
<artwork><![CDATA[ | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| EUI-48 Address | | ||||
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | MBZ | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ]]></artwork> | |||
</figure> | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
</figure> | ||||
<t> | ||||
The Value field consists of the following fields (<xref target="eui-48-tlv-fig | ||||
ure" format="default"/>): | ||||
</t> | ||||
<dl spacing="normal"> | ||||
<dt>EUI-48 Address:</dt><dd>A six-octet-long field.</dd> | ||||
<dt>MBZ:</dt><dd>A two-octet-long field. It <bcp14>MUST</bcp14> | ||||
be zeroed on transmission and ignored on receipt.</dd> | ||||
</dl> | ||||
</dd> | ||||
The Value field consists of the following fields (<xref target="eui-48-tlv-fig | <dt>Source EUI-64 Address sub-TLV:</dt><dd>A 12-octet-long sub-TLV t | |||
ure"/>): | hat includes the EUI-64 source MAC address. | |||
<list> | The Type value is 3. | |||
<t>The EUI-48 is a six-octet-long field.</t> | The value of the Length field <bcp14>MUST</bcp14> be equal to 8. | |||
<t>Two-octet-ling MBZ field MUST be zeroed on transmission and ignored on rece | ||||
ipt.</t> | ||||
</list> | ||||
</t> | ||||
<t> | ||||
Source EUI-64 Address sub-TLV - is a 12-octet-long sub-TLV that includes the | ||||
EUI-64 source MAC address. | ||||
The Type value is TBA11. | ||||
The value of the Length field MUST equal to 8. | ||||
The Value field consists of an eight-octet-long EUI-64 field. | The Value field consists of an eight-octet-long EUI-64 field. | |||
</t> | </dd> | |||
<t> | <dt> | |||
Destination IP Address sub-TLV - is a 20-octet-long sub-TLV. | Destination IP Address sub-TLV:</dt><dd>A 20-octet-long sub-TLV. | |||
The Type value is TBA12. | The Type value is 4. | |||
The value of the Length field MUST equal to 16. | The value of the Length field <bcp14>MUST</bcp14> be equal to 16. | |||
The Value field consists of a 16-octet-long MBZ field that MUST be zero | The Value field consists of a 16-octet-long MBZ field that <bcp14>MUST< | |||
ed on transmit and ignored on receipt | /bcp14> be zeroed on transmit and ignored on receipt. | |||
</t> | </dd> | |||
<t> | <dt> | |||
Destination IPv4 Address sub-TLV - is a 20-octet-long sub-TLV that incl | Destination IPv4 Address sub-TLV:</dt><dd><t>A 20-octet-long sub-TLV tha | |||
udes IPv4 destination address. | t includes the IPv4 destination address. | |||
The Type value is TBA13. | The Type value is 5. | |||
The value of the Length field MUST equal to 16. | The value of the Length field <bcp14>MUST</bcp14> be equal to 16.</t> | |||
<figure align="left" anchor="ipv4-value-figure" title="IPv4 Addr | ||||
ess in a Sub-TLV's Value Field"> | <figure anchor="ipv4-value-figure"> | |||
<artwork><![CDATA[ | <name>IPv4 Address in a Sub-TLV's Value Field</name> | |||
0 1 2 3 | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 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 | |||
| IPv4 Address | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | IPv4 Address | | |||
~ MBZ (12 octets) ~ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | ~ MBZ (12 octets) ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ]]></artwork> | |||
</figure> | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
The Value field consists of the following fields (<xref target="ipv4-val | </figure> | |||
ue-figure"/>): | <t> | |||
<list> | The Value field consists of the following fields (<xref target="ipv4-val | |||
<t>The IPv4 Address is a four-octet-long field.</t> | ue-figure" format="default"/>): | |||
<t>12-octet-long MBZ field MUST be zeroed on transmit and ignored on rec | </t> | |||
eipt.</t> | <dl spacing="normal"> | |||
</list> | <dt>IPv4 Address:</dt><dd>A four-octet-long field.</dd> | |||
</t> | <dt>MBZ:</dt><dd>A 12-octet-long field. It <bcp14>MUST</bcp14> b | |||
<t> | e zeroed on transmit and ignored on receipt.</dd> | |||
Destination IPv6 Address sub-TLV - is a 20-octet-long sub-TLV that incl | </dl> | |||
udes IPv6 destination address. | </dd> | |||
The Type value is TBA14. | ||||
The value of the Length field MUST equal to 16. | <dt> | |||
The Value field is a 16-octet-long IP v6 Address field. | Destination IPv6 Address sub-TLV:</dt><dd>A 20-octet-long sub-TLV that i | |||
</t> | ncludes the IPv6 destination address. | |||
<t> | The Type value is 6. | |||
Source IP Address sub-TLV - is a 20-octet-long sub-TLV. | The value of the Length field <bcp14>MUST</bcp14> be equal to 16. | |||
The Type value is TBA15. | ||||
The value of the Length field MUST equal to 16. | ||||
The Value field is a 16-octet-long MBZ field that MUST be zeroed on tran | ||||
smit and ignored on receipt | ||||
</t> | ||||
<t> | ||||
Source IPv4 Address sub-TLV - is a 20-octet-long sub-TLV that includes I | ||||
Pv4 source address. | ||||
The Type value is TBA16. | ||||
The value of the Length field MUST equal to 16. | ||||
The Value field consists of the following fields (<xref target="ipv4-val | ||||
ue-figure"/>): | ||||
<list> | ||||
<t>The IPv4 Address is a four-octet-long field.</t> | ||||
<t>12-octet-long MBZ field that MUST be zeroed on transmit and ignored o | ||||
n receipt.</t> | ||||
</list> | ||||
</t> | ||||
<t> | ||||
Source IPv6 Address sub-TLV - is a 20-octet-long sub-TLV that includes I | ||||
Pv6 source address. | ||||
The Type value is TBA17. | ||||
The value of the Length field MUST equal to 16. | ||||
The Value field is a 16-octet-long IPv6 Address field. | The Value field is a 16-octet-long IPv6 Address field. | |||
</t> | </dd> | |||
</list> | <dt> | |||
</t> | Source IP Address sub-TLV:</dt><dd>A 20-octet-long sub-TLV. | |||
</section> | The Type value is 7. | |||
The value of the Length field <bcp14>MUST</bcp14> be equal to 16. | ||||
The Value field is a 16-octet-long MBZ field that <bcp14>MUST</bcp14> be | ||||
zeroed on transmit and ignored on receipt. | ||||
</dd> | ||||
<dt> | ||||
Source IPv4 Address sub-TLV:</dt><dd><t>A 20-octet-long sub-TLV that inc | ||||
ludes the IPv4 source address. | ||||
The Type value is 8. | ||||
The value of the Length field <bcp14>MUST</bcp14> be equal to 16. | ||||
The Value field consists of the following fields (<xref target="ipv4-val | ||||
ue-figure" format="default"/>):</t> | ||||
<dl spacing="normal"> | ||||
<dt>IPv4 Address:</dt><dd>A four-octet-long field.</dd> | ||||
<dt>MBZ:</dt><dd>A 12-octet-long field. It <bcp14>MUST</bcp14> b | ||||
e zeroed on transmit and ignored on receipt.</dd> | ||||
</dl> | ||||
</dd> | ||||
<dt> | ||||
Source IPv6 Address sub-TLV:</dt><dd>A 20-octet-long sub-TLV that includ | ||||
es the IPv6 source address. | ||||
The Type value is 9. | ||||
The value of the Length field <bcp14>MUST</bcp14> be equal to 16. | ||||
The Value field is a 16-octet-long IPv6 Address field. | ||||
</dd> | ||||
</dl> | ||||
</section> | ||||
<section anchor="location-operation-sec" numbered="true" toc="default"> | ||||
<name>Theory of Operation of Location TLV</name> | ||||
<t> | ||||
<section anchor="location-operation-sec" title="Theory of Operation of Locatio | ||||
n TLV"> | ||||
<t> | ||||
The Session-Reflector that received an extended STAMP packet with | The Session-Reflector that received an extended STAMP packet with | |||
the Location TLV MUST include the Location TLV of the size equal | the Location TLV <bcp14>MUST</bcp14> include in the reflected packet the Locat | |||
to the size of Location TLV in the received packet in the reflected packet. | ion TLV with a length equal | |||
Based on the local policy, the Session-Reflector MAY leave some fields unrepor | to the Location TLV length in the received packet. | |||
ted by filling them with zeroes. | Based on the local policy, the Session-Reflector <bcp14>MAY</bcp14> leave some | |||
An implementation of the stateful Session-Reflector MUST provide control for m | fields unreported by filling them with zeroes. | |||
anaging such policies. | An implementation of the stateful Session-Reflector <bcp14>MUST</bcp14> provid | |||
</t> | e control for managing such policies. | |||
<t> | </t> | |||
A Session-Sender MAY include the Source MAC Address sub-TLV in the Location TL | <t> | |||
V. | A Session-Sender <bcp14>MAY</bcp14> include the Source MAC Address sub-TLV in | |||
the Location TLV. | ||||
If the Session-Reflector receives the Location TLV that includes the Source MA C Address sub-TLV, it | If the Session-Reflector receives the Location TLV that includes the Source MA C Address sub-TLV, it | |||
MUST include the Source EUI-48 Address sub-TLV if the source MAC address of th | <bcp14>MUST</bcp14> include the Source EUI-48 Address sub-TLV if the source MA | |||
e | C address of the | |||
received extended test packet is in EUI-48 format. And the Session-Reflector M | received extended test packet is in EUI-48 format. And the Session-Reflector < | |||
UST | bcp14>MUST</bcp14> | |||
copy the value of the source MAC address in the EUI-48 field. | copy the value of the source MAC address in the EUI-48 field. | |||
Otherwise, the Session-Reflector MUST use the Source EUI-64 Address sub-TLV an | Otherwise, the Session-Reflector <bcp14>MUST</bcp14> use the Source EUI-64 Add | |||
d MUST copy the value | ress sub-TLV and <bcp14>MUST</bcp14> copy the value | |||
of the Source MAC address from the received packet into the EUI-64 field. | of the Source MAC Address from the received packet into the EUI-64 field. | |||
If the received extended STAMP test packet does not have the Source MAC addres | If the received extended STAMP test packet does not have the Source MAC Addres | |||
s, | s, | |||
the Session-Reflector MUST zero the EUI-64 field before transmitting the refle | the Session-Reflector <bcp14>MUST</bcp14> zero the EUI-64 field before transmi | |||
cted packet. | tting the reflected packet. | |||
</t> | </t> | |||
<t> | <t> | |||
A Session-Sender MAY include the Destination IP Address sub-TLV in the Locatio | A Session-Sender <bcp14>MAY</bcp14> include the Destination IP Address sub-TLV | |||
n TLV. | in the Location TLV. | |||
If the Session-Reflector receives the Location TLV that includes the Destinati on IP Address sub-TLV, it | If the Session-Reflector receives the Location TLV that includes the Destinati on IP Address sub-TLV, it | |||
MUST include the Destination IPv4 Address sub-TLV if the source IP address of | <bcp14>MUST</bcp14> include the Destination IPv4 Address sub-TLV if the source | |||
the | IP address of the | |||
received extended test packet is of IPv4 address family. And the Session-Refle | received extended test packet is of the IPv4 address family. And the Session-R | |||
ctor MUST | eflector <bcp14>MUST</bcp14> | |||
copy the value of the destination IP address in the IPv4 Address field. | copy the value of the destination IP address in the IPv4 Address field. | |||
Otherwise, the Session-Reflector MUST use the Destination IPv6 Address sub-TLV and MUST copy the value | Otherwise, the Session-Reflector <bcp14>MUST</bcp14> use the Destination IPv6 Address sub-TLV and <bcp14>MUST</bcp14> copy the value | |||
of the destination IP address from the received packet into the IPv6 Address f ield. | of the destination IP address from the received packet into the IPv6 Address f ield. | |||
</t> | </t> | |||
<t> | ||||
A Session-Sender MAY include the Source IP Address sub-TLV in the Location TLV | <t> | |||
. | A Session-Sender <bcp14>MAY</bcp14> include the Source IP Address sub-TLV in t | |||
he Location TLV. | ||||
If the Session-Reflector receives the Location TLV that includes the Source IP Address sub-TLV, it | If the Session-Reflector receives the Location TLV that includes the Source IP Address sub-TLV, it | |||
MUST include the Source IPv4 Address sub-TLV if the source IP address of the | <bcp14>MUST</bcp14> include the Source IPv4 Address sub-TLV if the source IP a | |||
received extended test packet is of IPv4 address family. And the Session-Refle | ddress of the | |||
ctor MUST | received extended test packet is of the IPv4 address family. And the Session-R | |||
eflector <bcp14>MUST</bcp14> | ||||
copy the value of the source IP address in the IPv4 Address field. | copy the value of the source IP address in the IPv4 Address field. | |||
Otherwise, the Session-Reflector MUST use the Source IPv6 Address sub-TLV and MUST copy the value | Otherwise, the Session-Reflector <bcp14>MUST</bcp14> use the Source IPv6 Addre ss sub-TLV and <bcp14>MUST</bcp14> copy the value | |||
of the source IP address from the received packet into the IPv6 Address field. | of the source IP address from the received packet into the IPv6 Address field. | |||
</t> | </t> | |||
<t> | <t> | |||
The Location TLV MAY be used to determine the last-hop IP addresses, ports, and | The Location TLV <bcp14>MAY</bcp14> be used to determine the last-hop IP address | |||
last-hop MAC address for  STAMP packets. The MAC address can indicate a p | es, ports, and | |||
ath switch | last-hop MAC address for STAMP packets. The MAC address can indicate a path sw | |||
itch | ||||
on the last hop. The IP addresses and UDP ports will indicate | on the last hop. The IP addresses and UDP ports will indicate | |||
if there is a NAT router on the path. It allows the Session-Sender to identify the IP address | if there is a NAT router on the path. It allows the Session-Sender to identify the IP address | |||
of the Session-Reflector behind the NAT, and detect changes in the NAT mapping | of the Session-Reflector behind the NAT and detect changes in the NAT mapping | |||
that could | that could result in sending the STAMP packets to the wrong Session-Reflector. | |||
cause sending the STAMP packets to the wrong Session-Reflector. | </t> | |||
</t> | </section> | |||
</section> | </section> | |||
</section> | <section anchor="timestamp-info-section" numbered="true" toc="default"> | |||
<name>Timestamp Information TLV</name> | ||||
<section anchor="timestamp-info-section" title="Timestamp Information TLV"> | <t> | |||
<t> | The STAMP Session-Sender <bcp14>MAY</bcp14> include the Timestamp Information | |||
The STAMP Session-Sender MAY include the Timestamp Information TLV to request | TLV to request information from the Session-Reflector. | |||
information from the Session-Reflector. | The Session-Sender <bcp14>MUST NOT</bcp14> fill any information fields except | |||
The Session-Sender MUST NOT fill any information fields except for STAMP TLV F | for STAMP TLV Flags, Type, and Length. | |||
lags, Type, and Length. | All other fields <bcp14>MUST</bcp14> be filled with zeroes. | |||
All other fields MUST be filled with zeroes. | The Session-Reflector <bcp14>MUST</bcp14> validate the Length value of the TLV | |||
The Session-Reflector MUST validate the Length value of the TLV. | . | |||
If the value of the Length field is invalid, the Session-Reflector follows the | If the value of the Length field is invalid, the Session-Reflector follows the | |||
procedure defined in <xref target="stamp-extension-section"/> for a malformed T | procedure defined in <xref target="stamp-extension-section" format="default"/> | |||
LV. | for a malformed TLV. | |||
<figure align="left" anchor="timestamp-tlv-figuret" title="Timestamp Inf | </t> | |||
ormation TLV"> | <figure anchor="timestamp-tlv-figuret"> | |||
<artwork><![CDATA[ | <name>Timestamp Information TLV</name> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|STAMP TLV Flags|Times Info Type| Length | | |STAMP TLV Flags| Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sync. Src In | Timestamp In | Sync. Src Out | Timestamp Out | | | Sync Src In | Timestamp In | Sync Src Out | Timestamp Out | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Optional sub-TLVs ~ | ~ Optional sub-TLVs ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
where fields are defined as the following: | <t> | |||
<list style="symbols"> | The fields are defined as follows: | |||
<t>STAMP TLV Flags - is an eight-bit-long field. Its format is present | </t> | |||
ed in <xref target="tlv-flags-format"/>.</t> | <dl spacing="normal"> | |||
<t>Timestamp Information Type - is a one-octet-long field, value TBA3 al | <dt>STAMP TLV Flags:</dt><dd>An eight-bit-long field. Its format is pr | |||
located by IANA <xref target="iana-stamp-tlv-registry"/>.</t> | esented in <xref target="tlv-flags-format" format="default"/>.</dd> | |||
<t>Length - two-octet-long field, set equal to the length of the Value fi | <dt>Type:</dt><dd>A one-octet-long field. Value 3 has been allocated b | |||
eld in octets (<xref target="tlv-format"/>).</t> | y IANA (<xref target="iana-stamp-tlv-registry" format="default"/>).</dd> | |||
<t>Sync Src In - one-octet-long field that characterizes the source of cl | <dt>Length:</dt><dd>A two-octet-long field, set equal to the length of | |||
ock synchronization at the ingress of a Session-Reflector. | the Value field in octets (<xref target="tlv-format" format="default"/>).</dd> | |||
There are several methods to synchronize the clock, e.g., Network Time Pr | <dt>Sync Src In:</dt><dd>A one-octet-long field that characterizes the | |||
otocol (NTP) <xref target="RFC5905"/>. | source of clock synchronization at the ingress of a Session-Reflector. | |||
The value is one of those listed in <xref target="ssync-source-new-tbl"/> | There are several methods for synchronizing the clock, e.g., the Network | |||
.</t> | Time Protocol (NTP) <xref target="RFC5905" format="default"/>. | |||
<t>Timestamp In - one-octet-long field that characterizes the | ||||
<xref target="ssync-source-new-tbl" format="default"/> lists the possible | ||||
values.</dd> | ||||
<dt>Timestamp In:</dt><dd>A one-octet-long field that characterizes th | ||||
e | ||||
method by which the ingress of the Session-Reflector obtained the timesta mp T2. | method by which the ingress of the Session-Reflector obtained the timesta mp T2. | |||
A timestamp may be obtained with hardware assistance, | A timestamp may be obtained with hardware assistance via a software API f | |||
via software API from a local wall clock, or from a remote clock (the lat | rom a local wall clock or from a remote clock (the latter is referred to as a "c | |||
ter is referred to as "control plane"). | ontrol plane"). | |||
The value is one of those listed in <xref target="timestamp-method-new-tb | <xref target="timestamp-method-new-tbl" format="default"/> lists the possible va | |||
l"/>.</t> | lues.</dd> | |||
<t>Sync Src Out - one-octet-long field that characterizes the source of c | <dt>Sync Src Out:</dt><dd>A one-octet-long field that characterizes th | |||
lock synchronization at the egress of the Session-Reflector. | e source of clock synchronization at the egress of the Session-Reflector. | |||
The value is one of those listed in <xref target="ssync-source-new-tbl"/> | <xref target="ssync-source-new-tbl" format="default"/> lists the possible values | |||
.</t> | .</dd> | |||
<t>Timestamp Out - one-octet-long field that characterizes the | <dt>Timestamp Out:</dt><dd>A one-octet-long field that characterizes t | |||
he | ||||
method by which the egress of the Session-Reflector obtained the timestam p T3. | method by which the egress of the Session-Reflector obtained the timestam p T3. | |||
The value is one of those listed in <xref target="timestamp-method-new-tb | <xref target="timestamp-method-new-tbl" format="default"/> lists the possible va | |||
l"/>.</t> | lues.</dd> | |||
<t>Optional sub-TLVs - optional variable-length field.</t> | <dt>Optional sub-TLVs:</dt><dd>An optional variable-length field.</dd> | |||
</list> | </dl> | |||
</t> | </section> | |||
</section> | ||||
<section anchor="cos-info-section" title="Class of Service TLV"> | <section anchor="cos-info-section" numbered="true" toc="default"> | |||
<t> | <name>Class of Service TLV</name> | |||
The STAMP Session-Sender MAY include a Class of Service (CoS) TLV in the STAM | <t> | |||
P test packet. | The STAMP Session-Sender <bcp14>MAY</bcp14> include a Class of Service (CoS) | |||
The format of the CoS TLV is presented in <xref target="cos-tlv-figure"/>. | TLV in the STAMP test packet. | |||
The format of the CoS TLV is presented in <xref target="cos-tlv-figure" format | ||||
="default"/>. | ||||
<figure align="left" anchor="cos-tlv-figure" title="Class of Service TLV | </t> | |||
"> | <figure anchor="cos-tlv-figure"> | |||
<artwork><![CDATA[ | <name>Class of Service TLV</name> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|STAMP TLV Flags| CoS Type | Length | | |STAMP TLV Flags| Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| DSCP1 | DSCP2 |ECN| RP| Reserved | | | DSCP1 | DSCP2 |ECN| RP| Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
where fields are defined as the following: | <t> | |||
<list style="symbols"> | The fields are defined as follows: | |||
<t>STAMP TLV Flags - is an eight-bit-long field. Its format is present | </t> | |||
ed in <xref target="tlv-flags-format"/>.</t> | <dl spacing="normal"> | |||
<t>CoS (Class of Service) Type - is a one-octet-long field, value TBA4 a | <dt>STAMP TLV Flags:</dt><dd>An eight-bit-long field. Its format is pr | |||
llocated by IANA <xref target="iana-stamp-tlv-registry"/>.</t> | esented in <xref target="tlv-flags-format" format="default"/>.</dd> | |||
<t>Length - two-octet-long field, set equal to the value 4.</t> | <dt>Type:</dt><dd>A one-octet-long field. Value 4 has been allocated b | |||
<t>DSCP1 - The Differentiated Services Code Point (DSCP) intended by the | y IANA (<xref target="iana-stamp-tlv-registry" format="default"/>).</dd> | |||
Session-Sender | <dt>Length:</dt><dd>A two-octet-long field, set equal to the value 4.< | |||
to be used as the DSCP value of the reflected test packet.</t> | /dd> | |||
<t>DSCP2 - The received value in the DSCP field at the ingress of the Se | <dt>DSCP1:</dt><dd>The Differentiated Services Code Point (DSCP) inten | |||
ssion-Reflector.</t> | ded by the Session-Sender | |||
<t>ECN - The received value in the ECN field at the ingress of the Sessi | to be used as the DSCP value of the reflected test packet.</dd> | |||
on-Reflector.</t> | <dt>DSCP2:</dt><dd>The received value in the DSCP field at the ingress | |||
<t>RP (Reverse Path) - is a two-bit-long field. A Session-Sender MUST se | of the Session-Reflector.</dd> | |||
t the value of the RP field to 0 on transmission.</t> | <dt>ECN:</dt><dd>The received value in the ECN field at the ingress of | |||
<t>Reserved - 16-bit-long field, MUST be zeroed on transmission and igno | the Session-Reflector.</dd> | |||
red on receipt.</t> | <dt>RP (Reverse Path):</dt><dd>A two-bit-long field. A Session-Sender | |||
</list> | <bcp14>MUST</bcp14> set the value of the RP field to 0 on transmission.</dd> | |||
</t> | <dt>Reserved:</dt><dd>A 16-bit-long field that <bcp14>MUST</bcp14> be | |||
<t> | zeroed on transmission and ignored on receipt.</dd> | |||
A STAMP Session-Reflector that receives a test packet with the CoS TLV MUST in | </dl> | |||
clude | <t> | |||
the CoS TLV in the reflected test packet. Also, the Session-Reflector MUST cop | A STAMP Session-Reflector that receives a test packet with the CoS TLV <bcp14> | |||
y | MUST</bcp14> include | |||
the CoS TLV in the reflected test packet. Also, the Session-Reflector <bcp14>M | ||||
UST</bcp14> copy | ||||
the value of the DSCP and ECN fields of the IP header of the received STAMP te st packet into the DSCP2 field in | the value of the DSCP and ECN fields of the IP header of the received STAMP te st packet into the DSCP2 field in | |||
the reflected test packet. Finally, the Session-Reflector MUST use the local p | the reflected test packet. Finally, the Session-Reflector <bcp14>MUST</bcp14> | |||
olicy to verify whether | use the local policy to verify whether | |||
the CoS corresponding to the value of the DSCP1 field is permitted in the doma | the CoS corresponding to the value of the DSCP1 field is permitted in the doma | |||
in. If it is, the Session-Reflectorset | in. If it is, the Session-Reflector | |||
MUST set the DSCP field's value in the IP header | <bcp14>MUST</bcp14> set the DSCP field's value in the IP header | |||
of the reflected test packet equal to the value of the DSCP1 field of the rece | of the reflected test packet equal to the value of the DSCP1 field of the rece | |||
ived test packet. Otherwise, the Session-Reflector MUST use | ived test packet. Otherwise, the Session-Reflector <bcp14>MUST</bcp14> use | |||
the DSCP value of the received STAMP packet and set the value of the RP field to 1. | the DSCP value of the received STAMP packet and set the value of the RP field to 1. | |||
Upon receiving the reflected packet, if the value of the RP field is 0, | Upon receiving the reflected packet, if the value of the RP field is 0, | |||
the Session-Sender will save the DSCP and ECN values for analysis of the CoS i n the reverse direction. | the Session-Sender will save the DSCP and ECN values for analysis of the CoS i n the reverse direction. | |||
If the value of the RP field in the received reflected packet is 1, only CoS i n the forward direction can be analyzed. | If the value of the RP field in the received reflected packet is 1, only CoS i n the forward direction can be analyzed. | |||
</t> | </t> | |||
<t> | <t> | |||
Re-mapping of CoS can be used to provide multiple services (e,g., 2G, 3G, LTE in | Re-mapping of CoS can be used to provide multiple services (e.g., 2G, 3G, LTE in | |||
mobile backhaul networks) | mobile backhaul networks) | |||
over the same network.  But if it is misconfigured, then it is often diffic | over the same network. But if it is misconfigured, then it is often diffic | |||
ult to diagnose the root cause of | ult to diagnose the root cause of | |||
excessive packet drops of higher-level service while packet drops | excessive packet drops of higher-level service while packet drops | |||
for lower service packets are at a normal level.  Using a CoS TLV in | for lower service packets are at a normal level. Using a CoS TLV in | |||
STAMP testing helps to troubleshoot the existing problem and also verify | STAMP testing helps to troubleshoot the existing problem and also verify | |||
whether DiffServ policies are processing CoS as required by the configuration. | whether DiffServ policies are processing CoS as required by the configuration. | |||
</t> | </t> | |||
</section> | ||||
</section> | <section anchor="direct-measurement-section" numbered="true" toc="default" | |||
> | ||||
<section anchor="direct-measurement-section" title="Direct Measurement TLV"> | <name>Direct Measurement TLV</name> | |||
<t> | <t> | |||
The Direct Measurement TLV enables collection of the number of in-profile pack ets, | The Direct Measurement TLV enables collection of the number of in-profile pack ets, | |||
i.e., packets that form a specific data flow, that had been transmitted and r eceived | i.e., packets that form a specific data flow, that had been transmitted and re ceived | |||
by the Session-Sender and Session-Reflector, respectively. The definition of " in-profile packet" is outside the | by the Session-Sender and Session-Reflector, respectively. The definition of " in-profile packet" is outside the | |||
scope of this document and is left to the test operators to determine. | scope of this document and is left to the test operators to determine. | |||
<figure align="left" anchor="direct-tlv-figuret" title=" Direct Measurem | </t> | |||
ent TLV"> | <figure anchor="direct-tlv-figuret"> | |||
<artwork><![CDATA[ | <name>Direct Measurement TLV</name> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|STAMP TLV Flags| Direct Type | Length | | |STAMP TLV Flags| 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) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
where fields are defined as the following: | <t> | |||
<list style="symbols"> | The fields are defined as follows: | |||
<t>STAMP TLV Flags - is an eight-bit-long field. Its format is present | </t> | |||
ed in <xref target="tlv-flags-format"/>.</t> | <dl spacing="normal" newline="false"> | |||
<t>Direct (Measurement) Type - is a one-octet-long field, value TBA5 all | <dt>STAMP TLV Flags:</dt><dd>An eight-bit-long field. Its format is pr | |||
ocated by IANA <xref target="iana-stamp-tlv-registry"/>.</t> | esented in <xref target="tlv-flags-format" format="default"/>.</dd> | |||
<t>Length - two-octet-long field equals the length of the Value field in | <dt>Type:</dt><dd>A one-octet-long field. Value 5 has been allocated b | |||
octets. The Length field value MUST equal 12 octets.</t> | y IANA (<xref target="iana-stamp-tlv-registry" format="default"/>).</dd> | |||
<t>Session-Sender Tx counter (S_TxC) is a four-octet-long field. The Ses | <dt>Length:</dt><dd>A two-octet-long field equal to the length of the | |||
sion-Sender MUST set its value equal to the number of the transmitted in-profile | Value field in octets. The Length field value <bcp14>MUST</bcp14> equal 12 octet | |||
packets.</t> | s.</dd> | |||
<t>Session-Reflector Rx counter (R_RxC) is a four-octet-long field. MUST | <dt>Session-Sender Tx counter (S_TxC):</dt><dd>A four-octet-long field | |||
be zeroed by the Session-Sender on transmit and | . The Session-Sender <bcp14>MUST</bcp14> set its value equal to the number of th | |||
ignored by the Session-Reflector on receipt. The Session-Reflector MUST f | e transmitted in-profile packets.</dd> | |||
ill it with the value of in-profile packets received.</t> | <dt>Session-Reflector Rx counter (R_RxC):</dt><dd>A four-octet-long fi | |||
<t>Session-Reflector Tx counter (R_TxC) is a four-octet-long field. MUST | eld. It <bcp14>MUST</bcp14> be zeroed by the Session-Sender on transmit and | |||
be zeroed by the Session-Sender and ignored by the Session-Reflector on receip | ignored by the Session-Reflector on receipt. The Session-Reflector <bcp14 | |||
t. | >MUST</bcp14> fill it with the value of in-profile packets received.</dd> | |||
The Session-Reflector MUST fill it with the value of the transmitted in-p | <dt>Session-Reflector Tx counter (R_TxC):</dt><dd>A four-octet-long fi | |||
rofile packets.</t> | eld. It <bcp14>MUST</bcp14> be zeroed by the Session-Sender and ignored by the S | |||
</list> | ession-Reflector on receipt. | |||
</t> | The Session-Reflector <bcp14>MUST</bcp14> fill it with the value of the t | |||
<t> | ransmitted in-profile packets.</dd> | |||
A Session-Sender MAY include the Direct Measurement TLV in a STAMP test pack | </dl> | |||
et. | <t> | |||
If the received STAMP test packet includes the Direct Measurement TLV, the S | A Session-Sender <bcp14>MAY</bcp14> include the Direct Measurement TLV in a | |||
ession-Reflector MUST include it in the reflected test packet. | STAMP test packet. | |||
The Session-Reflector MUST copy the value from the S_TxC field of the receiv | If the received STAMP test packet includes the Direct Measurement TLV, the S | |||
ed test packet into the same field of the reflected packet before its transmissi | ession-Reflector <bcp14>MUST</bcp14> include it in the reflected test packet. | |||
on. | The Session-Reflector <bcp14>MUST</bcp14> copy the value from the S_TxC fiel | |||
</t> | d of the received test packet into the same field of the reflected packet before | |||
</section> | its transmission. | |||
</t> | ||||
<section anchor="access-avail-sec" title="Access Report TLV"> | </section> | |||
<t> | <section anchor="access-avail-sec" numbered="true" toc="default"> | |||
A STAMP Session-Sender MAY include an Access Report TLV (<xref target="acces | <name>Access Report TLV</name> | |||
s-tlv-fig"/>) to indicate | <t> | |||
A STAMP Session-Sender <bcp14>MAY</bcp14> include an Access Report TLV (<xre | ||||
f target="access-tlv-fig" format="default"/>) to indicate | ||||
changes to the access network status to the Session-Reflector. The | changes to the access network status to the Session-Reflector. The | |||
definition of an access network is outside the scope of this document. | definition of an access network is outside the scope of this document. | |||
</t> | </t> | |||
<t> | <figure anchor="access-tlv-fig"> | |||
<figure align="left" anchor="access-tlv-fig" title="Access Report TL | <name>Access Report TLV</name> | |||
V"> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
<artwork><![CDATA[ | 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |STAMP TLV Flags| Type | Length | | |||
|STAMP TLV Flags|Acc Report Type| Length | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ID | Resv | Return Code | Reserved | | |||
| ID | Resv | Return Code | Reserved | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
where fields are defined as follows: | <t> | |||
<list style="symbols"> | The fields are defined as follows: | |||
<t>STAMP TLV Flags - is an eight-bit-long field. Its format presented | ||||
in <xref target="tlv-flags-format"/>.</t> | ||||
<t>Access Report Type - is a one-octet-long field, value TBA6 allocated | ||||
by IANA <xref target="iana-stamp-tlv-registry"/>.</t> | ||||
<t>Length - two-octet-long field, set equal to the value 4.</t> | ||||
<t>ID (Access ID) - four-bit-long field that identifies the access netwo | ||||
rk, | ||||
e.g., 3GPP (Radio Access Technologies specified by 3GPP) or Non-3GPP | ||||
(accesses that are not specified by 3GPP) <xref target="TS23501"/>. | ||||
The value is one of those listed below: | ||||
<list> | ||||
<t>1 - 3GPP Network</t> | ||||
<t>2 - Non-3GPP Network</t> | ||||
</list> | ||||
All other values are invalid and the TLV that contains it MUST be discarded | ||||
.</t> | ||||
<t>Resv - four-bit-long field, MUST be zeroed on transmission | ||||
and ignored on receipt.</t> | ||||
<t>Return Code - one-octet-long field that identifies the report signal, | ||||
e.g., available or unavailable. The value is supplied to the STAMP | ||||
end-point through some mechanism that is outside the scope of this document | ||||
. | ||||
The value is one of those listed in <xref target="iana-return-code-reg"/>.< | ||||
/t> | ||||
<t>Reserved - two-octet-long field, MUST be zeroed on transmission | ||||
and ignored on receipt.</t> | ||||
</list> | ||||
</t> | </t> | |||
<dl spacing="normal" newline="false"> | ||||
<dt>STAMP TLV Flags:</dt><dd>An eight-bit-long field. Its format is pr | ||||
esented in <xref target="tlv-flags-format" format="default"/>.</dd> | ||||
<dt>Type:</dt><dd>A one-octet-long field. Value 6 has been allocated b | ||||
y IANA (<xref target="iana-stamp-tlv-registry" format="default"/>).</dd> | ||||
<dt>Length:</dt><dd>A two-octet-long field, set equal to the value 4.< | ||||
/dd> | ||||
<dt>ID (Access ID):</dt><dd><t>A four-bit-long field that identifies | ||||
the access network, | ||||
e.g., 3GPP (Radio Access Technologies specified by 3GPP) or non-3GPP | ||||
(accesses that are not specified by 3GPP) <xref target="TS23501" format="de | ||||
fault"/>. | ||||
The value is one of the following:</t> | ||||
<dl spacing="normal" newline="false"> | ||||
<dt>1:</dt><dd>3GPP Network</dd> | ||||
<dt>2:</dt><dd>Non-3GPP Network</dd> | ||||
</dl> | ||||
<t> | ||||
All other values are invalid; a TLV that contains values other than '1' or | ||||
'2' <bcp14>MUST</bcp14> be discarded.</t> | ||||
</dd> | ||||
<dt>Resv:</dt><dd>A four-bit-long field that <bcp14>MUST</bcp14> be ze | ||||
roed on transmission | ||||
and ignored on receipt.</dd> | ||||
<dt>Return Code:</dt><dd>A one-octet-long field that identifies the re | ||||
port signal, | ||||
e.g., available or unavailable. The value is supplied to the STAMP | ||||
endpoint through some mechanism that is outside the scope of this document. | ||||
<xref target="iana-return-code-reg" format="default"/> lists the possible values | ||||
.</dd> | ||||
<dt>Reserved:</dt><dd>A two-octet-long field that <bcp14>MUST</bcp14> | ||||
be zeroed on transmission | ||||
and ignored on receipt.</dd> | ||||
</dl> | ||||
<t> | <t> | |||
The STAMP Session-Sender that includes the Access Report TLV sets | The STAMP Session-Sender that includes the Access Report TLV sets | |||
the value of the Access ID field according to the type of access network it r eports on. | the value of the Access ID field according to the type of access network it r eports on. | |||
Also, the Session-Sender sets the value of the Return Code field to reflect t he operational state of the | Also, the Session-Sender sets the value of the Return Code field to reflect t he operational state of the | |||
access network. The mechanism to determine the state of the access network is outside the scope | access network. The mechanism to determine the state of the access network is outside the scope | |||
of this specification. A STAMP Session-Reflector | of this specification. A STAMP Session-Reflector | |||
that received the test packet with the Access Report TLV MUST include | that received the test packet with the Access Report TLV <bcp14>MUST</bcp14> | |||
the Access Report TLV in the reflected test packet. The Session- | include | |||
Reflector MUST set the value of the Access ID and Return Code fields | the Access Report TLV in the reflected test packet. The Session-Reflector <b | |||
cp14>MUST</bcp14> set the value of the Access ID and Return Code fields | ||||
equal to the values of the corresponding fields from the test packet | equal to the values of the corresponding fields from the test packet | |||
it has received. | it has received. | |||
</t> | </t> | |||
<t> | <t> | |||
The Session-Sender MUST also arm a retransmission timer after sending | The Session-Sender <bcp14>MUST</bcp14> also arm a retransmission timer after | |||
a test packet that includes the Access Report TLV. This timer MUST | sending | |||
a test packet that includes the Access Report TLV. This timer <bcp14>MUST</b | ||||
cp14> | ||||
be disarmed upon reception of the reflected | be disarmed upon reception of the reflected | |||
STAMP test packet that includes the Access Report TLV. | STAMP test packet that includes the Access Report TLV. | |||
In the event the timer expires before such a packet | In the event the timer expires before such a packet | |||
is received, the Session-Sender MUST retransmit the STAMP test packet | is received, the Session-Sender <bcp14>MUST</bcp14> retransmit the STAMP test | |||
that contains the Access Report TLV. This retransmission SHOULD be | packet | |||
that contains the Access Report TLV. This retransmission <bcp14>SHOULD</bcp14 | ||||
> be | ||||
repeated up to four times before the procedure is aborted. Setting the value | repeated up to four times before the procedure is aborted. Setting the value | |||
for the retransmission timer is based on local policies and network environme nt. | for the retransmission timer is based on local policies and the network envir onment. | |||
The default value of the retransmission timer for the Access Report TLV | The default value of the retransmission timer for the Access Report TLV | |||
SHOULD be three seconds. An implementation MUST provide control | <bcp14>SHOULD</bcp14> be three seconds. An implementation <bcp14>MUST</bcp14> provide control | |||
of the retransmission timer value and the number of retransmissions. | of the retransmission timer value and the number of retransmissions. | |||
</t> | </t> | |||
<t> | <t> | |||
The Access Report TLV is used by the Performance Measurement | The Access Report TLV is used by the Performance Measurement | |||
Function (PMF) components of the Access Steering, Switching and | Function (PMF) components of the Access Steering, Switching, and | |||
Splitting feature for 5G networks <xref target="TS23501"/>. The PMF | Splitting feature for 5G networks <xref target="TS23501" format="default"/>. | |||
The PMF | ||||
component in the User Equipment acts as the STAMP Session-Sender, | component in the User Equipment acts as the STAMP Session-Sender, | |||
and the PMF component in the User Plane Function | and the PMF component in the User Plane Function | |||
acts as the STAMP Session-Reflector. | acts as the STAMP Session-Reflector. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="follow-up-tlv" numbered="true" toc="default"> | ||||
<section anchor="follow-up-tlv" title="Follow-up Telemetry TLV"> | <name>Follow-Up Telemetry TLV</name> | |||
<t> | <t> | |||
A Session-Reflector might be able to put in the Timestamp field only an "SW | A Session-Reflector might be able to put only an "SW Local" | |||
Local" | (see <xref target="timestamp-method-new-tbl" format="default"/>) timestamp i | |||
(see <xref target="timestamp-method-new-tbl"/>) timestamp. But the hosting | n the Follow-Up Timestamp field. But the hosting | |||
system might provide a timestamp closer to the start of the actual packet tr ansmission | system might provide a timestamp closer to the start of the actual packet tr ansmission | |||
even though it is not possible to deliver the information to the Session-Sen der in time for the packet itself. | even though it is not possible to deliver the information to the Session-Sen der in time for the packet itself. | |||
This timestamp might nevertheless be important for the Session-Sender, as it | This timestamp might nevertheless be important for the Session-Sender, as it | |||
improves the accuracy of measuring network delay by minimizing the impact of egress queuing delays | improves the accuracy of network delay measurement by minimizing the impact of egress queuing delays | |||
on the measurement. | on the measurement. | |||
</t> | </t> | |||
<t> | ||||
A STAMP Session-Sender MAY include the Follow-up Telemetry TLV to | <t> | |||
A STAMP Session-Sender <bcp14>MAY</bcp14> include the Follow-Up Telemetry TLV | ||||
to | ||||
request information from the Session-Reflector. The Session-Sender | request information from the Session-Reflector. The Session-Sender | |||
MUST set the Follow-up Telemetry Type and Length fields to their appropriate | <bcp14>MUST</bcp14> set the Follow-Up Telemetry Type and Length fields to the | |||
values. | ir appropriate values. | |||
The Sequence Number and Timestamp fields MUST be zeroed on transmission by th | The Sequence Number and Follow-Up Timestamp fields <bcp14>MUST</bcp14> be zer | |||
e Session-Sender | oed on transmission by the Session-Sender | |||
and ignored by the Session-Reflector upon receipt of the STAMP test packet th | and ignored by the Session-Reflector upon receipt of the STAMP test packet th | |||
at includes the Follow-up Telemetry TLV. | at includes the Follow-Up Telemetry TLV. | |||
The Session-Reflector MUST validate the Length value of the STAMP | The Session-Reflector <bcp14>MUST</bcp14> validate the Length value of the ST | |||
AMP | ||||
test packet. If the value of the Length field is invalid, the | test packet. If the value of the Length field is invalid, the | |||
Session-Reflector MUST zero the Sequence Number and Timestamp fields and set | Session-Reflector <bcp14>MUST</bcp14> zero the Sequence Number and Follow-Up | |||
the M flag in the STAMP TLV Flags field | Timestamp fields and set the M flag in the STAMP TLV Flags field | |||
in the reflected packet. If the Session-Reflector is in | in the reflected packet. If the Session-Reflector is in the | |||
stateless mode (defined in Section 4.2 <xref target="RFC8762"/>), | stateless mode (defined in <xref target="RFC8762" sectionFormat="of" section= | |||
it MUST zero the Sequence Number and Timestamp fields. | "4.2"/>), | |||
</t> | it <bcp14>MUST</bcp14> zero the Sequence Number and Follow-Up Timestamp field | |||
<t> | s. | |||
<figure align="left" anchor="follow-up-tlv-fig" title="Follow-up | </t> | |||
Telemetry TLV"> | <figure anchor="follow-up-tlv-fig"> | |||
<artwork><![CDATA[ | <name>Follow-Up Telemetry TLV</name> | |||
0 1 2 3 | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 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 | |||
|STAMP TLV Flags| Follow-up Type| Length | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |STAMP TLV Flags| Type | Length | | |||
| Sequence Number | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Sequence Number | | |||
| Follow-up Timestamp | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | Follow-Up Timestamp | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |||
| Timestamp M | Reserved | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Timestamp M | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
where fields are defined as follows: | ||||
<list style="symbols"> | ||||
<t>STAMP TLV Flags - is an eight-bit-long field. Its format presented | ||||
in <xref target="tlv-flags-format"/>.</t> | ||||
<t>Follow-up (Telemetry) Type - is a one-octet-long field, value TBA7 al | ||||
located by IANA <xref target="iana-stamp-tlv-registry"/>.</t> | ||||
<t>Length - two-octet-long field, set equal to the value 16 octets.</t> | ||||
<t> | <t> | |||
Sequence Number - four-octet-long field indicating the sequence | The fields are defined as follows: | |||
number of the last packet reflected in the same STAMP-test session. | </t> | |||
<dl spacing="normal"> | ||||
<dt>STAMP TLV Flags:</dt><dd>An eight-bit-long field. Its format is pr | ||||
esented in <xref target="tlv-flags-format" format="default"/>.</dd> | ||||
<dt>Type:</dt><dd>A one-octet-long field. Value 7 has been allocated b | ||||
y IANA (<xref target="iana-stamp-tlv-registry" format="default"/>).</dd> | ||||
<dt>Length:</dt><dd>A two-octet-long field, set equal to the value 16 | ||||
octets.</dd> | ||||
<dt> | ||||
Sequence Number:</dt><dd>A four-octet-long field indicating the sequence | ||||
number of the last packet reflected in the same STAMP test session. | ||||
Since the Session-Reflector runs in the stateful mode | Since the Session-Reflector runs in the stateful mode | |||
(defined in Section 4.2 <xref target="RFC8762"/>), | (defined in <xref target="RFC8762" sectionFormat="of" section="4.2"/>), | |||
it is the Session-Reflector’s Sequence Number of the previous reflected pa | it is the Session-Reflector's Sequence Number of the previous reflected packet. | |||
cket. | </dd> | |||
</t> | <dt> | |||
<t> | Follow-Up Timestamp:</dt><dd>An eight-octet-long field, with the format ind | |||
Follow-up Timestamp - eight-octet-long field, with the format indicated by | icated by | |||
the Z flag of the Error Estimate field of the STAMP base packet, which is contained | the Z flag of the Error Estimate field of the STAMP base packet, which is contained | |||
in this reflected test packet transmitted by a Session-Reflector, | in this reflected test packet transmitted by a Session-Reflector, | |||
as described in Section 4.2.1 <xref target="RFC8762"/>. | as described in <xref target="RFC8762" sectionFormat="of" section="4.2.1"/ >. | |||
It carries the timestamp when the reflected packet with the | It carries the timestamp when the reflected packet with the | |||
specified sequence number was sent. | specified sequence number was sent. | |||
</t> | </dd> | |||
<t> | <dt> | |||
Timestamp M(ode) - one-octet-long field that characterizes the | Timestamp M(ode):</dt><dd>A one-octet-long field that characterizes the | |||
method by which the entity that transmits a reflected STAMP packet obtained the | method by which the entity that transmits a reflected STAMP packet obtained the | |||
Follow-up Timestamp. | Follow-Up Timestamp. | |||
The value is one of those listed in <xref target="timestamp-method-new-tbl"/>. | <xref target="timestamp-method-new-tbl" format="default"/> lists the possible va | |||
</t> | lues. | |||
<t> Reserved - three-octet-long field. Its value MUST be zeroed on transmission | </dd> | |||
and ignored on receipt.</t> | <dt>Reserved:</dt><dd>A three-octet-long field. Its value <bcp14>MUST< | |||
</list> | /bcp14> be zeroed on transmission and ignored on receipt.</dd> | |||
</t> | </dl> | |||
</section> | ||||
</section> | <section anchor="hmac-sec" numbered="true" toc="default"> | |||
<name>HMAC TLV</name> | ||||
<section anchor="hmac-sec" title="HMAC TLV"> | <t> | |||
<t> | ||||
The STAMP authenticated mode protects the integrity of data collected in the STA MP base packet. | The STAMP authenticated mode protects the integrity of data collected in the STA MP base packet. | |||
STAMP extensions are designed to provide valuable information about the conditio n of a network, | STAMP extensions are designed to provide valuable information about the conditio n of a network, | |||
and protecting the integrity of that data is also essential. | and protecting the integrity of that data is also essential. | |||
All authenticated STAMP base packets (per Section 4.2.2 and Section 4.3.2 <xref | All authenticated STAMP base packets (per Sections <xref target="RFC8762" | |||
target="RFC8762"/>) | sectionFormat="bare" section="4.2.2"/> and <xref target="RFC8762" | |||
compatible with this specification MUST additionally authenticate the | sectionFormat="bare" section="4.3.2"/> of <xref target="RFC8762" format="default | |||
option TLVs by including the keyed Hashed Message Authentication Code (HMAC) TLV | "/>) | |||
, with the sole exception of when | compatible with this specification <bcp14>MUST</bcp14> additionally authenticate | |||
there is only one TLV present, and it is the Extended Padding TLV. | the | |||
The HMAC TLV MUST follow all TLVs included in a STAMP test packet, except for th | optional TLVs by including the keyed Hashed Message Authentication Code (HMAC) T | |||
e Extra Padding TLV. | LV, with the sole exception of when | |||
there is only one TLV present and it is the Extended Padding TLV. | ||||
The HMAC TLV <bcp14>MUST</bcp14> follow all TLVs included in a STAMP test packet | ||||
except for the Extra Padding TLV. | ||||
If the HMAC TLV appears in any other position in a STAMP extended test packet, t hen the situation | If the HMAC TLV appears in any other position in a STAMP extended test packet, t hen the situation | |||
MUST be processed as HMAC verification failure, as defined in this section, furt | <bcp14>MUST</bcp14> be processed as HMAC verification failure, as defined below | |||
her below. | in this section. | |||
The HMAC TLV MAY be used to protect the integrity of STAMP extensions in STAMP u | The HMAC TLV <bcp14>MAY</bcp14> be used to protect the integrity of STAMP extens | |||
nauthenticated mode. | ions in the STAMP unauthenticated mode. | |||
An implementation of STAMP extensions MUST provide controls to enable | An implementation of STAMP extensions <bcp14>MUST</bcp14> provide controls to en | |||
the integrity protection of STAMP extensions in STAMP unauthenticated mode. | able | |||
the integrity protection of STAMP extensions in the STAMP unauthenticated mode. | ||||
</t> | </t> | |||
<t> | <t> | |||
<!-- | </t> | |||
<figure align="left" anchor="hmac-tlv-fig" title="HMAC TLV"> | <figure anchor="hmac-tlv-fig"> | |||
<artwork><![CDATA[ | <name>HMAC TLV</name> | |||
0 1 2 3 | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
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 Key ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | ||||
~ HMAC (Variable) ~ | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ||||
<figure align="left" anchor="hmac-tlv-fig" title="HMAC TLV"> | ||||
<artwork><![CDATA[ | ||||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|STAMP TLV Flags| HMAC Type | Length | | |STAMP TLV Flags| Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
| HMAC | | | HMAC | | |||
| | | | | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
where fields are defined as follows: | <t> | |||
<list style="symbols"> | The fields are defined as follows: | |||
<t>STAMP TLV Flags - is an eight-bit-long field. Its format is present | </t> | |||
ed in <xref target="tlv-flags-format"/>.</t> | <dl spacing="normal"> | |||
<t>HMAC Type - is a one-octet-long field, value TBA8 allocated by IANA < | <dt>STAMP TLV Flags:</dt><dd>An eight-bit-long field. Its format is pr | |||
xref target="iana-stamp-tlv-registry"/>.</t> | esented in <xref target="tlv-flags-format" format="default"/>.</dd> | |||
<t>Length - two-octet-long field, set equal to 16 octets.</t> | <dt>Type:</dt><dd>A one-octet-long field. Value 8 has been allocated b | |||
<t>HMAC - is a 16-octet-long field that carries HMAC digest of the text | y IANA (<xref target="iana-stamp-tlv-registry" format="default"/>).</dd> | |||
of all preceding TLVs.</t> | <dt>Length:</dt><dd>A two-octet-long field, set equal to the value 16 | |||
</list> | octets.</dd> | |||
</t> | <dt>HMAC:</dt><dd>A 16-octet-long field that carries the HMAC digest o | |||
f the text of all preceding TLVs.</dd> | ||||
<t> | </dl> | |||
As defined in <xref target="RFC8762"/>, STAMP uses HMAC-SHA-256 truncated to 128 | <t> | |||
bits (<xref target="RFC4868"/>). | As defined in <xref target="RFC8762" format="default"/>, STAMP uses HMAC-SHA-256 | |||
All considerations regarding using the key listed in Section 4.4 of <xref target | truncated to 128 bits (see <xref target="RFC4868" format="default"/>). | |||
="RFC8762"/> | All considerations regarding using the key listed in <xref target="RFC8762" sect | |||
ionFormat="of" section="4.4"/> | ||||
are fully applicable to the use of the HMAC TLV. Key management and the mechanis ms to | are fully applicable to the use of the HMAC TLV. Key management and the mechanis ms to | |||
distribute the HMAC key are outside the scope of this specification. | distribute the HMAC key are outside the scope of this specification. | |||
HMAC TLV is anticipated to track updates in the base STAMP protocol <xref target | The HMAC TLV is anticipated to track updates in the base STAMP protocol <xref ta | |||
="RFC8762"/>, | rget="RFC8762" format="default"/>, | |||
including the use of more advanced cryptographic algorithms. HMAC is calculated | including the use of more advanced cryptographic algorithms. HMAC is calculated | |||
as defined in <xref target="RFC2104"/> | as defined in <xref target="RFC2104" format="default"/> | |||
over text as the concatenation of the Sequence Number field of the base STAMP pa cket and | over text as the concatenation of the Sequence Number field of the base STAMP pa cket and | |||
all preceding TLVs. The digest then MUST be truncated to 128 bits and written i nto the HMAC field. | all preceding TLVs. The digest then <bcp14>MUST</bcp14> be truncated to 128 bit s and written into the HMAC field. | |||
If the HMAC TLV is present in the extended STAMP test packet, e.g., in the authe nticated mode, | If the HMAC TLV is present in the extended STAMP test packet, e.g., in the authe nticated mode, | |||
HMAC MUST be verified before using any data in the included STAMP TLVs. If HMAC | HMAC <bcp14>MUST</bcp14> be verified before using any data in the included STAMP | |||
verification | TLVs. If HMAC verification | |||
by the Session-Reflector fails, then the Session-Reflector MUST stop processing | by the Session-Reflector fails, then the Session-Reflector <bcp14>MUST</bcp14> s | |||
the received extended STAMP test packet. | top processing the received extended STAMP test packet. | |||
The Session-Reflector MUST copy the TLVs from the received STAMP test packet in | The Session-Reflector <bcp14>MUST</bcp14> copy the TLVs from the received STAMP | |||
to the | test packet into the | |||
reflected packet. The Session-Reflector MUST set the I flag in each TLV copied o | reflected packet. The Session-Reflector <bcp14>MUST</bcp14> set the I flag in ea | |||
ver into | ch TLV copied over into | |||
the reflected packet to 1 before transmitting the reflected test packet. | the reflected packet to 1 before transmitting the reflected test packet. | |||
If the Session-Sender receives the extended STAMP test packet with I flag set to 1, | If the Session-Sender receives the extended STAMP test packet with I flag set to 1, | |||
then the Session-Sender MUST stop processing TLVs in the reflected test packet. | then the Session-Sender <bcp14>MUST</bcp14> stop processing TLVs in the reflecte | |||
If HMAC verification by the Session-Sender fails, then the Session-Sender MUST | d test packet. | |||
If HMAC verification by the Session-Sender fails, then the Session-Sender <bcp14 | ||||
>MUST</bcp14> | ||||
stop processing TLVs in the reflected extended STAMP packet. | stop processing TLVs in the reflected extended STAMP packet. | |||
<!-- | ||||
The Session-Sender MUST notify an operator of the failed HMAC verification. | ||||
Also, both the Session-Sender and Session-Reflector MAY log the notification tha | ||||
t | ||||
HMAC verification of STAMP TLVs failed. Note that the system MUST control the ra | ||||
te of logging. | ||||
</t> | </t> | |||
</section> | ||||
</section> | </section> | |||
<section anchor="iana-consider" numbered="true" toc="default"> | ||||
</section> | <name>IANA Considerations</name> | |||
<t>IANA has created the following subregistries under the "Simple Two-way Active | ||||
<section anchor="iana-consider" title="IANA Considerations"> | Measurement Protocol (STAMP) TLV Types" registry.</t> | |||
<section anchor="iana-stamp-tlv-registry" numbered="true" toc="default"> | ||||
<section anchor="iana-stamp-tlv-registry" title="STAMP TLV Registry"> | <name>STAMP TLV Types Subregistry</name> | |||
<t> | <t> | |||
IANA is requested to create the STAMP TLV Type registry. | IANA has created the "STAMP TLV Types" subregistry. The code | |||
All code points in the range 1 through 175 in this registry shall be allocat | points in this registry are allocated according to the registration | |||
ed | procedures <xref target="RFC8126" format="default"/> described in <xref | |||
according to the "IETF Review" procedure as specified in <xref target="RFC81 | target="iana-stamp-type-tbl" format="default"/>. | |||
26"/>. | </t> | |||
Code points in the range | <table anchor="iana-stamp-type-tbl" align="center"> | |||
176 through 239 in this registry shall be allocated according to the "First | <name>Registration Procedures for the STAMP TLV Types Subregistry</nam | |||
Come First Served" procedure as | e> | |||
specified in <xref target="RFC8126"/>. | <thead> | |||
The remaining code points are allocated according to <xref target="iana | <tr> | |||
-stamp-type-tbl"/>: | <th align="left">Range</th> | |||
</t> | <th align="center">Registration Procedures</th> | |||
<texttable anchor="iana-stamp-type-tbl" title="STAMP TLV Type Registry"> | </tr> | |||
<ttcol align="left">Value</ttcol> | </thead> | |||
<ttcol align="center">Description</ttcol> | <tbody> | |||
<ttcol align="left">Reference</ttcol> | <tr> | |||
<c>0</c> | <td align="left">1 - 175</td> | |||
<c>Reserved</c> | <td align="center">IETF Review</td> | |||
<c>This document</c> | </tr> | |||
<c>1- 175</c> | <tr> | |||
<c>Unassigned</c> | <td align="left">176 - 239</td> | |||
<c>This document</c> | <td align="center">First Come First Served</td> | |||
<c>176 - 239</c> | </tr> | |||
<c>Unassigned</c> | <tr> | |||
<c>This document</c> | <td align="left">240 - 251</td> | |||
<c>240 - 251</c> | <td align="center">Experimental Use</td> | |||
<c>Experimental</c> | </tr> | |||
<c>This document</c> | <tr> | |||
<c>252 - 254</c> | <td align="left">252 - 254</td> | |||
<c>Private Use</c> | <td align="center">Private Use</td> | |||
<c>This document</c> | </tr> | |||
<c>255</c> | </tbody> | |||
<c>Reserved</c> | </table> | |||
<c>This document</c> | <t>Per this document, IANA has allocated the following values in the "ST | |||
</texttable> | AMP TLV Types" subregistry: | |||
</t> | ||||
<t>This document defines the following new values in the IETF Review range of th | ||||
e STAMP TLV Type registry:</t> | ||||
<texttable anchor="stamp-new-type-tbl" title="STAMP TLV Types"> | ||||
<ttcol align="left">Value</ttcol> | ||||
<ttcol align="center">Description</ttcol> | ||||
<ttcol align="left">Reference</ttcol> | ||||
<c>TBA1</c> | ||||
<c>Extra Padding</c> | ||||
<c>This document</c> | ||||
<c>TBA2</c> | ||||
<c>Location</c> | ||||
<c>This document</c> | ||||
<c>TBA3</c> | ||||
<c>Timestamp Information</c> | ||||
<c>This document</c> | ||||
<c>TBA4</c> | ||||
<c>Class of Service</c> | ||||
<c>This document</c> | ||||
<c>TBA5</c> | ||||
<c>Direct Measurement</c> | ||||
<c>This document</c> | ||||
<c>TBA6</c> | ||||
<c>Access Report</c> | ||||
<c>This document</c> | ||||
<c>TBA7</c> | ||||
<c>Follow-up Telemetry</c> | ||||
<c>This document</c> | ||||
<c>TBA8</c> | ||||
<c>HMAC</c> | ||||
<c>This document</c> | ||||
</texttable> | ||||
</section> | ||||
<section anchor="iana-tlv-flags-reg" title="STAMP TLV Flags Sub-registry"> | ||||
<t> | ||||
IANA is requested to create the STAMP TLV Flags sub-registry as part of th | ||||
e STAMP TLV Type registry. | ||||
The registration procedure is "IETF Review" <xref target="RFC8126"/>. Flag | ||||
s are 8 bits. | ||||
This document defines the following bit positions in the STAMP TLV Flags s | ||||
ub-registry: | ||||
</t> | ||||
<texttable anchor="tlv-flags-new-tbl" title="STAMP TLV Flags"> | ||||
<ttcol align="center">Bit position</ttcol> | ||||
<ttcol align="center">Symbol</ttcol> | ||||
<ttcol align="center">Description</ttcol> | ||||
<ttcol align="center">Reference</ttcol> | ||||
<c>0</c> | ||||
<c>U</c> | ||||
<c>Unrecognized TLV</c> | ||||
<c>This document</c> | ||||
<c>1</c> | ||||
<c>M</c> | ||||
<c>Malformed TLV</c> | ||||
<c>This document</c> | ||||
<c>2</c> | ||||
<c>I</c> | ||||
<c>Integrity check failed</c> | ||||
<c>This document</c> | ||||
</texttable> | ||||
</section> | ||||
<section anchor="iana-sub-tlv-registry" title="Sub-TLV Type Sub-regist | ||||
ry"> | ||||
<t> | ||||
IANA is requested to create the sub-TLV Type sub-registry as part of the STAM | ||||
P TLV Type registry. | ||||
All code points in the range 1 through 175 in this registry shall be allocat | ||||
ed | ||||
according to the "IETF Review" procedure as specified in <xref target="RFC81 | ||||
26"/>. | ||||
Code points in the range | ||||
176 through 239 in this registry shall be allocated according to the "First | ||||
Come First Served" procedure as | ||||
specified in <xref target="RFC8126"/>. | ||||
The remaining code points are allocated according to <xref target="iana | ||||
-sub-type-tbl"/>: | ||||
</t> | ||||
<texttable anchor="iana-sub-type-tbl" title="Location Sub-TLV Type Sub-re | ||||
gistry"> | ||||
<ttcol align="left">Value</ttcol> | ||||
<ttcol align="center">Description</ttcol> | ||||
<ttcol align="left">Reference</ttcol> | ||||
<c>0</c> | ||||
<c>Reserved</c> | ||||
<c>This document</c> | ||||
<c>1- 175</c> | ||||
<c>Unassigned</c> | ||||
<c>This document</c> | ||||
<c>176 - 239</c> | ||||
<c>Unassigned</c> | ||||
<c>This document</c> | ||||
<c>240 - 251</c> | ||||
<c>Experimental</c> | ||||
<c>This document</c> | ||||
<c>252 - 254</c> | ||||
<c>Private Use</c> | ||||
<c>This document</c> | ||||
<c>255</c> | ||||
<c>Reserved</c> | ||||
<c>This document</c> | ||||
</texttable> | ||||
<t>This document defines the following new values in the IETF Review range of th | ||||
e Location sub-TLV Type sub-registry:</t> | ||||
<texttable anchor="sub-tlv-type-tbl" title="STAMP sub-TLV Types"> | ||||
<ttcol align="left">Value</ttcol> | ||||
<ttcol align="center">Description</ttcol> | ||||
<ttcol align="left">TLV Used</ttcol> | ||||
<ttcol align="left">Reference</ttcol> | ||||
<c>TBA9</c> | ||||
<c>Source MAC Address</c> | ||||
<c>Location</c> | ||||
<c>This document</c> | ||||
<c>TBA10</c> | ||||
<c>Source EUI-48 Address</c> | ||||
<c>Location</c> | ||||
<c>This document</c> | ||||
<c>TBA11</c> | ||||
<c>Source EUI-64 Address</c> | ||||
<c>Location</c> | ||||
<c>This document</c> | ||||
<c>TBA12</c> | ||||
<c>Destination IP Address</c> | ||||
<c>Location</c> | ||||
<c>This document</c> | ||||
<c>TBA13</c> | ||||
<c>Destination IPv4 Address</c> | ||||
<c>Location</c> | ||||
<c>This document</c> | ||||
<c>TBA14</c> | ||||
<c>Destination IPv6 Address</c> | ||||
<c>Location</c> | ||||
<c>This document</c> | ||||
<c>TBA15</c> | ||||
<c>Source IP Address</c> | ||||
<c>Location</c> | ||||
<c>This document</c> | ||||
<c>TBA16</c> | ||||
<c>Source IPv4 Address</c> | ||||
<c>Location</c> | ||||
<c>This document</c> | ||||
<c>TBA17</c> | ||||
<c>Source IPv6 Address</c> | ||||
<c>Location</c> | ||||
<c>This document</c> | ||||
</texttable> | ||||
</section> | ||||
<section anchor="iana-sync-source-reg" title="Synchronization Source Sub-re | ||||
gistry"> | ||||
<t> | ||||
IANA is requested to create the Synchronization Source sub-registry as part o | ||||
f the STAMP TLV Type registry. | ||||
All code points in the range 1 through 127 in this registry shall be allocat | ||||
ed | ||||
according to the "IETF Review" procedure as specified in <xref target="RFC81 | ||||
26"/>. | ||||
Code points in the range | ||||
128 through 239 in this registry shall be allocated according to the "First | ||||
Come First Served" procedure as | ||||
specified in <xref target="RFC8126"/>. | ||||
Remaining code points are allocated according to <xref target="iana-syn | ||||
c-source-tbl"/>: | ||||
</t> | ||||
<texttable anchor="iana-sync-source-tbl" title="Synchronization Source Su | ||||
b-registry"> | ||||
<ttcol align="left">Value</ttcol> | ||||
<ttcol align="center">Description</ttcol> | ||||
<ttcol align="left">Reference</ttcol> | ||||
<c>0</c> | ||||
<c>Reserved</c> | ||||
<c>This document</c> | ||||
<c>1- 127</c> | ||||
<c>Unassigned</c> | ||||
<c>This document</c> | ||||
<c>128 - 239</c> | ||||
<c>Unassigned</c> | ||||
<c>This document</c> | ||||
<c>240 - 249</c> | ||||
<c>Experimental</c> | ||||
<c>This document</c> | ||||
<c>250 - 254</c> | ||||
<c>Private Use</c> | ||||
<c>This document</c> | ||||
<c>255</c> | ||||
<c>Reserved</c> | ||||
<c>This document</c> | ||||
</texttable> | ||||
<t> This document defines the following new values in the Synchronization So | ||||
urce sub-registry:</t> | ||||
<texttable anchor="ssync-source-new-tbl" title="Synchronization Sources"> | ||||
<ttcol align="left">Value</ttcol> | ||||
<ttcol align="center">Description</ttcol> | ||||
<ttcol align="left">Reference</ttcol> | ||||
<c>1</c> | ||||
<c>NTP</c> | ||||
<c>This document</c> | ||||
<c>2</c> | ||||
<c>PTP</c> | ||||
<c>This document</c> | ||||
<c>3</c> | ||||
<c>SSU/BITS</c> | ||||
<c>This document</c> | ||||
<c>4</c> | ||||
<c>GPS/GLONASS/LORAN-C/BDS/Galileo</c> | ||||
<c>This document</c> | ||||
<c>5</c> | ||||
<c>Local free-running</c> | ||||
<c>This document</c> | ||||
</texttable> | ||||
</section> | ||||
<section anchor="iana-tiemstamp-methog-reg" title="Timestamping Method Sub- | ||||
registry"> | ||||
<t> | ||||
IANA is requested to create the Timestamping Method sub-registry as part of t | ||||
he STAMP TLV Type registry. | ||||
All code points in the range 1 through 127 in this registry shall be allocat | ||||
ed | ||||
according to the "IETF Review" procedure as specified in <xref target="RFC81 | ||||
26"/>. | ||||
Code points in the range | ||||
128 through 239 in this registry shall be allocated according to the "First | ||||
Come First Served" procedure as | ||||
specified in <xref target="RFC8126"/>. | ||||
Remaining code points are allocated according to <xref target="iana-tim | ||||
estamp-method-tbl"/>: | ||||
</t> | ||||
<texttable anchor="iana-timestamp-method-tbl" title="Timestamping Method | ||||
Sub-registry"> | ||||
<ttcol align="left">Value</ttcol> | ||||
<ttcol align="center">Description</ttcol> | ||||
<ttcol align="left">Reference</ttcol> | ||||
<c>0</c> | ||||
<c>Reserved</c> | ||||
<c>This document</c> | ||||
<c>1- 127</c> | ||||
<c>Unassigned</c> | ||||
<c>This document</c> | ||||
<c>128 - 239</c> | ||||
<c>Unassigned</c> | ||||
<c>This document</c> | ||||
<c>240 - 249</c> | ||||
<c>Experimental</c> | ||||
<c>This document</c> | ||||
<c>250 - 254</c> | ||||
<c>Private Use</c> | ||||
<c>This document</c> | ||||
<c>255</c> | ||||
<c>Reserved</c> | ||||
<c>This document</c> | ||||
</texttable> | ||||
<t> This document defines the following new values in the Timestamping Metho | ||||
ds sub-registry:</t> | ||||
<texttable anchor="timestamp-method-new-tbl" title="Timestamping Methods"> | ||||
<ttcol align="left">Value</ttcol> | ||||
<ttcol align="center">Description</ttcol> | ||||
<ttcol align="left">Reference</ttcol> | ||||
<c>1</c> | ||||
<c>HW Assist</c> | ||||
<c>This document</c> | ||||
<c>2</c> | ||||
<c>SW local</c> | ||||
<c>This document</c> | ||||
<c>3</c> | ||||
<c>Control plane</c> | ||||
<c>This document</c> | ||||
</texttable> | ||||
</section> | ||||
<!-- | <table anchor="stamp-new-type-tbl" align="center"> | |||
<section anchor="iana-access-report-reg" title="Access ID Sub-registry"> | <name>STAMP TLV Types</name> | |||
<t> | <thead> | |||
IANA is requested to create Access ID sub-registry as part of STAMP TLV Type | <tr> | |||
registry. | <th align="left">Value</th> | |||
All code points in the range 1 through 127 in this registry shall be allocat | <th align="center">Description</th> | |||
ed | <th align="left">Reference</th> | |||
according to the "IETF Review" procedure as specified in <xref target="RFC81 | </tr> | |||
26"/>. | </thead> | |||
Code points in the range | <tbody> | |||
128 through 239 in this registry shall be allocated according to the "First | <tr> | |||
Come First Served" procedure as | <td align="left">0</td> | |||
specified in <xref target="RFC8126"/>. | <td align="center">Reserved</td> | |||
Remaining code points are allocated according to <xref target="iana-acc | <td align="left">RFC 8972</td> | |||
ess-id-tbl"/>: | </tr> | |||
</t> | <tr> | |||
<texttable anchor="iana-access-id-tbl" title="Access ID Sub-registry"> | <td align="left">1</td> | |||
<ttcol align="left">Value</ttcol> | <td align="center">Extra Padding</td> | |||
<ttcol align="center">Description</ttcol> | <td align="left">RFC 8972</td> | |||
<ttcol align="left">Reference</ttcol> | </tr> | |||
<c>0</c> | <tr> | |||
<c>Reserved</c> | <td align="left">2</td> | |||
<c>This document</c> | <td align="center">Location</td> | |||
<c>1- 127</c> | <td align="left">RFC 8972</td> | |||
<c>Unassigned</c> | </tr> | |||
<c>IETF Review</c> | <tr> | |||
<c>128 - 239</c> | <td align="left">3</td> | |||
<c>Unassigned</c> | <td align="center">Timestamp Information</td> | |||
<c>First Come First Served</c> | <td align="left">RFC 8972</td> | |||
<c>240 - 249</c> | </tr> | |||
<c>Experimental</c> | <tr> | |||
<c>This document</c> | <td align="left">4</td> | |||
<c>250 - 254</c> | <td align="center">Class of Service</td> | |||
<c>Private Use</c> | <td align="left">RFC 8972</td> | |||
<c>This document</c> | </tr> | |||
<c>255</c> | <tr> | |||
<c>Reserved</c> | <td align="left">5</td> | |||
<c>This document</c> | <td align="center">Direct Measurement</td> | |||
</texttable> | <td align="left">RFC 8972</td> | |||
</tr> | ||||
<tr> | ||||
<td align="left">6</td> | ||||
<td align="center">Access Report</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">7</td> | ||||
<td align="center">Follow-Up Telemetry</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">8</td> | ||||
<td align="center">HMAC</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">255</td> | ||||
<td align="center">Reserved</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<t> This document defines the following new values in the Access ID sub-regi | <section anchor="iana-tlv-flags-reg" numbered="true" toc="default"> | |||
stry:</t> | <name>STAMP TLV Flags Subregistry</name> | |||
<texttable anchor="access-id-new-tbl" title="Access IDs"> | <t> | |||
<ttcol align="left">Value</ttcol> | IANA has created the "STAMP TLV Flags" subregistry. | |||
<ttcol align="center">Description</ttcol> | The registration procedure is "IETF Review" <xref target="RFC8126" format= | |||
<ttcol align="left">Reference</ttcol> | "default"/>. The flags are 8 bits. | |||
<c>1</c> | Per this document, IANA has allocated the following bit positions in the " | |||
<c>3GPP </c> | STAMP TLV Flags" subregistry. | |||
<c>This document</c> | </t> | |||
<c>2</c> | <table anchor="tlv-flags-new-tbl" align="center"> | |||
<c>Non-3GPP</c> | <name>STAMP TLV Flags</name> | |||
<c>This document</c> | <thead> | |||
</texttable> | <tr> | |||
</section> | <th align="center">Bit position</th> | |||
<th align="center">Symbol</th> | ||||
<th align="center">Description</th> | ||||
<th align="center">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="center">0</td> | ||||
<td align="center">U</td> | ||||
<td align="center">Unrecognized TLV</td> | ||||
<td align="center">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="center">1</td> | ||||
<td align="center">M</td> | ||||
<td align="center">Malformed TLV</td> | ||||
<td align="center">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="center">2</td> | ||||
<td align="center">I</td> | ||||
<td align="center">Integrity check failed</td> | ||||
<td align="center">RFC 8972</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="iana-sub-tlv-registry" numbered="true" toc="default"> | ||||
<name>STAMP Sub-TLV Types Subregistry</name> | ||||
<t> | ||||
IANA has created the "STAMP Sub-TLV Types" subregistry. | ||||
The code points in this registry are allocated according to the | ||||
registration procedures <xref target="RFC8126" format="default"/> described | ||||
in <xref target="iana-sub-type-tbl" format="default"/>. | ||||
</t> | ||||
<table anchor="iana-sub-type-tbl" align="center"> | ||||
<name>Registration Procedures for the STAMP Sub-TLV Types Subregistry< | ||||
/name> | ||||
<thead> | ||||
<tr> | ||||
<th align="center">Range</th> | ||||
<th align="center">Registration Procedures</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left">1 - 175</td> | ||||
<td align="center">IETF Review</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">176 - 239</td> | ||||
<td align="center">First Come First Served</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">240 - 251</td> | ||||
<td align="center">Experimental Use</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">252 - 254</td> | ||||
<td align="center">Private Use</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t>Per this document, IANA has allocated the following values in the "ST | ||||
AMP Sub-TLV Types" subregistry:</t> | ||||
<table anchor="sub-tlv-type-tbl" align="center"> | ||||
<name>STAMP Sub-TLV Types</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="center">Value</th> | ||||
<th align="center">Description</th> | ||||
<th align="left">TLV Used</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left">0</td> | ||||
<td align="center">Reserved</td> | ||||
<td></td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">1</td> | ||||
<td align="center">Source MAC Address</td> | ||||
<td align="left">Location</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">2</td> | ||||
<td align="center">Source EUI-48 Address</td> | ||||
<td align="left">Location</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">3</td> | ||||
<td align="center">Source EUI-64 Address</td> | ||||
<td align="left">Location</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">4</td> | ||||
<td align="center">Destination IP Address</td> | ||||
<td align="left">Location</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">5</td> | ||||
<td align="center">Destination IPv4 Address</td> | ||||
<td align="left">Location</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">6</td> | ||||
<td align="center">Destination IPv6 Address</td> | ||||
<td align="left">Location</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">7</td> | ||||
<td align="center">Source IP Address</td> | ||||
<td align="left">Location</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">8</td> | ||||
<td align="center">Source IPv4 Address</td> | ||||
<td align="left">Location</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">9</td> | ||||
<td align="center">Source IPv6 Address</td> | ||||
<td align="left">Location</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">255</td> | ||||
<td align="center">Reserved</td> | ||||
<td></td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="iana-sync-source-reg" numbered="true" toc="default"> | ||||
<name>STAMP Synchronization Sources Subregistry</name> | ||||
<t> | ||||
IANA has created the "STAMP Synchronization Sources" subregistry. | ||||
The code points in this registry are allocated according | ||||
to the registration procedures | ||||
<xref target="RFC8126" format="default"/> described in | ||||
<xref target="iana-sync-source-tbl" format="default"/>. | ||||
</t> | ||||
<table anchor="iana-sync-source-tbl" align="center"> | ||||
<name>Registration Procedures for the STAMP Synchronization Sources Su | ||||
bregistry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left">Range</th> | ||||
<th align="center">Registration Procedures</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left">1 - 127</td> | ||||
<td align="center">IETF Review</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">128 - 239</td> | ||||
<td align="center">First Come First Served</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">240 - 249</td> | ||||
<td align="center">Experimental Use</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">250 - 254</td> | ||||
<td align="center">Private Use</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t>Per this document, IANA has allocated the following values in the "ST | ||||
AMP Synchronization Sources" subregistry: | ||||
</t> | ||||
<table anchor="ssync-source-new-tbl" align="center"> | ||||
<name>STAMP Synchronization Sources</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left">Value</th> | ||||
<th align="center">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left">0</td> | ||||
<td align="center">Reserved</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<section anchor="iana-return-code-reg" title="Return Code Sub-registry"> | <tr> | |||
<t> | <td align="left">1</td> | |||
IANA is requested to create the Return Code sub-registry as part of the STAMP | <td align="center">NTP</td> | |||
TLV Type registry. | <td align="left">RFC 8972</td> | |||
All code points in the range 1 through 127 in this registry shall be allocat | </tr> | |||
ed | <tr> | |||
according to the "IETF Review" procedure as specified in <xref target="RFC81 | <td align="left">2</td> | |||
26"/>. | <td align="center">PTP</td> | |||
Code points in the range | <td align="left">RFC 8972</td> | |||
128 through 239 in this registry shall be allocated according to the "First | </tr> | |||
Come First Served" procedure as | <tr> | |||
specified in <xref target="RFC8126"/>. | <td align="left">3</td> | |||
Remaining code points are allocated according to <xref target="iana-ret | <td align="center">SSU/BITS</td> | |||
urn-code-tbl"/>: | <td align="left">RFC 8972</td> | |||
</t> | </tr> | |||
<texttable anchor="iana-return-code-tbl" title="Return Code Sub-registry" | <tr> | |||
> | <td align="left">4</td> | |||
<ttcol align="left">Value</ttcol> | <td align="center">GPS/GLONASS/LORAN-C/BDS/Galileo</td> | |||
<ttcol align="center">Description</ttcol> | <td align="left">RFC 8972</td> | |||
<ttcol align="left">Reference</ttcol> | </tr> | |||
<c>0</c> | <tr> | |||
<c>Reserved</c> | <td align="left">5</td> | |||
<c>This document</c> | <td align="center">Local free-running</td> | |||
<c>1- 127</c> | <td align="left">RFC 8972</td> | |||
<c>Unassigned</c> | </tr> | |||
<c>This document</c> | <tr> | |||
<c>128 - 239</c> | <td align="left">255</td> | |||
<c>Unassigned</c> | <td align="center">Reserved</td> | |||
<c>This document</c> | <td align="left">RFC 8972</td> | |||
<c>240 - 249</c> | </tr> | |||
<c>Experimental</c> | ||||
<c>This document</c> | ||||
<c>250 - 254</c> | ||||
<c>Private Use</c> | ||||
<c>This document</c> | ||||
<c>255</c> | ||||
<c>Reserved</c> | ||||
<c>This document</c> | ||||
</texttable> | ||||
<t> This document defines the following new values in the Return Code sub-re | </tbody> | |||
gistry:</t> | </table> | |||
<texttable anchor="return-code-new-tbl" title="Return Codes"> | </section> | |||
<ttcol align="left">Value</ttcol> | <section anchor="iana-tiemstamp-methog-reg" numbered="true" toc="default"> | |||
<ttcol align="center">Description</ttcol> | <name>STAMP Timestamping Methods Subregistry</name> | |||
<ttcol align="left">Reference</ttcol> | <t> | |||
<c>1</c> | IANA has created the "STAMP Timestamping Methods" subregistry. | |||
<c>Network available</c> | The code points in this registry are allocated | |||
<c>This document</c> | according to the registration procedures | |||
<c>2</c> | <xref target="RFC8126" format="default"/> | |||
<c>Network unavailable</c> | described in | |||
<c>This document</c> | <xref target="iana-timestamp-method-tbl" format="default"/>. | |||
</texttable> | </t> | |||
</section> | <table anchor="iana-timestamp-method-tbl" align="center"> | |||
<name>Registration Procedures for the STAMP Timestamping Methods Subre | ||||
gistry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left">Range</th> | ||||
<th align="center">Registration Procedures</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left">1 - 127</td> | ||||
<td align="center">IETF Review</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">128 - 239</td> | ||||
<td align="center">First Come First Served</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">240 - 249</td> | ||||
<td align="center">Experimental Use</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">250 - 254</td> | ||||
<td align="center">Private Use</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t>Per this document, IANA has allocated the following values in the "ST | ||||
AMP Timestamping Methods" subregistry:</t> | ||||
<table anchor="timestamp-method-new-tbl" align="center"> | ||||
<name>STAMP Timestamping Methods</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left">Value</th> | ||||
<th align="center">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left">0</td> | ||||
<td align="center">Reserved</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">1</td> | ||||
<td align="center">HW Assist</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">2</td> | ||||
<td align="center">SW Local</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">3</td> | ||||
<td align="center">Control Plane</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">255</td> | ||||
<td align="center">Reserved</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="iana-return-code-reg" numbered="true" toc="default"> | ||||
<name>STAMP Return Codes Subregistry</name> | ||||
<t> | ||||
IANA has created the "STAMP Return Codes" subregistry. | ||||
The code points in this registry are allocated | ||||
according to the registration procedures <xref target="RFC8126" format="defau | ||||
lt"/> described in | ||||
<xref target="iana-return-code-tbl" format="default"/>. | ||||
</t> | ||||
<table anchor="iana-return-code-tbl" align="center"> | ||||
<name>Registration Procedures for the STAMP Return Codes Subregistry</ | ||||
name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left">Range</th> | ||||
<th align="center">Registration Procedures</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left">1 - 127</td> | ||||
<td align="center">IETF Review</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">128 - 239</td> | ||||
<td align="center">First Come First Served</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">240 - 249</td> | ||||
<td align="center">Experimental Use</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">250 - 254</td> | ||||
<td align="center">Private Use</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t>Per this document, IANA has allocated the following values in the "ST | ||||
AMP Return Codes" subregistry:</t> | ||||
<table anchor="return-code-new-tbl" align="center"> | ||||
<name>STAMP Return Codes</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left">Value</th> | ||||
<th align="center">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left">0</td> | ||||
<td align="center">Reserved</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">1</td> | ||||
<td align="center">Network available</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">2</td> | ||||
<td align="center">Network unavailable</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">255</td> | ||||
<td align="center">Reserved</td> | ||||
<td align="left">RFC 8972</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
</section> | </section> | |||
<section anchor="security" numbered="true" toc="default"> | ||||
<section anchor="security" title="Security Considerations"> | <name>Security Considerations</name> | |||
<t> | <t> | |||
This document defines extensions to STAMP <xref target="RFC8762"/> and inherits | This document defines extensions to STAMP <xref target="RFC8762" format="default | |||
all the security considerations | "/> and inherits all the security considerations | |||
applicable to the base protocol. Additionally, the HMAC TLV is defined in this d ocument. | applicable to the base protocol. Additionally, the HMAC TLV is defined in this d ocument. | |||
Though the HMAC TLV protects the integrity of STAMP extensions; it does not prot | Though the HMAC TLV protects the integrity of STAMP extensions, it does not prot | |||
ect against a replay attack. | ect against a replay attack. | |||
The use of HMAC TLV is discussed in detail in <xref target="hmac-sec"/>. | The use of the HMAC TLV is discussed in detail in <xref target="hmac-sec" format | |||
</t> | ="default"/>. | |||
<t> | </t> | |||
To protect against a malformed TLV an implementation of a Session-Sender an | <t> | |||
d Session-Reflector MUST: | To protect against a malformed TLV, an implementation of a Session-Sender a | |||
<list style="symbols"> | nd Session-Reflector <bcp14>MUST</bcp14>: | |||
<t>check the setting of the M flag;</t> | </t> | |||
<t>validate the Length field value.</t> | <ul spacing="normal"> | |||
</list> | <li>check the setting of the M flag and</li> | |||
</t> | <li>validate the Length field value.</li> | |||
<t> | </ul> | |||
As this specification defined the mechanism to test DSCP mapping, | <t> | |||
this document inherits all the security considerations discussed in <xref tar | As this specification defines the mechanism to test DSCP mapping, | |||
get="RFC2474"/>. | this document inherits all the security considerations discussed in <xref tar | |||
get="RFC2474" format="default"/>. | ||||
Monitoring and optional control of DSCP using the CoS TLV may be used across the Internet so that | Monitoring and optional control of DSCP using the CoS TLV may be used across the Internet so that | |||
the Session-Sender and the Session-Reflector are located in domains that us e different CoS profiles. Thus, | the Session-Sender and the Session-Reflector are located in domains that us e different CoS profiles. Thus, | |||
it is essential that an operator verifies the set of CoS values that are us | it is essential that an operator verify the set of CoS values that is used | |||
ed in the Session-Reflector's domain. | in the Session-Reflector's domain. | |||
Also, an implementation of a Session-Reflector SHOULD support a local polic | Also, an implementation of a Session-Reflector <bcp14>SHOULD</bcp14> suppor | |||
y to confirm whether the value sent by the Session-Sender | t a local policy to confirm whether the value sent by the Session-Sender | |||
can be used as the value of the DSCP field. <xref target="cos-info-section" | can be used as the value of the DSCP field. <xref target="cos-info-section" | |||
/> defines the use of that local policy. | format="default"/> defines the use of that local policy. | |||
</t> | </t> | |||
</section> | ||||
</section> | ||||
<section title="Acknowledgments"> | ||||
<t> | ||||
Authors much appreciate the thorough review and thoughtful comments rec | ||||
eived from | ||||
Tianran Zhou, Rakesh Gandhi, Yuezhong Song and Yali Wang. | ||||
The authors express their gratitude to Al Morton for his comments and t | ||||
he most valuable suggestions. | ||||
The authors greatly appreciate comments and thoughtful suggestions rece | ||||
ived from Martin Duke. | ||||
</t> | ||||
</section> | ||||
<section title="Contributors"> | ||||
<t> | ||||
The following people contributed text to this document: | ||||
<figure align="left"> | ||||
<artwork><![CDATA[ | ||||
Guo Jun | ||||
ZTE Corporation | ||||
68# Zijinghua Road | ||||
Nanjing, Jiangsu 210012 | ||||
P.R.China | ||||
Phone: +86 18105183663 | ||||
Email: guo.jun2@zte.com.cn | ||||
]]></artwork> | ||||
</figure> | ||||
</t> | ||||
</section> | ||||
</middle> | </middle> | |||
<back> | ||||
<back> | <displayreference target="I-D.irtf-pearg-numeric-ids-generation" to="NUM-IDS-GEN | |||
<references title="Normative References"> | "/> | |||
<?rfc include="reference.RFC.2119"?> | <references> | |||
<?rfc include="reference.RFC.8174"?> | <name>References</name> | |||
<references> | ||||
<name>Normative References</name> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2119.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8174.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8126.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8762.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2104.xml"/> | ||||
</references> | ||||
<references> | ||||
<name>Informative References</name> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5905.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.4868.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2474.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5357.xml"/> | ||||
<?rfc include="reference.RFC.8126"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .irtf-pearg-numeric-ids-generation-06.xml"/> | |||
<?rfc include="reference.RFC.8762"?> | <reference anchor="IEEE.1588.2008"> | |||
<front> | ||||
<title>IEEE Standard for a Precision Clock Synchronization Protocol | ||||
for Networked Measurement and Control Systems</title> | ||||
<author> | ||||
<organization/> | ||||
</author> | ||||
<date month="July" year="2008"/> | ||||
</front> | ||||
<seriesInfo name="IEEE Std." value="1588-2008"/> | ||||
<seriesInfo name="DOI" value="10.1109/IEEESTD.2008.4579760"/> | ||||
</reference> | ||||
<?rfc include="reference.RFC.2104"?> | <reference anchor="TS23501"> | |||
<front> | ||||
<title>Technical | ||||
Specification Group Services and System Aspects; System | ||||
Architecture for the 5G System (5GS); Stage 2 (Release 16)</title> | ||||
<author> | ||||
<organization>3GPP</organization> | ||||
</author> | ||||
<date year="2019"/> | ||||
</front> | ||||
<seriesInfo name="3GPP TS" value="23.501"/> | ||||
</reference> | ||||
<reference anchor="GPS"> | ||||
<front> | ||||
<title>Global Positioning System (GPS) Standard Positioning Service | ||||
(SPS) Performance Standard</title> | ||||
<author> | ||||
<organization/> | ||||
</author> | ||||
<date month="April" year="2020"/> | ||||
</front> | ||||
<seriesInfo name="GPS SPS" value="5th Edition"/> | ||||
</reference> | ||||
</references> | ||||
</references> | </references> | |||
<section numbered="false" toc="default"> | ||||
<name>Acknowledgments</name> | ||||
<t> | ||||
The authors very much appreciate the thorough review and thoughtful com | ||||
ments received from <contact fullname="Tianran Zhou"/>, <contact fullname="Rakes | ||||
h Gandhi"/>, <contact fullname="Yuezhong Song"/>, and <contact fullname="Yali Wa | ||||
ng"/>. | ||||
The authors express their gratitude to <contact fullname="Al Morton"/> | ||||
for his comments and valuable suggestions. | ||||
The authors greatly appreciate the comments and thoughtful suggestions | ||||
received from <contact fullname="Martin Duke"/>. | ||||
</t> | ||||
</section> | ||||
<section numbered="false" toc="default"> | ||||
<name>Contributors</name> | ||||
<t> | ||||
The following individual contributed text to this document: | ||||
</t> | ||||
<contact fullname="Guo Jun"> | ||||
<organization>ZTE Corporation</organization> | ||||
<address> | ||||
<postal> | ||||
<street>68# Zijinghua Road</street> | ||||
<city>Nanjing</city> | ||||
<region>Jiangsu</region> | ||||
<code>210012</code> | ||||
<country>China</country> | ||||
</postal> | ||||
<phone>+86 18105183663</phone> | ||||
<email>guo.jun2@zte.com.cn</email> | ||||
</address> | ||||
</contact> | ||||
</section> | ||||
</back> | ||||
<references title="Informative References"> | </rfc> | |||
<?rfc include="reference.RFC.5905"?> | ||||
<?rfc include="reference.RFC.4868"?> | ||||
<?rfc include="reference.RFC.2474"?> | ||||
<?rfc include="reference.RFC.5357"?> | ||||
<?rfc include="reference.I-D.gont-numeric-ids-generation"?> | ||||
<reference anchor="IEEE.1588.2008"> | ||||
<front> | ||||
<title>Standard for a Precision Clock Synchronization Protocol for Networked Mea | ||||
surement and Control Systems</title> | ||||
<author> | ||||
<organization/> | ||||
</author> | ||||
<date month="March" year="2008"/> | ||||
</front> | ||||
<seriesInfo name="IEEE" value="Standard 1588"/> | ||||
</reference> | ||||
<reference anchor="TS23501"> | ||||
<front> | ||||
<title>Technical Specification Group Services and System Aspects; System Archite | ||||
cture for the 5G System; Stage 2 (Release 16)</title> | ||||
<author> | ||||
<organization>3GPP (3rd Generation Partnership Project)</organization> | ||||
</author> | ||||
<date year="2019"/> | ||||
</front> | ||||
<seriesInfo name="3GPP" value="TS23501"/> | ||||
</reference> | ||||
<reference anchor="GPS"> | ||||
<front> | ||||
<title>Global Positioning System (GPS) Standard Positioning Service (SPS) Perfor | ||||
mance Standard</title> | ||||
<author> | ||||
<organization/> | ||||
</author> | ||||
<date month="April" year="2020"/> | ||||
</front> | ||||
<seriesInfo name="GPS SPS" value="5th Edition"/> | ||||
</reference> | ||||
</references> | ||||
</back> | ||||
</rfc> | ||||
End of changes. 153 change blocks. | ||||
1379 lines changed or deleted | 1535 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |