draft-ietf-ippm-stamp-option-tlv-09.txt | draft-ietf-ippm-stamp-option-tlv-10.txt | |||
---|---|---|---|---|
Network Working Group G. Mirsky | Network Working Group G. Mirsky | |||
Internet-Draft X. Min | Internet-Draft X. Min | |||
Updates: 8762 (if approved) ZTE Corp. | Updates: 8762 (if approved) ZTE Corp. | |||
Intended status: Standards Track H. Nydell | Intended status: Standards Track H. Nydell | |||
Expires: February 22, 2021 Accedian Networks | Expires: May 19, 2021 Accedian Networks | |||
R. Foote | R. Foote | |||
Nokia | Nokia | |||
A. Masputra | A. Masputra | |||
Apple Inc. | Apple Inc. | |||
E. Ruffini | E. Ruffini | |||
OutSys | OutSys | |||
August 21, 2020 | November 15, 2020 | |||
Simple Two-way Active Measurement Protocol Optional Extensions | Simple Two-way Active Measurement Protocol Optional Extensions | |||
draft-ietf-ippm-stamp-option-tlv-09 | draft-ietf-ippm-stamp-option-tlv-10 | |||
Abstract | Abstract | |||
This document describes optional extensions to Simple Two-way Active | This document describes optional extensions to Simple Two-way Active | |||
Measurement Protocol (STAMP) that enable measurement of performance | Measurement Protocol (STAMP) that enable measurement of performance | |||
metrics. The document also defines a STAMP Test Session Identifier | metrics. The document also defines a STAMP Test Session Identifier | |||
and thus updates RFC 8762. | and thus updates RFC 8762. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 1, line 41 ¶ | skipping to change at page 1, line 41 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on February 22, 2021. | This Internet-Draft will expire on May 19, 2021. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 27 ¶ | skipping to change at page 2, line 27 ¶ | |||
2.2. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 2.2. Requirements Language . . . . . . . . . . . . . . . . . . 3 | |||
3. STAMP Test Session Identifier . . . . . . . . . . . . . . . . 4 | 3. STAMP Test Session Identifier . . . . . . . . . . . . . . . . 4 | |||
4. TLV Extensions to STAMP . . . . . . . . . . . . . . . . . . . 8 | 4. TLV Extensions to STAMP . . . . . . . . . . . . . . . . . . . 8 | |||
4.1. Extra Padding TLV . . . . . . . . . . . . . . . . . . . . 11 | 4.1. Extra Padding TLV . . . . . . . . . . . . . . . . . . . . 11 | |||
4.2. Location TLV . . . . . . . . . . . . . . . . . . . . . . 12 | 4.2. Location TLV . . . . . . . . . . . . . . . . . . . . . . 12 | |||
4.2.1. Location Sub-TLVs . . . . . . . . . . . . . . . . . . 13 | 4.2.1. Location Sub-TLVs . . . . . . . . . . . . . . . . . . 13 | |||
4.2.2. Theory of Operation of Location TLV . . . . . . . . . 14 | 4.2.2. Theory of Operation of Location TLV . . . . . . . . . 14 | |||
4.3. Timestamp Information TLV . . . . . . . . . . . . . . . . 16 | 4.3. Timestamp Information TLV . . . . . . . . . . . . . . . . 16 | |||
4.4. Class of Service TLV . . . . . . . . . . . . . . . . . . 17 | 4.4. Class of Service TLV . . . . . . . . . . . . . . . . . . 17 | |||
4.5. Direct Measurement TLV . . . . . . . . . . . . . . . . . 18 | 4.5. Direct Measurement TLV . . . . . . . . . . . . . . . . . 18 | |||
4.6. Access Report TLV . . . . . . . . . . . . . . . . . . . . 19 | 4.6. Access Report TLV . . . . . . . . . . . . . . . . . . . . 20 | |||
4.7. Follow-up Telemetry TLV . . . . . . . . . . . . . . . . . 21 | 4.7. Follow-up Telemetry TLV . . . . . . . . . . . . . . . . . 21 | |||
4.8. HMAC TLV . . . . . . . . . . . . . . . . . . . . . . . . 23 | 4.8. HMAC TLV . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 | |||
5.1. STAMP TLV Registry . . . . . . . . . . . . . . . . . . . 24 | 5.1. STAMP TLV Registry . . . . . . . . . . . . . . . . . . . 24 | |||
5.2. STAMP TLV Flags Sub-registry . . . . . . . . . . . . . . 25 | 5.2. STAMP TLV Flags Sub-registry . . . . . . . . . . . . . . 25 | |||
5.3. Sub-TLV Type Sub-registry . . . . . . . . . . . . . . . . 25 | 5.3. Sub-TLV Type Sub-registry . . . . . . . . . . . . . . . . 26 | |||
5.4. Synchronization Source Sub-registry . . . . . . . . . . . 26 | 5.4. Synchronization Source Sub-registry . . . . . . . . . . . 26 | |||
5.5. Timestamping Method Sub-registry . . . . . . . . . . . . 27 | 5.5. Timestamping Method Sub-registry . . . . . . . . . . . . 27 | |||
5.6. Return Code Sub-registry . . . . . . . . . . . . . . . . 28 | 5.6. Return Code Sub-registry . . . . . . . . . . . . . . . . 28 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 29 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 29 | |||
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 29 | 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 29 | |||
8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 29 | 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 30 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 30 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 30 | 9.2. Informative References . . . . . . . . . . . . . . . . . 30 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31 | |||
1. Introduction | 1. Introduction | |||
Simple Two-way Active Measurement Protocol (STAMP) [RFC8762] defined | Simple Two-way Active Measurement Protocol (STAMP) [RFC8762] defined | |||
the STAMP base functionalities. This document specifies the use of | the STAMP base functionalities. This document specifies the use of | |||
optional extensions that use Type-Length-Value (TLV) encoding. Such | optional extensions that use Type-Length-Value (TLV) encoding. Such | |||
skipping to change at page 10, line 40 ¶ | skipping to change at page 10, line 40 ¶ | |||
STAMP test packet in the mode, unauthenticated or authenticated based | STAMP test packet in the mode, unauthenticated or authenticated based | |||
on the configuration of the particular STAMP test session. If the | on the configuration of the particular STAMP test session. If the | |||
difference between the two values is larger than the length of the | difference between the two values is larger than the length of the | |||
UDP header, then the test packet includes one or more STAMP TLVs that | UDP header, then the test packet includes one or more STAMP TLVs that | |||
immediately follow the base STAMP test packet. A Session-Reflector | immediately follow the base STAMP test packet. A Session-Reflector | |||
that does not support STAMP extensions will not process but copy them | that does not support STAMP extensions will not process but copy them | |||
into the reflected packet, as defined in Section 4.3 [RFC8762]. A | into the reflected packet, as defined in Section 4.3 [RFC8762]. A | |||
Session-Reflector that supports TLVs will indicate specific TLVs that | 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. | |||
A STAMP system, i.e., either a Session-Sender or a Session-Reflector, | A STAMP Session-Sender that has received a reflected STAMP test | |||
that has received a STAMP test packet with extension TLVs MUST | packet with extension TLVs MUST validate each TLV: | |||
validate each TLV: | ||||
If the U flag is set, the STAMP system MUST skip the processing of | If the U flag is set, the STAMP system MUST skip the processing of | |||
the TLV. | the TLV. | |||
If the M flag is set, the STAMP system MUST stop processing the | If the M flag is set, the STAMP system MUST stop processing the | |||
remainder of the extended STAMP packet. | remainder of the extended STAMP packet. | |||
If the I flag is set, the STAMP system MUST discard all TLVs and | If the I flag is set, the STAMP system MUST discard all TLVs and | |||
MUST stop processing the remainder of the extended STAMP packet. | MUST stop processing the remainder of the extended STAMP packet. | |||
skipping to change at page 13, line 5 ¶ | skipping to change at page 12, line 50 ¶ | |||
o Source Port - two-octet-long UDP source port number of the | o Source Port - two-octet-long UDP source port number of the | |||
received STAMP packet. | received STAMP packet. | |||
o Sub-TLVs - a sequence of sub-TLVs, as defined further in this | o Sub-TLVs - a sequence of sub-TLVs, as defined further in this | |||
section. The sub-TLVs are used by the Session-Sender to request | section. The sub-TLVs are used by the Session-Sender to request | |||
location information with generic sub-TLV types, and the Session- | location information with generic sub-TLV types, and the Session- | |||
Reflector responds with the corresponding more-specific sub-TLVs | Reflector responds with the corresponding more-specific sub-TLVs | |||
for the type of address (e.g., IPv4 or IPv6) used at the Session- | for the type of address (e.g., IPv4 or IPv6) used at the Session- | |||
Reflector. | Reflector. | |||
Note that all fields not filled by either a Session-Sender or | ||||
Session-Reflector are transmitted with all bits set to zero. | ||||
4.2.1. Location Sub-TLVs | 4.2.1. Location Sub-TLVs | |||
A sub-TLV in the Location TLV uses the format displayed in Figure 5. | A sub-TLV in the Location TLV uses the format displayed in Figure 5. | |||
Handling of the U and M flags in the sub-TLV is as defined in | Handling of the U and M flags in the sub-TLV is as defined in | |||
Section 4. The I flag MUST be set by a Session-Sender and Session- | Section 4. The I flag MUST be set by a Session-Sender and Session- | |||
Reflector to 0 before transmission and its value ignored on receipt. | Reflector to 0 before transmission and its value ignored on receipt. | |||
The following types of sub-TLV for the Location TLV are defined in | The following types of sub-TLV for the Location TLV are defined in | |||
this specification (type values are assigned according to Table 5): | this specification (type values are assigned according to Table 5): | |||
o Source MAC Address sub-TLV - is a 12-octet-long sub-TLV. The Type | o 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. | value is TBA9. The value of the Length field MUST equal to 8. | |||
The Value field is a 12-octet-long MBZ field that MUST be zeroed | The Value field is an 8-octet-long MBZ field that MUST be zeroed | |||
on transmission and ignored on receipt. | on transmission and ignored on receipt. | |||
o Source EUI-48 Address sub-TLV - is a 12-octet-long sub-TLV that | o Source EUI-48 Address sub-TLV - is a 12-octet-long sub-TLV that | |||
includes the EUI-48 source MAC address. The Type value is TBA10. | includes the EUI-48 source MAC address. The Type value is TBA10. | |||
The value of the Length field MUST equal to 8. | The value of the Length field MUST equal to 8. | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| EUI-48 Address | | | EUI-48 Address | | |||
skipping to change at page 13, line 42 ¶ | skipping to change at page 13, line 42 ¶ | |||
The Value field consists of the following fields (Figure 9): | The Value field consists of the following fields (Figure 9): | |||
* The EUI-48 is a six-octet-long field. | * The EUI-48 is a six-octet-long field. | |||
* Two-octet-ling MBZ field MUST be zeroed on transmission and | * Two-octet-ling MBZ field MUST be zeroed on transmission and | |||
ignored on receipt. | ignored on receipt. | |||
o Source EUI-64 Address sub-TLV - is a 12-octet-long sub-TLV that | o 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. | includes the EUI-64 source MAC address. The Type value is TBA11. | |||
The value of the Length field MUST equal to 12. The Value field | The value of the Length field MUST equal to 8. The Value field | |||
consists of an eight-octet-long EUI-64 field. | consists of an eight-octet-long EUI-64 field. | |||
o Destination IP Address sub-TLV - is a 20-octet-long sub-TLV. The | o Destination IP Address sub-TLV - is a 20-octet-long sub-TLV. The | |||
Type value is TBA12. The value of the Length field MUST equal to | Type value is TBA12. The value of the Length field MUST equal to | |||
16. The Value field consists of a 16-octet-long MBZ field that | 16. The Value field consists of a 16-octet-long MBZ field that | |||
MUST be zeroed on transmit and ignored on receipt | MUST be zeroed on transmit and ignored on receipt | |||
o Destination IPv4 Address sub-TLV - is a 20-octet-long sub-TLV that | o Destination IPv4 Address sub-TLV - is a 20-octet-long sub-TLV that | |||
includes IPv4 destination address. The Type value is TBA13. The | includes IPv4 destination address. The Type value is TBA13. The | |||
value of the Length field MUST equal to 16. | value of the Length field MUST equal to 16. | |||
skipping to change at page 15, line 10 ¶ | skipping to change at page 15, line 10 ¶ | |||
The Session-Reflector that received an extended STAMP packet with the | The Session-Reflector that received an extended STAMP packet with the | |||
Location TLV MUST include the Location TLV of the size equal to the | Location TLV MUST include the Location TLV of the size equal to the | |||
size of Location TLV in the received packet in the reflected packet. | size of Location TLV in the received packet in the reflected packet. | |||
Based on the local policy, the Session-Reflector MAY leave some | Based on the local policy, the Session-Reflector MAY leave some | |||
fields unreported by filling them with zeroes. An implementation of | fields unreported by filling them with zeroes. An implementation of | |||
the stateful Session-Reflector MUST provide control for managing such | the stateful Session-Reflector MUST provide control for managing such | |||
policies. | policies. | |||
A Session-Sender MAY include the Source MAC Address sub-TLV is the | A Session-Sender MAY include the Source MAC Address sub-TLV in the | |||
Location TLV. If the Session-Reflector receives the Location TLV | Location TLV. If the Session-Reflector receives the Location TLV | |||
that includes the Source MAC Address sub-TLV, it MUST include the | that includes the Source MAC Address sub-TLV, it MUST include the | |||
Source EUI-48 Address sub-TLV if the source MAC address of the | Source EUI-48 Address sub-TLV if the source MAC address of the | |||
received extended test packet is in EUI-48 format. And the Session- | received extended test packet is in EUI-48 format. And the Session- | |||
Reflector MUST copy the value of the source MAC address in the EUI-48 | Reflector MUST copy the value of the source MAC address in the EUI-48 | |||
field. Otherwise, the Session-Reflector MUST use the Source EUI-64 | field. Otherwise, the Session-Reflector MUST use the Source EUI-64 | |||
Address sub-TLV and MUST copy the value of the Source MAC address | Address sub-TLV and MUST copy the value of the Source MAC address | |||
from the received packet into the EUI-64 field. If the received | from the received packet into the EUI-64 field. If the received | |||
extended STAMP test packet does not have the Source MAC address, the | extended STAMP test packet does not have the Source MAC address, the | |||
Session-Reflector MUST zero the EUI-64 field before transmitting the | Session-Reflector MUST zero the EUI-64 field before transmitting the | |||
reflected packet. | reflected packet. | |||
A Session-Sender MAY include the Destination IP Address sub-TLV is | A Session-Sender MAY include the Destination IP Address sub-TLV in | |||
the Location TLV. If the Session-Reflector receives the Location TLV | the Location TLV. If the Session-Reflector receives the Location TLV | |||
that includes the Destination IP Address sub-TLV, it MUST include the | that includes the Destination IP Address sub-TLV, it MUST include the | |||
Destination IPv4 Address sub-TLV if the source IP address of the | Destination IPv4 Address sub-TLV if the source IP address of the | |||
received extended test packet is of IPv4 address family. And the | received extended test packet is of IPv4 address family. And the | |||
Session-Reflector MUST copy the value of the destination IP address | Session-Reflector MUST copy the value of the destination IP address | |||
in the IPv4 Address field. Otherwise, the Session-Reflector MUST use | in the IPv4 Address field. Otherwise, the Session-Reflector MUST use | |||
the Destination IPv6 Address sub-TLV and MUST copy the value of the | the Destination IPv6 Address sub-TLV and MUST copy the value of the | |||
destination IP address from the received packet into the IPv6 Address | destination IP address from the received packet into the IPv6 Address | |||
field. | field. | |||
A Session-Sender MAY include the Source IP Address sub-TLV is the | A Session-Sender MAY include the Source IP Address sub-TLV in the | |||
Location TLV. If the Session-Reflector receives the Location TLV | Location TLV. If the Session-Reflector receives the Location TLV | |||
that includes the Source IP Address sub-TLV, it MUST include the | that includes the Source IP Address sub-TLV, it MUST include the | |||
Source IPv4 Address sub-TLV if the source IP address of the received | Source IPv4 Address sub-TLV if the source IP address of the received | |||
extended test packet is of IPv4 address family. And the Session- | extended test packet is of IPv4 address family. And the Session- | |||
Reflector MUST copy the value of the source IP address in the IPv4 | Reflector MUST copy the value of the source IP address in the IPv4 | |||
Address field. Otherwise, the Session-Reflector MUST use the Source | Address field. Otherwise, the Session-Reflector MUST use the Source | |||
IPv6 Address sub-TLV and MUST copy the value of the source IP address | IPv6 Address sub-TLV and MUST copy the value of the source IP address | |||
from the received packet into the IPv6 Address field. | from the received packet into the IPv6 Address field. | |||
The Location TLV MAY be used to determine the last-hop IP addresses, | The Location TLV MAY be used to determine the last-hop IP addresses, | |||
skipping to change at page 16, line 10 ¶ | skipping to change at page 16, line 10 ¶ | |||
ports will indicate if there is a NAT router on the path. It allows | ports will indicate if there is a NAT router on the path. It allows | |||
the Session-Sender to identify the IP address of the Session- | the Session-Sender to identify the IP address of the Session- | |||
Reflector behind the NAT, and detect changes in the NAT mapping that | Reflector behind the NAT, and detect changes in the NAT mapping that | |||
could cause sending the STAMP packets to the wrong Session-Reflector. | could cause sending the STAMP packets to the wrong Session-Reflector. | |||
4.3. Timestamp Information TLV | 4.3. Timestamp Information TLV | |||
The STAMP Session-Sender MAY include the Timestamp Information TLV to | The STAMP Session-Sender MAY include the Timestamp Information TLV to | |||
request information from the Session-Reflector. The Session-Sender | request information from the Session-Reflector. The Session-Sender | |||
MUST NOT fill any information fields except for STAMP TLV Flags, | MUST NOT fill any information fields except for STAMP TLV Flags, | |||
Type, and Length. All other fields MUST be filled with zeroes The | Type, and Length. All other fields MUST be filled with zeroes. The | |||
Session-Reflector MUST validate the Length value of the TLV. If the | Session-Reflector MUST validate the Length value of the TLV. If the | |||
value of the Length field is invalid, the Session-Reflector follows | value of the Length field is invalid, the Session-Reflector follows | |||
the procedure defined in Section 4 for a malformed TLV. | the procedure defined in Section 4 for a malformed TLV. | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|STAMP TLV Flags|Times Info Type| Length | | |STAMP TLV Flags|Times Info Type| Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sync. Src In | Timestamp In | Sync. Src Out | Timestamp Out | | | Sync. Src In | Timestamp In | Sync. Src Out | Timestamp Out | | |||
skipping to change at page 17, line 26 ¶ | skipping to change at page 17, line 26 ¶ | |||
The STAMP Session-Sender MAY include a Class of Service (CoS) TLV in | The STAMP Session-Sender MAY include a Class of Service (CoS) TLV in | |||
the STAMP test packet. The format of the CoS TLV is presented in | the STAMP test packet. The format of the CoS TLV is presented in | |||
Figure 12. | Figure 12. | |||
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| CoS Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| DSCP1 | DSCP2 |ECN| Reserved | | | DSCP1 | DSCP2 |ECN| RP| Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 12: Class of Service TLV | Figure 12: Class of Service TLV | |||
where fields are defined as the following: | where fields are defined as the following: | |||
o STAMP TLV Flags - is an eight-bit-long field. Its format is | o STAMP TLV Flags - is an eight-bit-long field. Its format is | |||
presented in Figure 6. | presented in Figure 6. | |||
o CoS (Class of Service) Type - is a one-octet-long field, value | o CoS (Class of Service) Type - is a one-octet-long field, value | |||
skipping to change at page 17, line 51 ¶ | skipping to change at page 17, line 51 ¶ | |||
o DSCP1 - The Differentiated Services Code Point (DSCP) intended by | o DSCP1 - The Differentiated Services Code Point (DSCP) intended by | |||
the Session-Sender to be used as the DSCP value of the reflected | the Session-Sender to be used as the DSCP value of the reflected | |||
test packet. | test packet. | |||
o DSCP2 - The received value in the DSCP field at the ingress of the | o DSCP2 - The received value in the DSCP field at the ingress of the | |||
Session-Reflector. | Session-Reflector. | |||
o ECN - The received value in the ECN field at the ingress of the | o ECN - The received value in the ECN field at the ingress of the | |||
Session-Reflector. | Session-Reflector. | |||
o Reserved - 18-bit-long field, MUST be zeroed on transmission and | o RP (Reverse Path) - is a two-bit-long field. A Session-Sender | |||
MUST set the value of the RP field to 0 on transmission. | ||||
o Reserved - 16-bit-long field, MUST be zeroed on transmission and | ||||
ignored on receipt. | ignored on receipt. | |||
A STAMP Session-Reflector that receives a test packet with the CoS | A STAMP Session-Reflector that receives a test packet with the CoS | |||
TLV MUST include the CoS TLV in the reflected test packet. Also, the | TLV MUST include the CoS TLV in the reflected test packet. Also, the | |||
Session-Reflector MUST copy the value of the DSCP and ECN fields of | Session-Reflector MUST copy the value of the DSCP and ECN fields of | |||
the IP header of the received STAMP test packet into the DSCP2 field | the IP header of the received STAMP test packet into the DSCP2 field | |||
in the reflected test packet. Finally, the Session-Reflector MUST | in the reflected test packet. Finally, the Session-Reflector MUST | |||
set the DSCP field's value in the IP header of the reflected test | use the local policy to verify whether the CoS corresponding to the | |||
packet equal to the value of the DSCP1 field of the received test | value of the DSCP1 field is permitted in the domain. If it is, the | |||
packet. Upon receiving the reflected packet, the Session-Sender will | Session-Reflectorset MUST set the DSCP field's value in the IP header | |||
save the DSCP and ECN values for analysis of the CoS in the reverse | of the reflected test packet equal to the value of the DSCP1 field of | |||
direction. | the received test packet. Otherwise, the Session-Reflector MUST use | |||
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, the Session-Sender will save the DSCP and ECN | ||||
values for analysis of the CoS in the reverse direction. If the | ||||
value of the RP field in the received reflected packet is 1, only CoS | ||||
in the forward direction can be analyzed. | ||||
Re-mapping of CoS can be used to provide multiple services (e,g., 2G, | Re-mapping of CoS can be used to provide multiple services (e,g., 2G, | |||
3G, LTE in mobile backhaul networks) over the same network. But if | 3G, LTE in mobile backhaul networks) over the same network. But if | |||
it is misconfigured, then it is often difficult to diagnose the root | it is misconfigured, then it is often difficult to diagnose the root | |||
cause of excessive packet drops of higher-level service while packet | cause of excessive packet drops of higher-level service while packet | |||
drops for lower service packets are at a normal level. Using a CoS | drops for lower service packets are at a normal level. Using a CoS | |||
TLV in STAMP testing helps to troubleshoot the existing problem and | TLV in STAMP testing helps to troubleshoot the existing problem and | |||
also verify whether DiffServ policies are processing CoS as required | also verify whether DiffServ policies are processing CoS as required | |||
by the configuration. | by the configuration. | |||
skipping to change at page 29, line 21 ¶ | skipping to change at page 29, line 21 ¶ | |||
| 1 | Network available | This document | | | 1 | Network available | This document | | |||
| 2 | Network unavailable | This document | | | 2 | Network unavailable | This document | | |||
+-------+---------------------+---------------+ | +-------+---------------------+---------------+ | |||
Table 11: Return Codes | Table 11: Return Codes | |||
6. Security Considerations | 6. Security Considerations | |||
This document defines extensions to STAMP [RFC8762] and inherits all | This document defines extensions to STAMP [RFC8762] and inherits all | |||
the security considerations applicable to the base protocol. | the security considerations applicable to the base protocol. | |||
Additionally, the HMAC TLV is defined in this document to protect the | Additionally, the HMAC TLV is defined in this document. Though the | |||
integrity of optional STAMP extensions. The use of HMAC TLV is | HMAC TLV protects the integrity of STAMP extensions; it does not | |||
discussed in detail in Section 4.8. | protect against a replay attack. The use of HMAC TLV is discussed in | |||
detail in Section 4.8. | ||||
To protect against a malformed TLV an implementation of a Session- | To protect against a malformed TLV an implementation of a Session- | |||
Sender and Session-Reflector MUST: | Sender and Session-Reflector MUST: | |||
o check the setting of the M flag; | o check the setting of the M flag; | |||
o validate the Length field value. | o validate the Length field value. | |||
Monitoring and optional control of DSCP do not appear to introduce | As this specification defined the mechanism to test DSCP mapping, | |||
any additional security threat to hosts that communicate with STAMP | this document inherits all the security considerations discussed in | |||
as defined in [RFC8762]. As this specification defined the mechanism | [RFC2474]. Monitoring and optional control of DSCP using the CoS TLV | |||
to test DSCP mapping, this document inherits all the security | may be used across the Internet so that the Session-Sender and the | |||
considerations discussed in [RFC2474]. | Session-Reflector are located in domains that use different CoS | |||
profiles. Thus, it is essential that an operator verifies the set of | ||||
CoS values that are used in the Session-Reflector's domain. Also, an | ||||
implementation of a Session-Reflector SHOULD support a local policy | ||||
to confirm whether the value sent by the Session-Sender can be used | ||||
as the value of the DSCP field. Section 4.4 defines the use of that | ||||
local policy. | ||||
7. Acknowledgments | 7. Acknowledgments | |||
Authors much appreciate the thorough review and thoughtful comments | Authors much appreciate the thorough review and thoughtful comments | |||
received from Tianran Zhou, Rakesh Gandhi, Yuezhong Song and Yali | received from Tianran Zhou, Rakesh Gandhi, Yuezhong Song and Yali | |||
Wang. The authors express their gratitude to Al Morton for his | Wang. The authors express their gratitude to Al Morton for his | |||
comments and the most valuable suggestions. The authors greatly | comments and the most valuable suggestions. The authors greatly | |||
appreciate comments and thoughtful suggestions received from Martin | appreciate comments and thoughtful suggestions received from Martin | |||
Duke. | Duke. | |||
End of changes. 20 change blocks. | ||||
31 lines changed or deleted | 49 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/ |