rfc9451.original | rfc9451.txt | |||
---|---|---|---|---|
sfc M. Boucadair | Internet Engineering Task Force (IETF) M. Boucadair | |||
Internet-Draft Orange | Request for Comments: 9451 Orange | |||
Updates: 8300 (if approved) 26 March 2023 | Updates: 8300 August 2023 | |||
Intended status: Standards Track | Category: Standards Track | |||
Expires: 27 September 2023 | ISSN: 2070-1721 | |||
OAM Packet and Behavior in the Network Service Header (NSH) | Operations, Administration, and Maintenance (OAM) Packet and Behavior in | |||
draft-ietf-sfc-oam-packet-03 | the Network Service Header (NSH) | |||
Abstract | Abstract | |||
This document clarifies an ambiguity in the Network Service Header | This document clarifies an ambiguity in the Network Service Header | |||
(NSH) specification related to the handling of O bit. In particular, | (NSH) specification related to the handling of O bit. In particular, | |||
this document clarifies the meaning of "OAM packet". | this document clarifies the meaning of "OAM packet". | |||
This document updates RFC 8300. | This document updates RFC 8300. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 27 September 2023. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9451. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2023 IETF Trust and the persons identified as the | Copyright (c) 2023 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 2. Terminology | |||
3. An Update to RFC8300 . . . . . . . . . . . . . . . . . . . . 3 | 3. An Update to RFC 8300 | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 | 4. IANA Considerations | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 | 5. Security Considerations | |||
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 5 | 6. References | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 6.1. Normative References | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 5 | 6.2. Informative References | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 5 | Acknowledgments | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 6 | Author's Address | |||
1. Introduction | 1. Introduction | |||
This document clarifies an ambiguity related to the definition of | This document clarifies an ambiguity related to the definition of the | |||
Operations, Administration, and Maintenance (OAM) packet discussed in | Operations, Administration, and Maintenance (OAM) packet discussed in | |||
[RFC8300]. | [RFC8300]. | |||
The processing of the O bit in the Network Service Header (NSH) must | Processing of the O bit in the Network Service Header (NSH) must | |||
follow the updated behavior specified in Section 3. | follow the updated behavior specified in Section 3. | |||
2. Terminology | 2. Terminology | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
This document makes use of the terms defined in [RFC7665] and | This document makes use of the terms defined in [RFC7665] and | |||
[RFC8300]. | [RFC8300]. | |||
The document defines the following terms: | The document defines the following terms: | |||
SFC data plane element: refers to SFC-aware Service Function (SF), | Service Function Chaining (SFC) data plane element: refers to the | |||
Service Function Forwarder (SFF), SFC Proxy, or Classifier as | SFC-aware Service Function (SF), Service Function Forwarder (SFF), | |||
defined in the SFC data plane architecture [RFC7665] and further | SFC Proxy, or Classifier as defined in the SFC data plane | |||
refined in [RFC8300]. | architecture [RFC7665] and further refined in [RFC8300]. | |||
OAM control element: an NSH-aware element that is capable of | OAM control element: an NSH-aware element that is capable of | |||
generating NSH OAM packets. An SFC data plane element may behave | generating NSH OAM packets. An SFC data plane element may behave | |||
as an OAM control element. | as an OAM control element. | |||
SFC OAM data: refers to an OAM request (e.g., Connectivity | SFC OAM data: refers to an OAM request (e.g., Connectivity | |||
Verification and Continuity Checks [RFC7276]), any data that | Verification and Continuity Checks [RFC7276]), any data that | |||
influences how to execute a companion OAM request (e.g., identity | influences how to execute a companion OAM request (e.g., identity | |||
of a terminating SF), the output data of an OAM request, and any | of a terminating SF), the output data of an OAM request, and any | |||
combination thereof. | combination thereof. | |||
User data: refers to user packets cited in Section 5.7 of [RFC7665]. | User data: refers to user packets cited in Section 5.7 of [RFC7665]. | |||
3. An Update to RFC8300 | 3. An Update to RFC 8300 | |||
This document updates Section 2.2 of [RFC8300] as follows: | This document updates Section 2.2 of [RFC8300] as follows: | |||
OLD: | OLD: | |||
O bit: Setting this bit indicates an OAM packet (see [RFC6291]). | ||||
The actual format and processing of SFC OAM packets is outside | ||||
the scope of this specification (for example, see [SFC-OAM- | ||||
FRAMEWORK] for one approach). | ||||
The O bit MUST be set for OAM packets and MUST NOT be set for | | O bit: Setting this bit indicates an OAM packet (see [RFC6291]). | |||
non-OAM packets. The O bit MUST NOT be modified along the SFP. | | The actual format and processing of SFC OAM packets is outside | |||
| the scope of this specification (for example, see [SFC-OAM- | ||||
SF/SFF/SFC Proxy/Classifier implementations that do not support | | FRAMEWORK] for one approach). | |||
SFC OAM procedures SHOULD discard packets with O bit set, but | | | |||
MAY support a configurable parameter to enable forwarding | | The O bit MUST be set for OAM packets and MUST NOT be set for | |||
received SFC OAM packets unmodified to the next element in the | | non-OAM packets. The O bit MUST NOT be modified along the SFP. | |||
chain. Forwarding OAM packets unmodified by SFC elements that | | | |||
do not support SFC OAM procedures may be acceptable for a | | SF/SFF/SFC Proxy/Classifier implementations that do not support | |||
subset of OAM functions, but it can result in unexpected | | SFC OAM procedures SHOULD discard packets with O bit set, but | |||
outcomes for others; thus, it is recommended to analyze the | | MAY support a configurable parameter to enable forwarding | |||
impact of forwarding an OAM packet for all OAM functions prior | | received SFC OAM packets unmodified to the next element in the | |||
to enabling this behavior. The configurable parameter MUST be | | chain. Forwarding OAM packets unmodified by SFC elements that | |||
disabled by default. | | do not support SFC OAM procedures may be acceptable for a | |||
| subset of OAM functions, but it can result in unexpected | ||||
| outcomes for others; thus, it is recommended to analyze the | ||||
| impact of forwarding an OAM packet for all OAM functions prior | ||||
| to enabling this behavior. The configurable parameter MUST be | ||||
| disabled by default. | ||||
NEW: | NEW: | |||
O bit: Setting this bit indicates an NSH OAM packet. Such a | ||||
packet is any NSH-encapsulated packet that exclusively includes | ||||
SFC OAM data. SFC OAM data can be included in the Fixed-Length | ||||
Context Header, optional Context Headers, and/or the inner | ||||
packet. | ||||
The O bit is typically set by an OAM controller or a final | ||||
destination of an NSH OAM packet that triggers a response | ||||
(e.g., a specific SFC-aware SF, the last SFF of an SFP). | ||||
The O bit MUST be set for NSH OAM packets and MUST NOT be set | | O bit: Setting this bit indicates an NSH OAM packet. Such a | |||
for non-OAM packets. The O bit MUST NOT be modified along the | | packet is any NSH-encapsulated packet that exclusively includes | |||
SFP. | | SFC OAM data. SFC OAM data can be included in the Fixed-Length | |||
| Context Header, optional Context Headers, and/or the inner | ||||
NSH-encapsulated packets that include user data are not | | packet. | |||
considered as NSH OAM packets even if some SFC OAM data (e.g., | | | |||
record route) is also supplied in the packet. | | The O bit is typically set by an OAM controller or a final | |||
| destination of an NSH OAM packet that triggers a response | ||||
When SFC OAM data is included in the inner packet, the Next | | (e.g., a specific SFC-aware SF or the last SFF of an SFP). | |||
Protocol field is set to reflect the structure of that inner | | | |||
OAM packet. The setting and processing of the O bit neither | | The O bit MUST be set for NSH OAM packets and MUST NOT be set | |||
assumes nor expects detailed analysis of the content of any | | for non-OAM packets. The O bit MUST NOT be modified along the | |||
inner IP packet carried by the NSH. In order to prevent non | | SFP. | |||
deterministic behaviors, SFC data plane elements MAY support a | | | |||
configuration parameter to filter valid Next Protocol values in | | NSH-encapsulated packets that include user data are not | |||
NSH OAM packets. Absent explicit configuration, SFFs, SFC- | | considered NSH OAM packets even if some SFC OAM data (e.g., | |||
aware SFs, and SFC Proxies SHOULD discard any NSH packets with | | record route) is also supplied in the packet. | |||
the O bit set and Next Protocol set to something that is not | | | |||
itself an OAM protocol. This includes discarding the packet | | When SFC OAM data is included in the inner packet, the Next | |||
when the O bit is set and the Next Protocol is set to 0x01 | | Protocol field is set to reflect the structure of that inner | |||
(IPv4), 0x02 (IPv6), 0x03 (MPLS), or 0x05 (Ethernet). | | OAM packet. The setting and processing of the O bit neither | |||
| assumes nor expects detailed analysis of the content of any | ||||
An NSH OAM packet MAY include optional Context Headers (e.g., a | | inner IP packet carried by the NSH. In order to prevent non- | |||
subscriber identifier [RFC8979] or a flow identifier [RFC9263]) | | deterministic behaviors, SFC data plane elements MAY support a | |||
that are used to influence the processing of the packet by SFC | | configuration parameter to filter valid Next Protocol values in | |||
data plane elements. | | NSH OAM packets. Absent explicit configuration, SFFs, SFC- | |||
| aware SFs, and SFC Proxies SHOULD discard any NSH packets with | ||||
An NSH OAM packet MAY include SFC OAM data in both Context | | the O bit set and Next Protocol set to something that is not | |||
Headers and the inner packet. The processing (including the | | itself an OAM protocol. This includes discarding the packet | |||
order) of the SFC OAM data SHOULD be specified in the relevant | | when the O bit is set and the Next Protocol is set to 0x01 | |||
OAM or Context Header specification. | | (IPv4), 0x02 (IPv6), 0x03 (MPLS), or 0x05 (Ethernet). | |||
| | ||||
SFC-aware SF/SFF/SFC Proxy/Classifier implementations that do | | An NSH OAM packet MAY include optional Context Headers (e.g., a | |||
not support SFC OAM procedures SHOULD discard packets with the | | subscriber identifier [RFC8979] or a flow identifier [RFC9263]) | |||
O bit set, but MAY support a configurable parameter to enable | | that are used to influence the processing of the packet by SFC | |||
forwarding received NSH OAM packets unmodified to the next | | data plane elements. | |||
element in the chain. Forwarding NSH OAM packets unmodified by | | | |||
SFC data plane elements that do not support SFC OAM procedures | | An NSH OAM packet MAY include SFC OAM data in both Context | |||
may be acceptable for a subset of OAM functions, but it can | | Headers and the inner packet. The processing of the SFC OAM | |||
result in unexpected outcomes for others; thus, it is | | data (including the order) SHOULD be specified in the relevant | |||
recommended to analyze the impact of forwarding an NSH OAM | | OAM or Context Header specification. | |||
packet for all OAM functions prior to enabling this behavior. | | | |||
The configurable parameter MUST be disabled by default. | | SFC-aware implementations of SF, SFF, SFC Proxy, and Classifier | |||
| that do not support SFC OAM procedures SHOULD discard packets | ||||
The actual format and additional processing of NSH OAM packets | | with the O bit set but MAY support a configurable parameter to | |||
is outside the scope of this specification. | | enable forwarding received NSH OAM packets unmodified to the | |||
| next element in the chain. Forwarding NSH OAM packets | ||||
| unmodified by SFC data plane elements that do not support SFC | ||||
| OAM procedures may be acceptable for a subset of OAM functions, | ||||
| but it can result in unexpected outcomes for others. Thus, it | ||||
| is recommended to analyze the impact of forwarding an NSH OAM | ||||
| packet for all OAM functions prior to enabling this behavior. | ||||
| The configurable parameter MUST be disabled by default. | ||||
| | ||||
| The actual format and additional processing of NSH OAM packets | ||||
| is outside the scope of this specification. | ||||
4. IANA Considerations | 4. IANA Considerations | |||
This document does not make any request to IANA. | This document has no IANA actions. | |||
5. Security Considerations | 5. Security Considerations | |||
Data plane SFC-related security considerations, including privacy, | Data plane SFC-related security considerations, including privacy, | |||
are discussed in Section 6 of [RFC7665] and Section 8 of [RFC8300]. | are discussed in Section 6 of [RFC7665] and Section 8 of [RFC8300]. | |||
Additional security considerations related to SFC OAM are discussed | Additional security considerations related to SFC OAM are discussed | |||
in Section 9 of [RFC8924]. | in Section 9 of [RFC8924]. | |||
Any data included in an NSH OAM packet SHOULD be integrity-protected | Any data included in an NSH OAM packet SHOULD be integrity protected | |||
[RFC9145]. | [RFC9145]. | |||
6. Acknowledgments | 6. References | |||
Thanks to Jim Guichard, Greg Mirsky, Joel Halpern, Christian | ||||
Jacquenet, Dirk von-Hugo, Carlos Pignataro, and Frank Brockners for | ||||
the comments. | ||||
Thanks to Barry Leiba for the art directorate review and Russ Housley | ||||
for the security directorate review. | ||||
Thanks to Alvaro Retana and Robert Wilton for the IESG review. | ||||
7. References | ||||
7.1. Normative References | 6.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
skipping to change at page 5, line 50 ¶ | skipping to change at line 223 ¶ | |||
"Network Service Header (NSH)", RFC 8300, | "Network Service Header (NSH)", RFC 8300, | |||
DOI 10.17487/RFC8300, January 2018, | DOI 10.17487/RFC8300, January 2018, | |||
<https://www.rfc-editor.org/info/rfc8300>. | <https://www.rfc-editor.org/info/rfc8300>. | |||
[RFC9145] Boucadair, M., Reddy.K, T., and D. Wing, "Integrity | [RFC9145] Boucadair, M., Reddy.K, T., and D. Wing, "Integrity | |||
Protection for the Network Service Header (NSH) and | Protection for the Network Service Header (NSH) and | |||
Encryption of Sensitive Context Headers", RFC 9145, | Encryption of Sensitive Context Headers", RFC 9145, | |||
DOI 10.17487/RFC9145, December 2021, | DOI 10.17487/RFC9145, December 2021, | |||
<https://www.rfc-editor.org/info/rfc9145>. | <https://www.rfc-editor.org/info/rfc9145>. | |||
7.2. Informative References | 6.2. Informative References | |||
[RFC6291] Andersson, L., van Helvoort, H., Bonica, R., Romascanu, | [RFC6291] Andersson, L., van Helvoort, H., Bonica, R., Romascanu, | |||
D., and S. Mansfield, "Guidelines for the Use of the "OAM" | D., and S. Mansfield, "Guidelines for the Use of the "OAM" | |||
Acronym in the IETF", BCP 161, RFC 6291, | Acronym in the IETF", BCP 161, RFC 6291, | |||
DOI 10.17487/RFC6291, June 2011, | DOI 10.17487/RFC6291, June 2011, | |||
<https://www.rfc-editor.org/info/rfc6291>. | <https://www.rfc-editor.org/info/rfc6291>. | |||
[RFC7276] Mizrahi, T., Sprecher, N., Bellagamba, E., and Y. | [RFC7276] Mizrahi, T., Sprecher, N., Bellagamba, E., and Y. | |||
Weingarten, "An Overview of Operations, Administration, | Weingarten, "An Overview of Operations, Administration, | |||
and Maintenance (OAM) Tools", RFC 7276, | and Maintenance (OAM) Tools", RFC 7276, | |||
skipping to change at page 6, line 40 ¶ | skipping to change at line 260 ¶ | |||
Network Service Header (NSH)", RFC 8979, | Network Service Header (NSH)", RFC 8979, | |||
DOI 10.17487/RFC8979, February 2021, | DOI 10.17487/RFC8979, February 2021, | |||
<https://www.rfc-editor.org/info/rfc8979>. | <https://www.rfc-editor.org/info/rfc8979>. | |||
[RFC9263] Wei, Y., Ed., Elzur, U., Majee, S., Pignataro, C., and D. | [RFC9263] Wei, Y., Ed., Elzur, U., Majee, S., Pignataro, C., and D. | |||
Eastlake 3rd, "Network Service Header (NSH) Metadata Type | Eastlake 3rd, "Network Service Header (NSH) Metadata Type | |||
2 Variable-Length Context Headers", RFC 9263, | 2 Variable-Length Context Headers", RFC 9263, | |||
DOI 10.17487/RFC9263, August 2022, | DOI 10.17487/RFC9263, August 2022, | |||
<https://www.rfc-editor.org/info/rfc9263>. | <https://www.rfc-editor.org/info/rfc9263>. | |||
Acknowledgments | ||||
Thanks to Jim Guichard, Greg Mirsky, Joel Halpern, Christian | ||||
Jacquenet, Dirk von-Hugo, Carlos Pignataro, and Frank Brockners for | ||||
the comments. | ||||
Thanks to Barry Leiba for the art directorate review and Russ Housley | ||||
for the security directorate review. | ||||
Thanks to Alvaro Retana and Robert Wilton for their IESG reviews. | ||||
Author's Address | Author's Address | |||
Mohamed Boucadair | Mohamed Boucadair | |||
Orange | Orange | |||
35000 Rennes | 35000 Rennes | |||
France | France | |||
Email: mohamed.boucadair@orange.com | Email: mohamed.boucadair@orange.com | |||
End of changes. 22 change blocks. | ||||
134 lines changed or deleted | 134 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |