| rfc9601.original.xml | rfc9601.xml | |||
|---|---|---|---|---|
| <?xml version='1.0' encoding='utf-8'?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE rfc [ | <!DOCTYPE rfc [ | |||
| <!ENTITY nbsp " "> | <!ENTITY nbsp " "> | |||
| <!ENTITY zwsp "​"> | <!ENTITY zwsp "​"> | |||
| <!ENTITY nbhy "‑"> | <!ENTITY nbhy "‑"> | |||
| <!ENTITY wj "⁠"> | <!ENTITY wj "⁠"> | |||
| ]> | ]> | |||
| <?xml-stylesheet type='text/xsl' href='https://xml.resource.org/authoring/rfc262 | ||||
| 9.xslt' ?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category=" | |||
| <!-- Alterations to I-D/RFC boilerplate --> | std" consensus="true" docName="draft-ietf-tsvwg-rfc6040update-shim-23" number="9 | |||
| <?rfc private="" ?> | 601" ipr="pre5378Trust200902" updates="6040, 2661, 2784, 3931, 4380, 7450" obsol | |||
| <!-- Default private="" Produce an internal memo 2.5pp shorter than an I-D or RF | etes="" xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" version=" | |||
| C --> | 3"> | |||
| <?rfc rfcprocack="yes" ?> | ||||
| <!-- Default rfcprocack="no" add a short sentence acknowledging xml2rfc --> | ||||
| <?rfc strict="no" ?> | ||||
| <!-- Default strict="no" Don't check I-D nits --> | ||||
| <?rfc rfcedstyle="yes" ?> | ||||
| <!-- Default rfcedstyle="yes" attempt to closely follow finer details from the l | ||||
| atest observable RFC-Editor style --> | ||||
| <!-- IETF process --> | ||||
| <?rfc iprnotified="no" ?> | ||||
| <!-- Default iprnotified="no" I haven't disclosed existence of IPR to IETF --> | ||||
| <!-- ToC format --> | ||||
| <?rfc toc="yes" ?> | ||||
| <!-- Default toc="no" No Table of Contents --> | ||||
| <!-- Cross referencing, footnotes, comments --> | ||||
| <?rfc symrefs="yes"?> | ||||
| <!-- Default symrefs="no" Don't use anchors, but use numbers for refs --> | ||||
| <?rfc sortrefs="yes"?> | ||||
| <!-- Default sortrefs="no" Don't sort references into order --> | ||||
| <?rfc comments="yes" ?> | ||||
| <!-- Default comments="no" Don't render comments --> | ||||
| <?rfc inline="no" ?> | ||||
| <!-- Default inline="no" if comments is "yes", then render comments inline; othe | ||||
| rwise render them in an `Editorial Comments' section --> | ||||
| <!-- Pagination control --> | ||||
| <?rfc compact="yes"?> | ||||
| <!-- Default compact="no" Start sections on new pages --> | ||||
| <?rfc subcompact="no"?> | ||||
| <!-- Default subcompact="(as compact setting)" yes/no is not quite as compact as | ||||
| yes/yes --> | ||||
| <!-- HTML formatting control --> | ||||
| <?rfc emoticonic="yes" ?> | ||||
| <!-- Default emoticonic="no" Doesn't prettify HTML format --> | ||||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" consensus="true" | ||||
| docName="draft-ietf-tsvwg-rfc6040update-shim-23" ipr="pre5378Trust200902" update | ||||
| s="6040, 2661, 2784, 3931, 4380, 7450" obsoletes="" submissionType="IETF" xml:la | ||||
| ng="en" tocInclude="true" symRefs="true" sortRefs="true" version="3"> | ||||
| <!-- xml2rfc v2v3 conversion 3.18.2 --> | ||||
| <front> | <front> | |||
| <title abbrev="ECN over IP-shim-(L2)-IP Tunnels">Propagating Explicit | <title abbrev="ECN over IP-shim-(L2)-IP Tunnels">Propagating Explicit | |||
| Congestion Notification Across IP Tunnel Headers Separated by a | Congestion Notification across IP Tunnel Headers Separated by a | |||
| Shim</title> | Shim</title> | |||
| <seriesInfo name="Internet-Draft" value="draft-ietf-tsvwg-rfc6040update-shim -23"/> | <seriesInfo name="RFC" value="9601"/> | |||
| <author fullname="Bob Briscoe" initials="B." surname="Briscoe"> | <author fullname="Bob Briscoe" initials="B." surname="Briscoe"> | |||
| <organization>Independent</organization> | <organization>Independent</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street/> | <country>United Kingdom</country> | |||
| <country>UK</country> | ||||
| </postal> | </postal> | |||
| <email>ietf@bobbriscoe.net</email> | <email>ietf@bobbriscoe.net</email> | |||
| <uri>https://bobbriscoe.net/</uri> | <uri>https://bobbriscoe.net/</uri> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year=""/> | <date year="2024" month="August"/> | |||
| <area>Transport</area> | <area>tsv</area> | |||
| <workgroup>Transport Area Working Group</workgroup> | <workgroup>tsvwg</workgroup> | |||
| <keyword>Congestion Control and Management</keyword> | <keyword>Congestion Control and Management</keyword> | |||
| <keyword>Congestion Notification</keyword> | <keyword>Congestion Notification</keyword> | |||
| <keyword>Information Security</keyword> | <keyword>Information Security</keyword> | |||
| <keyword>Tunnelling</keyword> | <keyword>Tunnelling</keyword> | |||
| <keyword>Encapsulation & Decapsulation</keyword> | <keyword>Encapsulation & Decapsulation</keyword> | |||
| <keyword>Protocol</keyword> | <keyword>Protocol</keyword> | |||
| <keyword>ECN</keyword> | <keyword>ECN</keyword> | |||
| <keyword>Layering</keyword> | <keyword>Layering</keyword> | |||
| <abstract> | <abstract> | |||
| <t>RFC 6040 on "Tunnelling of Explicit Congestion Notification" made the | <t>RFC 6040 on "Tunnelling of Explicit Congestion Notification" made the | |||
| rules for propagation of ECN consistent for all forms of IP in IP | rules for propagation of Explicit Congestion Notification (ECN) consistent for all forms of IP-in-IP | |||
| tunnel. This specification updates RFC 6040 to clarify that its scope | tunnel. This specification updates RFC 6040 to clarify that its scope | |||
| includes tunnels where two IP headers are separated by at least one shim | includes tunnels where two IP headers are separated by at least one shim | |||
| header that is not sufficient on its own for wide area packet | header that is not sufficient on its own for wide-area packet | |||
| forwarding. It surveys widely deployed IP tunnelling protocols that use | forwarding. It surveys widely deployed IP tunnelling protocols that use | |||
| such shim header(s) and updates the specifications of those that do not | such shim headers and updates the specifications of those that do not | |||
| mention ECN propagation (that is RFC 2661, RFC 3931, RFC 2784, RFC 4380 | mention ECN propagation (including RFCs 2661, 3931, 2784, 4380 | |||
| and RFC 7450, which respectively specify L2TPv2, L2TPv3, GRE, Teredo and | and 7450, which specify L2TPv2, L2TPv3, Generic Routing Encapsulation (GRE | |||
| AMT). This specification also updates RFC 6040 with configuration | ), Teredo, and | |||
| Automatic Multicast Tunneling (AMT), respectively). This specification als | ||||
| o updates RFC 6040 with configuration | ||||
| requirements needed to make any legacy tunnel ingress safe.</t> | requirements needed to make any legacy tunnel ingress safe.</t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <!-- ================================================================ --> | ||||
| <middle> | <middle> | |||
| <!-- ================================================================ --> | ||||
| <section anchor="rfc6040up_Introduction" numbered="true" toc="default"> | <section anchor="rfc6040up_Introduction" numbered="true" toc="default"> | |||
| <name>Introduction</name> | <name>Introduction</name> | |||
| <t>RFC 6040 on "Tunnelling of Explicit Congestion Notification" <xref targ | <t><xref target="RFC6040"/> on "Tunnelling of Explicit Congestion Notifica | |||
| et="RFC6040" format="default"/> made the rules for propagation of Explicit Conge | tion" made the rules for propagation of Explicit Congestion | |||
| stion | Notification (ECN) <xref target="RFC3168" format="default"/> consistent fo | |||
| Notification (ECN <xref target="RFC3168" format="default"/>) consistent fo | r all forms of | |||
| r all forms of | IP-in-IP tunnel.</t> | |||
| IP in IP tunnel.</t> | ||||
| <t>A common pattern for many tunnelling protocols is to encapsulate an | <t>A common pattern for many tunnelling protocols is to encapsulate an | |||
| inner IP header (v4 or v6) with shim header(s) then an outer IP header | inner IP header (v4 or v6) with one or more shim headers then an outer IP header | |||
| (v4 or v6). Some of these shim headers are designed as generic | (v4 or v6). Some of these shim headers are designed as generic | |||
| encapsulations, so they do not necessarily directly encapsulate an inner | encapsulations, so they do not necessarily directly encapsulate an inner | |||
| IP header. Instead, they can encapsulate headers such as link-layer (L2) | IP header. Instead, they can encapsulate headers such as link-layer (L2) p | |||
| protocols that in turn often encapsulate IP.</t> | rotocols that, in | |||
| turn, often encapsulate IP. Thus, the abbreviation 'IP-shim-(L2)-IP' can be used | ||||
| for tunnels that are in scope of this document.</t> | ||||
| <t>To clear up confusion, this specification clarifies that the scope of | <t>To clear up confusion, this specification clarifies that the scope of | |||
| RFC 6040 includes any IP-in-IP tunnel, including those with shim | <xref target="RFC6040"/> includes any IP-in-IP tunnel, including those wit | |||
| header(s) and other encapsulations between the IP headers. Where | h one or more shim | |||
| headers and other encapsulations between the IP headers. Where | ||||
| necessary, it updates the specifications of the relevant encapsulation | necessary, it updates the specifications of the relevant encapsulation | |||
| protocols with the specific text necessary to comply with RFC 6040.</t> | protocols with the specific text necessary to comply with <xref target="RF | |||
| <t>This specification also updates RFC 6040 to state how operators ought | C6040"/>.</t> | |||
| <t>This specification also updates <xref target="RFC6040"/> to state how o | ||||
| perators ought | ||||
| to configure a legacy tunnel ingress to avoid unsafe system | to configure a legacy tunnel ingress to avoid unsafe system | |||
| configurations.</t> | configurations.</t> | |||
| </section> | </section> | |||
| <!-- ================================================================ --> | ||||
| <section anchor="rfc6040up_Reqs_Language" numbered="true" toc="default"> | <section anchor="rfc6040up_Reqs_Language" numbered="true" toc="default"> | |||
| <name>Terminology</name> | <name>Terminology</name> | |||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14 | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | >REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", | |||
| "OPTIONAL" in this document are to be interpreted as described in | "<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 descri | ||||
| bed in | ||||
| BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC817 4" format="default"/> when, and | BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC817 4" format="default"/> when, and | |||
| only when, they appear in all capitals, as shown here.</t> | only when, they appear in all capitals, as shown here.</t> | |||
| <t>This specification uses the terminology defined in RFC 6040 <xref targe t="RFC6040" format="default"/>.</t> | <t>This specification uses the terminology defined in <xref target="RFC604 0" format="default"/>.</t> | |||
| </section> | </section> | |||
| <section anchor="rfc6040up_scope" numbered="true" toc="default"> | <section anchor="rfc6040up_scope" numbered="true" toc="default"> | |||
| <name>Scope of RFC 6040</name> | <name>Scope of RFC 6040</name> | |||
| <t>In section 1.1 of RFC 6040, its scope is defined as: </t> | <t>In <xref target="RFC6040" section="1.1" sectionFormat="of"/>, its scope | |||
| <ul empty="true" spacing="normal"> | is defined as: </t> | |||
| <li> | ||||
| <t>"...ECN field processing at encapsulation and decapsulation for | <blockquote> | |||
| ...ECN field processing at encapsulation and decapsulation for | ||||
| any IP-in-IP tunnelling, whether IPsec or non-IPsec tunnels. It | any IP-in-IP tunnelling, whether IPsec or non-IPsec tunnels. It | |||
| applies irrespective of whether IPv4 or IPv6 is used for either the | applies irrespective of whether IPv4 or IPv6 is used for either the | |||
| inner or outer headers. ..."</t> | inner or outer headers. | |||
| </li> | </blockquote> | |||
| </ul> | ||||
| <t>This was intended to include cases where shim header(s) sit between | <t>There are two problems with the above scoping statement:</t> | |||
| <t>Problem 1: It was intended to include cases where one or more shim head | ||||
| ers sit between | ||||
| the IP headers. Many tunnelling implementers have interpreted the scope | the IP headers. Many tunnelling implementers have interpreted the scope | |||
| of RFC 6040 as it was intended, but it is ambiguous. Therefore, this | of <xref target="RFC6040"/> as it was intended, but it is ambiguous. There | |||
| specification updates RFC 6040 by adding the following scoping text | fore, this | |||
| specification updates <xref target="RFC6040"/> by adding the following sco | ||||
| ping text | ||||
| after the sentences quoted above:</t> | after the sentences quoted above:</t> | |||
| <ul empty="true" spacing="normal"> | ||||
| <li> | <blockquote> | |||
| <t>It applies in cases where an outer IP header encapsulates an | It applies in cases where an outer IP header encapsulates an | |||
| inner IP header either directly or indirectly by encapsulating other | inner IP header either directly or indirectly by encapsulating other | |||
| headers that in turn encapsulate (or might encapsulate) an inner IP | headers that in turn encapsulate (or might encapsulate) an inner IP | |||
| header.</t> | header. | |||
| </li> | </blockquote> | |||
| </ul> | ||||
| <t>There is another problem with the scope of RFC 6040. Like many IETF | <t>Problem 2: Like many IETF | |||
| specifications, RFC 6040 is written as a specification that | specifications, <xref target="RFC6040"/> is written as a specification tha | |||
| t | ||||
| implementations can choose to claim compliance with. This means it does | implementations can choose to claim compliance with. This means it does | |||
| not cover two important cases:</t> | not cover two important situations:</t> | |||
| <ol spacing="normal" type="1"><li> | <ol spacing="normal" type="1"><li> | |||
| <t>those cases where it is infeasible for an implementation to | <t>Cases where it is infeasible for an implementation to | |||
| access an inner IP header when adding or removing an outer IP | access an inner IP header when adding or removing an outer IP | |||
| header;</t> | header</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>those implementations that choose not to propagate ECN between IP | <t>Cases where implementations choose not to propagate ECN between IP | |||
| headers.</t> | headers</t> | |||
| </li> | </li> | |||
| </ol> | </ol> | |||
| <t>However, the ECN field is a non-optional part of the IP header (v4 | <t>However, the ECN field is a non-optional part of the IP header (v4 | |||
| and v6). So any implementation that creates an outer IP header has to | and v6), so any implementation that creates an outer IP header has to | |||
| give the ECN field some value. There is only one safe value a tunnel | give the ECN field some value. There is only one safe value a tunnel | |||
| ingress can use if it does not know whether the egress supports | ingress can use if it does not know whether the egress supports | |||
| propagation of the ECN field; it has to clear the ECN field in any outer | propagation of the ECN field; it has to clear the ECN field in any outer | |||
| IP header to 0b00.</t> | IP header to 0b00.</t> | |||
| <t>However, an RFC has no jurisdiction over implementations that choose | <t>However, an RFC has no jurisdiction over implementations that choose | |||
| not to comply with it or cannot comply with it, including all those | not to comply or cannot comply with the RFC, including all | |||
| implementations that predated the RFC. Therefore, it would have been | implementations that predated it. Therefore, it would have been | |||
| unreasonable to add such a requirement to RFC 6040. Nonetheless, to | unreasonable to add such a requirement to <xref target="RFC6040"/>. Noneth | |||
| eless, to | ||||
| ensure safe propagation of the ECN field over tunnels, it is reasonable | ensure safe propagation of the ECN field over tunnels, it is reasonable | |||
| to add requirements on operators, to ensure they configure their tunnels | to add requirements on operators to ensure they configure their tunnels | |||
| safely (where possible). Before stating these configuration requirements | safely (where possible). Before resolving 'Problem 2' by stating these con | |||
| in <xref target="rfc6040up_sec_safe" format="default"/>, the factors that | figuration requirements | |||
| determine | (in <xref target="rfc6040up_sec_safe" format="default"/>), the factors tha | |||
| t determine | ||||
| whether propagating ECN is feasible or desirable will be briefly | whether propagating ECN is feasible or desirable will be briefly | |||
| introduced.</t> | introduced.</t> | |||
| <section anchor="rfc6040up_feasibility" numbered="true" toc="default"> | <section anchor="rfc6040up_feasibility" numbered="true" toc="default"> | |||
| <name>Feasibility of ECN Propagation between Tunnel Headers</name> | <name>Feasibility of ECN Propagation between Tunnel Headers</name> | |||
| <t>In many cases shim header(s) and an outer IP header are always | <t>In many cases, one or more shim headers and an outer IP header are | |||
| added to (or removed from) an inner IP packet as part of the same | always added to (or removed from) an inner IP packet as part of the | |||
| procedure. We call this a tightly coupled shim header. Processing the | same procedure. We call these tightly coupled shim headers. | |||
| shim and outer together is often necessary because the shim(s) are not | Processing a shim and outer header together is often necessary because | |||
| sufficient for packet forwarding in their own right; not unless | a shim is not sufficient for packet forwarding in its own right; not | |||
| complemented by an outer header. In these cases it will often be | unless complemented by an outer header. In these cases, it will often | |||
| feasible for an implementation to propagate the ECN field between the | be feasible for an implementation to propagate the ECN field between | |||
| IP headers.</t> | the IP headers.</t> | |||
| <t>In some cases a tunnel adds an outer IP header and a tightly | <t>In some cases, a tunnel adds an outer IP header and a tightly | |||
| coupled shim header to an inner header that is not an IP header, but | coupled shim header to an inner header that is not an IP header, but | |||
| that in turn encapsulates an IP header (or might encapsulate an IP | that, in turn, encapsulates an IP header (or might encapsulate an IP | |||
| header). For instance an inner Ethernet (or other link layer) header | header). For instance, an inner Ethernet (or other link-layer) header | |||
| might encapsulate an inner IP header as its payload. We call this a | might encapsulate an inner IP header as its payload. We call this a | |||
| tightly coupled shim over an encapsulating header.</t> | tightly coupled shim over an encapsulating header.</t> | |||
| <t>Digging to arbitrary depths to find an inner IP header within an | <t>Digging to arbitrary depths to find an inner IP header within an | |||
| encapsulation is strictly a layering violation so it cannot be a | encapsulation is strictly a layering violation, so it cannot be a | |||
| required behaviour. Nonetheless, some tunnel endpoints already look | required behaviour. | |||
| within a L2 header for an IP header, for instance to map the Diffserv | ||||
| Nonetheless, some tunnel endpoints already look | ||||
| within a Layer 2 (L2) header for an IP header, for instance, to map the | ||||
| Diffserv | ||||
| codepoint between an encapsulated IP header and an outer IP header | codepoint between an encapsulated IP header and an outer IP header | |||
| <xref target="RFC2983" format="default"/>. In such cases at least, it sh ould be | <xref target="RFC2983" format="default"/>. In such cases at least, it sh ould be | |||
| feasible to also (independently) propagate the ECN field between the | feasible to also (independently) propagate the ECN field between the | |||
| same IP headers. Thus, access to the ECN field within an encapsulating | same IP headers. Thus, access to the ECN field within an encapsulating | |||
| header can be a useful and benign optimization. The guidelines in | header can be a useful and benign optimization. The guidelines in | |||
| section 5 of <xref target="I-D.ietf-tsvwg-ecn-encap-guidelines" format=" default"/> give | <xref target="RFC9599" section="5" sectionFormat="of"/> give | |||
| the conditions for this layering violation to be benign.</t> | the conditions for this layering violation to be benign.</t> | |||
| </section> | </section> | |||
| <section anchor="rfc6040up_desirability" numbered="true" toc="default"> | <section anchor="rfc6040up_desirability" numbered="true" toc="default"> | |||
| <name>Desirability of ECN Propagation between Tunnel Headers</name> | <name>Desirability of ECN Propagation between Tunnel Headers</name> | |||
| <t>Developers and network operators are encouraged to implement and | <t>Developers and network operators are encouraged to implement and | |||
| deploy tunnel endpoints compliant with RFC 6040 (as updated by the | deploy tunnel endpoints compliant with <xref target="RFC6040"/> (as upda ted by the | |||
| present specification) in order to provide the benefits of wider ECN | present specification) in order to provide the benefits of wider ECN | |||
| deployment <xref target="RFC8087" format="default"/>. Nonetheless, propa gation of ECN | deployment <xref target="RFC8087" format="default"/>. Nonetheless, propa gation of ECN | |||
| between IP headers, whether separated by shim headers or not, has to | between IP headers, whether separated by shim headers or not, has to | |||
| be optional to implement and to use, because:</t> | be optional to implement and to use, because:</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li> | <li> | |||
| <t>Legacy implementations of tunnels without any ECN support | <t>legacy implementations of tunnels without any ECN support | |||
| already exist</t> | already exist;</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>A network might be designed so that there is usually no | <t>a network might be designed so that there is usually no | |||
| bottleneck within the tunnel</t> | bottleneck within the tunnel; and</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>If the tunnel endpoints would have to search within an L2 | <t>if the tunnel endpoints would have to search within an L2 | |||
| header to find an encapsulated IP header, it might not be worth | header to find an encapsulated IP header, it might not be worth | |||
| the potential performance hit.</t> | the potential performance hit.</t> | |||
| </li> | </li> | |||
| </ul> | </ul> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="rfc6040up_sec_safe" numbered="true" toc="default"> | <section anchor="rfc6040up_sec_safe" numbered="true" toc="default"> | |||
| <name>Making a non-ECN Tunnel Ingress Safe by Configuration</name> | <name>Making a Non-ECN Tunnel Ingress Safe by Configuration</name> | |||
| <t>Even when no specific attempt has been made to implement propagation | <t>Even when no specific attempt has been made to implement propagation | |||
| of the ECN field at a tunnel ingress, it ought to be possible for the | of the ECN field at a tunnel ingress, it ought to be possible for the | |||
| operator to render a tunnel ingress safe by configuration. The main | operator to render a tunnel ingress safe by configuration. The main | |||
| safety concern is to disable (clear to zero) the ECN capability in the | safety concern is to disable (clear to zero) the ECN capability in the | |||
| outer IP header at the ingress if the egress of the tunnel does not | outer IP header at the ingress if the egress of the tunnel does not | |||
| implement ECN logic to propagate any ECN markings into the packet | implement ECN logic to propagate any ECN markings into the packet | |||
| forwarded beyond the tunnel. Otherwise, the non-ECN egress could discard | forwarded beyond the tunnel. Otherwise, the non-ECN egress could discard | |||
| any ECN marking introduced within the tunnel, which would break all the | any ECN marking introduced within the tunnel, which would break all the | |||
| ECN-based control loops that regulate the traffic load over the | ECN-based control loops that regulate the traffic load over the | |||
| tunnel.</t> | tunnel.</t> | |||
| <t>Therefore this specification updates RFC 6040 by inserting the | <t>Therefore, this specification updates <xref target="RFC6040" section="4 | |||
| following text at the end of section 4.3:</t> | .3"/> by inserting the | |||
| <ul empty="true" spacing="normal"> | following text at the end of the section:</t> | |||
| <li> | ||||
| <t>"</t> | <blockquote> | |||
| <t>Whether or not an ingress implementation | ||||
| claims compliance with RFC 6040, RFC 4301 or RFC3168, when the outer | <t>Whether or not an ingress implementation | |||
| tunnel header is IP (v4 or v6), if possible, the ingress MUST be | claims compliance with <xref target="RFC6040"/>, <xref target="RFC4301 | |||
| configured to zero the outer ECN field in any of the following | "/>, or <xref target="RFC3168"/>, when the outer | |||
| tunnel header is IP (v4 or v6), if possible, the ingress <bcp14>MUST</ | ||||
| bcp14> be | ||||
| configured to zero the outer ECN field in all of the following | ||||
| cases:</t> | cases:</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li> | <li> | |||
| <t>if it is known that the tunnel egress does not support any of | <t>if it is known that the tunnel egress does not support any of | |||
| the RFCs that define propagation of the ECN field (RFC 6040, RFC | the RFCs that define propagation of the ECN field (<xref target="R | |||
| 4301 or the full functionality mode of RFC 3168);</t> | FC6040"/>, <xref target="RFC4301"/>, or the full functionality mode of <xref tar | |||
| get="RFC3168"/>);</t> | ||||
| </li> | </li> | |||
| <!--...from the outer to any forwarded IP header (which might be the | ||||
| forwarded header itself, or it might be encapsulated within a forwarded non-IP | ||||
| header).--> | ||||
| <li> | <li> | |||
| <t>or if the behaviour of the egress is not known or an egress | <t>if the behaviour of the egress is not known or an egress | |||
| with unknown behaviour might be dynamically paired with the | with unknown behaviour might be dynamically paired with the | |||
| ingress (one way for an operator of a tunnel ingress to | ingress (one way for an operator of a tunnel ingress to | |||
| determine the behaviour of an otherwise unknown egress is | determine the behaviour of an otherwise unknown egress is | |||
| described in <xref target="decap-test" format="default"/>);</t> | described in <xref target="decap-test" format="default"/>);</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>or if an IP header might be encapsulated within a non-IP | <t>if an IP header might be encapsulated within a non-IP | |||
| header that the tunnel ingress is encapsulating, but the ingress | header that the tunnel ingress is encapsulating, but the ingress | |||
| does not inspect within the encapsulation.</t> | does not inspect within the encapsulation.</t> | |||
| </li> | </li> | |||
| <!--Not sure this last bullet is needed. The above commented additio n to the first bullet would be better.--> | ||||
| </ul> | </ul> | |||
| <t>For the avoidance of doubt, the above only concerns the | <t>For the avoidance of doubt, the above only concerns the | |||
| outer IP header. The ingress MUST NOT alter the ECN field of the | outer IP header. The ingress <bcp14>MUST NOT</bcp14> alter the ECN fie | |||
| ld of the | ||||
| arriving IP header that will become the inner IP header.</t> | arriving IP header that will become the inner IP header.</t> | |||
| </li> | <t>In order that the network operator can comply with the above | |||
| <li> | safety rules, an implementation of a tunnel ingress:</t> | |||
| <t>In order that the network operator can comply with the above | ||||
| safety rules, even if an implementation of a tunnel ingress does not | ||||
| claim to support RFC 6040, RFC 4301 or the full functionality mode | ||||
| of RFC 3168:</t> | ||||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li> | <li> | |||
| <t>it MUST NOT treat the former ToS octet (IPv4) or the former | <t><bcp14>MUST NOT</bcp14> treat the former Type of Service (ToS) | |||
| Traffic Class octet (IPv6) as a single 8-bit field, as the | octet (IPv4) or the former | |||
| Traffic Class octet (IPv6) as a single 8-bit field. This is becaus | ||||
| e the | ||||
| resulting linkage of ECN and Diffserv field propagation between | resulting linkage of ECN and Diffserv field propagation between | |||
| inner and outer is not consistent with the definition of the | inner and outer headers is not consistent with the definition of t | |||
| 6-bit Diffserv field in <xref target="RFC2474" format="default"/> | he | |||
| and <xref target="RFC3260" format="default"/>;</t> | 6-bit Diffserv field in <xref target="RFC2474" format="default"/> | |||
| and <xref target="RFC3260" format="default"/>.</t> | ||||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>it SHOULD be able to be configured to zero the ECN field of | <t><bcp14>SHOULD</bcp14> be able to be configured to zero the ECN field of | |||
| the outer header.</t> | the outer header.</t> | |||
| </li> | </li> | |||
| </ul> | </ul> | |||
| <t>"</t> | <t>These last two rules apply even if an implementation of a tunnel in | |||
| </li> | gress does not | |||
| </ul> | claim to support <xref target="RFC6040"/>, <xref target="RFC4301"/>, o | |||
| <t>For instance, if a tunnel ingress with no ECN-specific logic had a | r the full functionality mode | |||
| of <xref target="RFC3168"/></t> | ||||
| </blockquote> | ||||
| <t>For instance, if a tunnel ingress with no ECN-specific logic had a | ||||
| configuration capability to refer to the last 2 bits of the old ToS Byte | configuration capability to refer to the last 2 bits of the old ToS Byte | |||
| of the outer (e.g. with a 0x3 mask) and set them to zero, while | of the outer (e.g., with a 0x3 mask) and set them to zero, while | |||
| also being able to allow the DSCP to be re-mapped independently, that | also being able to allow the DSCP to be re-mapped independently, that | |||
| would be sufficient to satisfy both the above implementation | would be sufficient to satisfy both implementation | |||
| requirements.</t> | requirements above.</t> | |||
| <t>There might be concern that the above "MUST NOT" makes compliant | <t>There might be concern that the above "<bcp14>MUST NOT</bcp14>" makes c | |||
| implementations non-compliant at a stroke. However, by definition it | ompliant | |||
| implementations non-compliant at a stroke. However, by definition, it | ||||
| solely applies to equipment that provides Diffserv configuration. Any | solely applies to equipment that provides Diffserv configuration. Any | |||
| such Diffserv equipment that is configuring treatment of the former ToS | such Diffserv equipment that is configuring treatment of the former ToS | |||
| octet (IPv4) or the former Traffic Class octet (IPv6) as a single 8-bit | octet (IPv4) or the former Traffic Class octet (IPv6) as a single 8-bit | |||
| field must have always been non-compliant with the definition of the | field must have always been non-compliant with the definition of the | |||
| 6-bit Diffserv field in <xref target="RFC2474" format="default"/> and <xre f target="RFC3260" format="default"/>. If a tunnel ingress does not have any ECN logic, | 6-bit Diffserv field in <xref target="RFC2474" format="default"/> and <xre f target="RFC3260" format="default"/>. If a tunnel ingress does not have any ECN logic, | |||
| copying the ECN field as a side effect of copying the DSCP is a | copying the ECN field as a side effect of copying the DSCP is a | |||
| seriously unsafe bug that risks breaking the feedback loops that | seriously unsafe bug that risks breaking the feedback loops that | |||
| regulate load on a tunnel.</t> | regulate load on a tunnel, because it omits to check the ECN capability of the tunnel egress.</t> | |||
| <t>Zeroing the outer ECN field of all packets in all circumstances would | <t>Zeroing the outer ECN field of all packets in all circumstances would | |||
| be safe, but it would not be sufficient to claim compliance with RFC | be safe, but it would not be sufficient to claim compliance with <xref tar | |||
| 6040 because it would not meet the aim of introducing ECN support to | get="RFC6040"/> because it would not meet the aim of introducing ECN support to | |||
| tunnels (see Section 4.3 of <xref target="RFC6040" format="default"/>).</t | tunnels (see <xref target="RFC6040" section="4.3" sectionFormat="of"/>).</ | |||
| > | t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | <section numbered="true" toc="default"> | |||
| <name>ECN Propagation and Fragmentation/Reassembly</name> | <name>ECN Propagation and Fragmentation/Reassembly</name> | |||
| <t>The following requirements update RFC6040, which omitted handling of | <t>The following requirements update <xref target="RFC6040"/>, which omitt ed handling of | |||
| the ECN field during fragmentation or reassembly. These changes might | the ECN field during fragmentation or reassembly. These changes might | |||
| alter how many ECN-marked packets are propagated by a tunnel that | alter how many ECN-marked packets are propagated by a tunnel that | |||
| fragments packets, but this would not raise any backward compatibility | fragments packets, but this would not raise any backward compatibility | |||
| issues:</t> | issues.</t> | |||
| <t>If a tunnel ingress fragments a packet, it MUST set the outer ECN | <t>If a tunnel ingress fragments a packet, it <bcp14>MUST</bcp14> set the | |||
| outer ECN | ||||
| field of all the fragments to the same value as it would have set if it | field of all the fragments to the same value as it would have set if it | |||
| had not fragmented the packet.</t> | had not fragmented the packet.</t> | |||
| <t>Section 5.3 of <xref target="RFC3168" format="default"/> specifies ECN | <t><xref target="RFC3168" section="5.3" sectionFormat="of"/> specifies ECN | |||
| requirements | requirements | |||
| for reassembly of sets of outer fragments into packets (in outer | for reassembly of sets of 'outer fragments' into packets (in 'outer | |||
| fragmentation, the fragmentation is visible in the outer header so that | fragmentation', the fragmentation is visible in the outer header so that | |||
| the tunnel egress can reassemble the fragments <xref target="I-D.ietf-inta | the tunnel egress can reassemble the fragments <xref target="I-D.ietf-inta | |||
| rea-tunnels" format="default"/>). The following two additional | rea-tunnels" format="default"/>). Additionally, the following | |||
| requirements apply at a tunnel egress:</t> | requirements apply at a tunnel egress:</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li> | <li> | |||
| <t>During reassembly of outer fragments, if the ECN fields of the | During reassembly of outer fragments, the packet <bcp14>MUST</bcp14> b e discarded if the ECN fields of the | |||
| outer headers being reassembled into a single packet consist of a | outer headers being reassembled into a single packet consist of a | |||
| mixture of Not-ECT and other ECN codepoints, the packet MUST be | mixture of Not ECN-Capable Transport (Not-ECT) and other ECN codepoint | |||
| discarded.</t> | s. | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>If there is mix of ECT(0) and ECT(1) outer fragments, then the | If there is mix of ECT(0) and ECT(1) outer fragments, then the | |||
| reassembled packet MUST be set to ECT(1).</t> | reassembled packet <bcp14>MUST</bcp14> be set to ECT(1).</li> | |||
| <t>Reasoning: Originally <xref target="RFC3168" format="default"/> | </ul> | |||
| defined ECT(0) and ECT(1) as equivalent, but RFC 3168 has been | <t indent="3">Reasoning: <xref target="RFC3168" format="default"/> | |||
| originally defined ECT(0) and ECT(1) as equivalent, but <xref target=" | ||||
| RFC3168"/> has been | ||||
| updated by <xref target="RFC8311" format="default"/> to make ECT(1) av ailable for | updated by <xref target="RFC8311" format="default"/> to make ECT(1) av ailable for | |||
| congestion marking differences. The rule is independent of the | congestion marking differences. The rule is independent of the | |||
| current experimental use of ECT(1) for L4S <xref target="RFC9331" form | current experimental use of ECT(1) for Low Latency, Low Loss, and Scal | |||
| at="default"/>. | able throughput (L4S) <xref target="RFC9331" format="default"/>. | |||
| The rule is compatible with PCN <xref target="RFC6660" format="default | The rule is compatible with Pre-Congestion Notification (PCN) <xref ta | |||
| "/>, which uses | rget="RFC6660" format="default"/>, which uses | |||
| 2 levels of congestion severity, with the ranking of severity from | 2 levels of congestion severity, with the ranking of severity from | |||
| highest to lowest being CE, ECT(1), ECT(0)). The decapsulation rules | highest to lowest being Congestion Experienced (CE), ECT(1), ECT(0). T he decapsulation rules | |||
| in <xref target="RFC6040" format="default"/> take a similar approach.< /t> | in <xref target="RFC6040" format="default"/> take a similar approach.< /t> | |||
| </li> | ||||
| </ul> | ||||
| </section> | </section> | |||
| <section anchor="rfc6040up_IP-IP_Coupled_Shim_Tunnels" numbered="true" toc=" default"> | <section anchor="rfc6040up_IP-IP_Coupled_Shim_Tunnels" numbered="true" toc=" default"> | |||
| <name>IP-in-IP Tunnels with Tightly Coupled Shim Headers</name> | <name>IP-in-IP Tunnels with Tightly Coupled Shim Headers</name> | |||
| <t>There follows a list of specifications of encapsulations with tightly | <t>Below is a list of specifications of encapsulations with tightly coupled | |||
| coupled shim header(s), in rough chronological order. The list is | shim header(s) in rough chronological order. This list is confined to | |||
| confined to standards track or widely deployed protocols. The list is | Standards Track or widely deployed protocols. So, for the avoidance of doubt, | |||
| not necessarily exhaustive so, for the avoidance of doubt, the scope of | the updated scope of <xref target="RFC6040"/> is defined in <xref target="rfc604 | |||
| RFC 6040 is defined in <xref target="rfc6040up_scope" format="default"/> a | 0up_scope" | |||
| nd is not | format="default"/> and is not limited to this list.</t> | |||
| limited to this list. </t> | ||||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li> | <li> | |||
| <t>PPTP (Point-to-Point Tunneling Protocol) <xref target="RFC2637" for mat="default"/>;</t> | <t>Point-to-Point Tunneling Protocol (PPTP) <xref target="RFC2637" for mat="default"/></t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>L2TP (Layer 2 Tunnelling Protocol), specifically L2TPv2 <xref targe t="RFC2661" format="default"/> and L2TPv3 <xref target="RFC3931" format="default "/>, which not | <t>Layer Two Tunneling Protocol (L2TP), specifically L2TPv2 <xref targ et="RFC2661" format="default"/> and L2TPv3 <xref target="RFC3931" format="defaul t"/>, which not | |||
| only includes all the L2-specific specializations of L2TP, but also | only includes all the L2-specific specializations of L2TP, but also | |||
| derivatives such as the Keyed IPv6 Tunnel <xref target="RFC8159" forma t="default"/>;</t> | derivatives such as the Keyed IPv6 Tunnel <xref target="RFC8159" forma t="default"/></t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>GRE (Generic Routing Encapsulation) <xref target="RFC2784" format=" | <t>Generic Routing Encapsulation (GRE) <xref target="RFC2784" format=" | |||
| default"/> and | default"/> and Network Virtualization using GRE (NVGRE) <xref target="RFC7637" f | |||
| NVGRE (Network Virtualization using GRE) <xref target="RFC7637" format | ormat="default"/></t> | |||
| ="default"/>;</t> | ||||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>GTP (GPRS Tunnelling Protocol), specifically GTPv1 <xref target="GT | <t>GPRS Tunnelling Protocol (GTP), specifically GTPv1 <xref target="GT | |||
| Pv1" format="default"/>, GTP v1 User Plane <xref target="GTPv1-U" format="defaul | Pv1" format="default"/>, GTP v1 User Plane <xref target="GTPv1-U" format="defaul | |||
| t"/>, GTP v2 | t"/>, and GTP v2 | |||
| Control Plane <xref target="GTPv2-C" format="default"/>;</t> | Control Plane <xref target="GTPv2-C" format="default"/></t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>Teredo <xref target="RFC4380" format="default"/>;</t> | <t>Teredo <xref target="RFC4380" format="default"/></t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>CAPWAP (Control And Provisioning of Wireless Access Points) <xref t arget="RFC5415" format="default"/>;</t> | <t>Control And Provisioning of Wireless Access Points (CAPWAP) <xref t arget="RFC5415" format="default"/></t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>LISP (Locator/Identifier Separation Protocol) <xref target="RFC9300 " format="default"/>;</t> | <t>Locator/Identifier Separation Protocol (LISP) <xref target="RFC9300 " format="default"/></t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>AMT (Automatic Multicast Tunneling) <xref target="RFC7450" format=" default"/>;</t> | <t>Automatic Multicast Tunneling (AMT) <xref target="RFC7450" format=" default"/></t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>VXLAN (Virtual eXtensible Local Area Network) <xref target="RFC7348 " format="default"/> and VXLAN-GPE <xref target="I-D.ietf-nvo3-vxlan-gpe" format ="default"/>;</t> | <t>Virtual eXtensible Local Area Network (VXLAN) <xref target="RFC7348 " format="default"/> and Generic Protocol Extensions for VXLAN (VXLAN-GPE) <xref target="I-D.ietf-nvo3-vxlan-gpe" format="default"/></t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>The Network Service Header (NSH <xref target="RFC8300" format="defa | <t>The Network Service Header (NSH) <xref target="RFC8300" format="def | |||
| ult"/>) for | ault"/> for | |||
| Service Function Chaining (SFC);</t> | Service Function Chaining (SFC)</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>Geneve <xref target="RFC8926" format="default"/>;</t> | <t>Geneve <xref target="RFC8926" format="default"/></t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>Direct tunnelling of an IP packet within a UDP/IP datagram (see | <t>Direct tunnelling of an IP packet within a UDP/IP datagram (see <xr | |||
| Section 3.1.11 of <xref target="RFC8085" format="default"/>);</t> | ef target="RFC8085" section="3.1.11" sectionFormat="of"/>)</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>TCP Encapsulation of IKE and IPsec Packets (see Section 9.5 of | <t>TCP Encapsulation of Internet Key Exchange Protocol (IKE) and IPsec | |||
| <xref target="RFC9329" format="default"/>).</t> | Packets (see <xref target="RFC9329" section="9.5" sectionFormat="of"/>)</t> | |||
| </li> | </li> | |||
| </ul> | </ul> | |||
| <t>Some of the listed protocols enable encapsulation of a variety of | <t>Some of the listed protocols enable encapsulation of a variety of | |||
| network layer protocols as inner and/or outer. This specification | network layer protocols as inner and/or outer. This specification | |||
| applies in the cases where there is an inner and outer IP header as | applies to the cases where there is an inner and outer IP header as | |||
| described in <xref target="rfc6040up_scope" format="default"/>. Otherwise | described in <xref target="rfc6040up_scope" format="default"/>. Otherwise, | |||
| <xref target="I-D.ietf-tsvwg-ecn-encap-guidelines" format="default"/> gives guid | <xref target="RFC9599" format="default"/> gives guidance on how to | |||
| ance on how to | ||||
| design propagation of ECN into other protocols that might encapsulate | design propagation of ECN into other protocols that might encapsulate | |||
| IP.</t> | IP.</t> | |||
| <t>Where protocols in the above list need to be updated to specify ECN | <t>Where protocols in the above list need to be updated to specify ECN | |||
| propagation and they are under IETF change control, update text is given | propagation and are under IETF change control, update text is given | |||
| in the following subsections. For those not under IETF control, it is | in the following subsections. For those not under IETF control, it is | |||
| RECOMMENDED that implementations of encapsulation and decapsulation | <bcp14>RECOMMENDED</bcp14> that implementations of encapsulation and decap | |||
| comply with RFC 6040. It is also RECOMMENDED that their specifications | sulation | |||
| are updated to add a requirement to comply with RFC 6040 (as updated by | comply with <xref target="RFC6040"/>. It is also <bcp14>RECOMMENDED</bcp14 | |||
| > that their specifications | ||||
| are updated to add a requirement to comply with <xref target="RFC6040"/> ( | ||||
| as updated by | ||||
| the present document).</t> | the present document).</t> | |||
| <t>PPTP is not under the change control of the IETF, but it has been | <t>PPTP is not under the change control of the IETF, but it has been | |||
| documented in an informational RFC <xref target="RFC2637" format="default" />. However, | documented in an Informational RFC <xref target="RFC2637" format="default" />. However, | |||
| there is no need for the present specification to update PPTP because | there is no need for the present specification to update PPTP because | |||
| L2TP has been developed as a standardized replacement.</t> | L2TP has been developed as a standardized replacement.</t> | |||
| <t>NVGRE is not under the change control of the IETF, but it has been | <t>NVGRE is not under the change control of the IETF, but it has been | |||
| documented in an informational RFC <xref target="RFC7637" format="default" | documented in an Informational RFC <xref target="RFC7637" format="default" | |||
| />. NVGRE is a | />. NVGRE is a | |||
| specific use-case of GRE (it re-purposes the key field from the initial | specific use case of GRE (it re-purposes the key field from the initial | |||
| specification of GRE <xref target="RFC1701" format="default"/> as a Virtua l Subnet ID). | specification of GRE <xref target="RFC1701" format="default"/> as a Virtua l Subnet ID). | |||
| Therefore the text that updates GRE in <xref target="rfc6040up_GRE" format ="default"/> | Therefore, the text that updates GRE in <xref target="rfc6040up_GRE" forma t="default"/> | |||
| below is also intended to update NVGRE.</t> | below is also intended to update NVGRE.</t> | |||
| <t>Although the definition of the various GTP shim headers is under the | <t>Although the definition of the various GTP shim headers is under the | |||
| control of the 3rd Generation Partnership Project (3GPP), it is hard to | control of the Third Generation Partnership Project (3GPP), it is hard to | |||
| determine whether the 3GPP or the IETF controls standardization of the | determine whether the 3GPP or the IETF controls standardization of the | |||
| <em>process</em> of adding both a GTP and an IP | <em>process</em> of adding both a GTP and an IP | |||
| header to an inner IP header. Nonetheless, the present specification is | header to an inner IP header. Nonetheless, the present specification is | |||
| provided so that the 3GPP can refer to it from any of its own | provided so that the 3GPP can refer to it from any of its own | |||
| specifications of GTP and IP header processing.</t> | specifications of GTP and IP header processing.</t> | |||
| <t>The specification of CAPWAP already specifies RFC 3168 ECN | <t>The specification of CAPWAP already specifies <xref target="RFC3168"/> | |||
| propagation and ECN capability negotiation. Without modification the | ECN | |||
| CAPWAP specification already interworks with the backward compatible | propagation and ECN capability negotiation. Without modification, the | |||
| updates to RFC 3168 in RFC 6040.</t> | CAPWAP specification already interworks with the backward-compatible | |||
| <t>LISP made the ECN propagation procedures in RFC 3168 mandatory from | updates to <xref target="RFC3168"/> in <xref target="RFC6040"/>.</t> | |||
| the start. RFC 3168 has since been updated by RFC 6040, but the changes | <t>LISP made the ECN propagation procedures in <xref target="RFC3168"/> ma | |||
| are backwards compatible so there is still no need for LISP tunnel | ndatory from | |||
| the start. <xref target="RFC3168"/> has since been updated by <xref target | ||||
| ="RFC6040"/>, but the changes | ||||
| are backwards compatible, so there is still no need for LISP tunnel | ||||
| endpoints to negotiate their ECN capabilities.</t> | endpoints to negotiate their ECN capabilities.</t> | |||
| <t>VXLAN is not under the change control of the IETF but it has been | <t>VXLAN is not under the change control of the IETF, but it has been | |||
| documented in an informational RFC. In contrast, VXLAN-GPE (Generic | documented in an Informational RFC. It is | |||
| Protocol Extension) is being documented under IETF change control. It is | <bcp14>RECOMMENDED</bcp14> that VXLAN implementations comply with <xref ta | |||
| RECOMMENDED that VXLAN and VXLAN-GPE implementations comply with RFC | rget="RFC6040"/> | |||
| 6040 when the VXLAN header is inserted between (or removed from between) | when the VXLAN header is inserted between (or removed from between) | |||
| IP headers. The authors of any future update to these specifications are | IP headers. The authors of any future update of the VXLAN spec are also | |||
| encouraged to add a requirement to comply with RFC 6040 as updated by | encouraged to add a requirement to comply with <xref target="RFC6040"/> as | |||
| the present specification.<!--{ToDo: Update this text if the VXLAN-GPE dra | updated by | |||
| ft gets updated before the present draft reaches the RFC Editor.}--> | the present specification. In contrast, | |||
| VXLAN-GPE is being documented under IETF change control and it does | ||||
| require compliance with <xref target="RFC6040"/>. | ||||
| </t> | </t> | |||
| <t>The Network Service Header (NSH <xref target="RFC8300" format="default" />) has been | <t>The Network Service Header (NSH) <xref target="RFC8300" format="default "/> has been | |||
| defined as a shim-based encapsulation to identify the Service Function | defined as a shim-based encapsulation to identify the Service Function | |||
| Path (SFP) in the Service Function Chaining (SFC) architecture <xref targe t="RFC7665" format="default"/>. A proposal has been made for the processing of E CN | Path (SFP) in the Service Function Chaining (SFC) architecture <xref targe t="RFC7665" format="default"/>. A proposal has been made for the processing of E CN | |||
| when handling transport encapsulation <xref target="I-D.ietf-sfc-nsh-ecn-s upport" format="default"/>.</t> | when handling transport encapsulation <xref target="I-D.ietf-sfc-nsh-ecn-s upport" format="default"/>.</t> | |||
| <t>The specification of Geneve already refers to RFC 6040 for ECN | <t>The specification of Geneve already refers to <xref target="RFC6040"/> for ECN | |||
| encapsulation.</t> | encapsulation.</t> | |||
| <t>Section 3.1.11 of RFC 8085 already explains that a tunnel that | <t><xref target="RFC8085" section="3.1.11" sectionFormat="of"/> already ex | |||
| encapsulates an IP header within a UDP/IP datagram needs to follow RFC | plains that a tunnel that | |||
| 6040 when propagating the ECN field between inner and outer IP headers. | encapsulates an IP header within a UDP/IP datagram needs to follow <xref t | |||
| arget="RFC6040"/> when propagating the ECN field between inner and outer IP head | ||||
| ers. | ||||
| <xref target="rfc6040up_scope" format="default"/> of the present specifica tion updates | <xref target="rfc6040up_scope" format="default"/> of the present specifica tion updates | |||
| RFC 6040 to clarify that its scope includes cases with a shim header | <xref target="RFC6040"/> to clarify that its scope includes cases with a s | |||
| between the IP headers. So it indirectly updates the scope of RFC 8085 | him header | |||
| between the IP headers. So it indirectly updates the scope of <xref target | ||||
| ="RFC8085"/> | ||||
| to include cases with a shim header as well as a UDP header between the | to include cases with a shim header as well as a UDP header between the | |||
| IP headers.</t> | IP headers.</t> | |||
| <t>The requirements in <xref target="rfc6040up_sec_safe" format="default"/ | ||||
| > update RFC | <t>The requirements in <xref target="rfc6040up_sec_safe" format="default"/ | |||
| 6040, and hence indirectly update the UDP usage guidelines in RFC 8085 | > update <xref target="RFC6040"/>, and hence also indirectly update the UDP usag | |||
| e guidelines in <xref target="RFC8085"/> | ||||
| to add the important but previously unstated requirement that, if the | to add the important but previously unstated requirement that, if the | |||
| UDP tunnel egress does not, or might not, support ECN propagation, a UDP | UDP tunnel egress does not, or might not, support ECN propagation, a UDP | |||
| tunnel ingress has to clear the outer IP ECN field to 0b00, e.g. by | tunnel ingress has to clear the outer IP ECN field to 0b00, e.g., by | |||
| configuration.</t> | configuration.</t> | |||
| <t>Section 9.5 of TCP Encapsulation of IKE and IPsec Packets <xref target= | <t><xref target="RFC9329" sectionFormat="of" section="9.5"/> already recom | |||
| "RFC9329" format="default"/> already recommends the compatibility mode of RFC 60 | mends the compatibility mode of <xref target="RFC6040"/> | |||
| 40 | in this case because there is not a one-to-one mapping between inner | |||
| in this case, because there is not a one-to-one mapping between inner | and outer packets when TCP encapsulates IKE or IPsec.</t> | |||
| and outer packets.</t> | ||||
| <section anchor="rfc6040up_rfc-updates" numbered="true" toc="default"> | <section anchor="rfc6040up_rfc-updates" numbered="true" toc="default"> | |||
| <name>Specific Updates to Protocols under IETF Change Control</name> | <name>Specific Updates to Protocols under IETF Change Control</name> | |||
| <section anchor="rfc6040up_L2TPv3" numbered="true" toc="default"> | <section anchor="rfc6040up_L2TPv3" numbered="true" toc="default"> | |||
| <name>L2TP (v2 and v3) ECN Extension</name> | <name>L2TP (v2 and v3) ECN Extension</name> | |||
| <t>The L2TP terminology used here is defined in <xref target="RFC2661" format="default"/> and <xref target="RFC3931" format="default"/>.</t> | <t>The L2TP terminology used here is defined in <xref target="RFC2661" format="default"/> and <xref target="RFC3931" format="default"/>.</t> | |||
| <t>L2TPv3 <xref target="RFC3931" format="default"/> is used as a shim | <t>L2TPv3 <xref target="RFC3931" format="default"/> is used as a | |||
| header between | shim header between any packet-switched network (PSN) header (e.g., | |||
| any packet-switched network (PSN) header (e.g. IPv4, IPv6, | IPv4, IPv6, and MPLS) and many types of L2 headers. The L2TPv3 shim | |||
| MPLS) and many types of layer 2 (L2) header. The L2TPv3 shim header | header encapsulates an L2-specific sub-layer, then an L2 header that | |||
| encapsulates an L2-specific sub-layer then an L2 header that is | is likely to contain an inner IP header (v4 or v6). | |||
| likely to contain an inner IP header (v4 or v6). Then this whole | Then this whole stack of headers can be encapsulated within an optional | |||
| stack of headers can be encapsulated optionally within an outer UDP | outer UDP header and an outer PSN header that is typically IP (v4 or v6). | |||
| header then an outer PSN header that is typically IP (v4 or v6).</t> | </t> | |||
| <t>L2TPv2 is used as a shim header between any PSN header and a PPP | <t>L2TPv2 is used as a shim header between any PSN header and a PPP | |||
| header, which is in turn likely to encapsulate an IP header.</t> | header, which is in turn likely to encapsulate an IP header.</t> | |||
| <t>Even though these shims are rather fat (particularly in the case | <t>Even though these shims are rather fat (particularly in the case | |||
| of L2TPv3), they still fit the definition of a tightly coupled shim | of L2TPv3), they still fit the definition of a tightly coupled shim | |||
| header over an encapsulating header (<xref target="rfc6040up_feasibili ty" format="default"/>), because all the headers | header over an encapsulating header (<xref target="rfc6040up_feasibili ty" format="default"/>) because all the headers | |||
| encapsulating the L2 header are added (or removed) together. L2TPv2 | encapsulating the L2 header are added (or removed) together. L2TPv2 | |||
| and L2TPv3 are therefore within the scope of RFC 6040, as updated by | and L2TPv3 are therefore within the scope of <xref target="RFC6040"/>, | |||
| <xref target="rfc6040up_scope" format="default"/> above.</t> | as updated by | |||
| <xref target="rfc6040up_scope" format="default"/>.</t> | ||||
| <t>Implementation of the ECN extension to L2TPv2 and L2TPv3 defined | <t>Implementation of the ECN extension to L2TPv2 and L2TPv3 defined | |||
| in <xref target="rfc6040up_L2TP_ECN" format="default"/> below is RECOM | in <xref target="rfc6040up_L2TP_ECN" format="default"/> is <bcp14>RECO | |||
| MENDED, in | MMENDED</bcp14> in | |||
| order to provide the benefits of ECN <xref target="RFC8087" format="de | order to provide the benefits of ECN <xref target="RFC8087" format="de | |||
| fault"/>, | fault"/> | |||
| whenever a node within an L2TP tunnel becomes the bottleneck for an | whenever a node within an L2TP tunnel becomes the bottleneck for an | |||
| end-to-end traffic flow.</t> | end-to-end traffic flow.</t> | |||
| <section anchor="rfc6040up_L2TP_Safe" numbered="true" toc="default"> | <section anchor="rfc6040up_L2TP_Safe" numbered="true" toc="default"> | |||
| <name>Safe Configuration of a 'Non-ECN' Ingress LCCE</name> | <name>Safe Configuration of a "Non-ECN" Ingress LCCE</name> | |||
| <t>The following text is appended to both Section 5.3 of <xref targe | <t>The following text is appended to both <xref target="RFC2661" sec | |||
| t="RFC2661" format="default"/> and Section 4.5 of <xref target="RFC3931" format= | tion="5.3" sectionFormat="of"/> and <xref target="RFC3931" section="4.5" section | |||
| "default"/> as | Format="of"/> as | |||
| an update to the base L2TPv2 and L2TPv3 specifications:</t> | an update to the base L2TPv2 and L2TPv3 specifications:</t> | |||
| <ul empty="true" spacing="normal"> | <blockquote>The operator of an LCCE that does not support the ECN extension in | |||
| <li> | <xref target="rfc6040up_L2TP_ECN" format="default"/> of RFC 9601 | |||
| <t>The operator of an LCCE that does not support the ECN | <bcp14>MUST</bcp14> follow the configuration requirements in <xref | |||
| Extension in <xref target="rfc6040up_L2TP_ECN" format="default"/ | target="rfc6040up_sec_safe" format="default"/> of RFC 9601 to ensure it | |||
| > of [this | clears the outer IP ECN field to 0b00 when the outer PSN header is IP (v4 or | |||
| document] MUST follow the configuration requirements in <xref ta | v6). | |||
| rget="rfc6040up_sec_safe" format="default"/> of [this document] to ensure it | </blockquote> | |||
| clears the outer IP ECN field to 0b00 when the outer PSN | ||||
| header is IP (v4 or v6).</t> | ||||
| </li> | ||||
| </ul> | ||||
| <t>In particular, for an L2TP Control Connection Endpoint (LCCE) | <t>In particular, for an L2TP Control Connection Endpoint (LCCE) | |||
| implementation that does not support the ECN Extension, this means | implementation that does not support the ECN extension, this means | |||
| that configuration of how it propagates the ECN field between | that configuration of how it propagates the ECN field between | |||
| inner and outer IP headers MUST be independent of any | inner and outer IP headers <bcp14>MUST</bcp14> be independent of any | |||
| configuration of the Diffserv extension of L2TP <xref target="RFC330 8" format="default"/>.</t> | configuration of the Diffserv extension of L2TP <xref target="RFC330 8" format="default"/>.</t> | |||
| </section> | </section> | |||
| <section anchor="rfc6040up_L2TP_ECN" numbered="true" toc="default"> | <section anchor="rfc6040up_L2TP_ECN" numbered="true" toc="default"> | |||
| <name>ECN Extension for L2TP (v2 or v3)</name> | <name>ECN Extension for L2TP (v2 or v3)</name> | |||
| <t>When the outer PSN header and the payload inside the L2 header | <t>When the outer PSN header and the payload inside the L2 header | |||
| are both IP (v4 or v6), to comply with RFC 6040, an LCCE will | are both IP (v4 or v6), an LCCE will propagate | |||
| follow the rules for propagation of the ECN field at ingress and | the ECN field at ingress and egress by following the rules in | |||
| egress in Section 4 of RFC 6040 <xref target="RFC6040" format="defau | <xref target="RFC6040" section="4" sectionFormat="of"/>.</t> | |||
| lt"/>.</t> | <t>Before encapsulating any data packets, <xref target="RFC6040"/> | |||
| <t>Before encapsulating any data packets, RFC 6040 requires an | requires an ingress LCCE to check that the egress LCCE supports | |||
| ingress LCCE to check that the egress LCCE supports ECN | ECN propagation as defined in <xref target="RFC6040"/> or one of | |||
| propagation as defined in RFC 6040 or one of its compatible | its compatible predecessors (<xref target="RFC4301" | |||
| predecessors (<xref target="RFC4301" format="default"/> or the full | format="default"/> or the full functionality mode of <xref | |||
| functionality | target="RFC3168" format="default"/>). | |||
| mode of <xref target="RFC3168" format="default"/>). If the egress su | If the egress supports ECN | |||
| pports ECN | ||||
| propagation, the ingress LCCE can use the normal mode of | propagation, the ingress LCCE can use the normal mode of | |||
| encapsulation (copying the ECN field from inner to outer). | encapsulation (copying the ECN field from inner to outer). | |||
| Otherwise, the ingress LCCE has to use compatibility mode <xref targ | Otherwise, the ingress LCCE has to use compatibility mode <xref | |||
| et="RFC6040" format="default"/> (clearing the outer IP ECN field to 0b00).</t> | target="RFC6040" format="default"/> (clearing the outer IP ECN | |||
| field to 0b00).</t> | ||||
| <t>An LCCE can determine the remote LCCE's support for ECN either | <t>An LCCE can determine the remote LCCE's support for ECN either | |||
| statically (by configuration) or by dynamic discovery during setup | statically (by configuration) or by dynamic discovery during setup | |||
| of each control connection between the LCCEs, using the ECN | of each control connection between the LCCEs using the ECN | |||
| Capability AVP defined in <xref target="rfc6040up_L2TP_ECN_Capabilit | Capability Attribute-Value Pair (AVP) defined in <xref target="rfc60 | |||
| y_AVP" format="default"/> below.</t> | 40up_L2TP_ECN_Capability_AVP" format="default"/>.</t> | |||
| <t>Where the outer PSN header is some protocol other than IP that | <t>Where the outer PSN header is some protocol other than IP that | |||
| supports ECN, the appropriate ECN propagation specification will | supports ECN, the appropriate ECN propagation specification will | |||
| need to be followed, e.g. "Explicit Congestion Marking in | need to be followed, e.g., <xref target="RFC5129" format="default"/> | |||
| MPLS" <xref target="RFC5129" format="default"/>. Where no specificat | for MPLS. Where no specification exists for | |||
| ion exists for | ECN propagation by a particular PSN, <xref target="RFC9599" format=" | |||
| ECN propagation by a particular PSN, <xref target="I-D.ietf-tsvwg-ec | default"/> gives general | |||
| n-encap-guidelines" format="default"/> gives general | ||||
| guidance on how to design ECN propagation into a protocol that | guidance on how to design ECN propagation into a protocol that | |||
| encapsulates IP.</t> | encapsulates IP.</t> | |||
| <section anchor="rfc6040up_L2TP_ECN_Capability_AVP" numbered="true" toc="default"> | <section anchor="rfc6040up_L2TP_ECN_Capability_AVP" numbered="true" toc="default"> | |||
| <name>ECN Capability AVP for Negotiation between LCCEs</name> | <name>ECN Capability AVP for Negotiation between LCCEs</name> | |||
| <t>The ECN Capability Attribute-Value Pair (AVP) defined here | <t>The ECN Capability AVP defined here | |||
| has Attribute Type TBD. The AVP has the following format:</t> | has Attribute Type 103. The AVP has the following format:</t> | |||
| <figure anchor="Fig_rfc6040up_LCCE_ECN_Capabiliy_AVP"> | <figure anchor="Fig_rfc6040up_LCCE_ECN_Capabiliy_AVP"> | |||
| <name>ECN Capability Attribute Value Pair for L2TP (v2 or v3)</n | <name>ECN Capability AVP for L2TP (v2 or v3)</name> | |||
| ame> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ 0 | 0 1 2 3 | |||
| 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |M|H|0|0|0|0| Length | Vendor ID | | |||
| |M|H|0|0|0|0| Length | Vendor ID | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | 103 | | |||
| | TBD | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ]]></artwork> | ]]></artwork> | |||
| -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| </figure> | </figure> | |||
| <t>This AVP MAY be present in the following message types: SCCRQ | <t>This AVP <bcp14>MAY</bcp14> be present in the Start-Control-Con | |||
| and SCCRP (Start-Control-Connection-Request and | nection-Request (SCCRQ) and Start-Control-Connection-Reply (SCCRP) message types | |||
| Start-Control-Connection-Reply). This AVP MAY be hidden (the | . This AVP <bcp14>MAY</bcp14> be hidden (the | |||
| H-bit set to 0 or 1) and is optional (M-bit not set). The length | H-bit is set to 0 or 1) and is optional (the M-bit is not set). Th | |||
| e length | ||||
| (before hiding) of this AVP is 6 octets. The Vendor ID is the | (before hiding) of this AVP is 6 octets. The Vendor ID is the | |||
| IETF Vendor ID of 0.</t> | IETF Vendor ID of 0.</t> | |||
| <t>When an LCCE sends an ECN Capability AVP, it indicates that | <t>When an LCCE sends an ECN Capability AVP, it indicates that | |||
| it supports ECN propagation. When no ECN Capability AVP is | it supports ECN propagation. When no ECN Capability AVP is | |||
| present, it indicates that the sender does not support ECN | present, it indicates that the sender does not support ECN | |||
| propagation.</t> | propagation.</t> | |||
| <t>If an LCCE initiating a control connection supports ECN | <t>If an LCCE initiating a control connection supports ECN | |||
| propagation, it will send a Start-Control-Connection-Request | propagation, it will send an SCCRQ containing an ECN Capability AV | |||
| (SCCRQ) containing an ECN Capability AVP. If the tunnel | P. If the tunnel | |||
| terminator supports ECN, it will return a | terminator supports ECN, it will return an | |||
| Start-Control-Connection-Reply (SCCRP) that also includes an ECN | SCCRP that also includes an ECN | |||
| Capability AVP. Then, for any sessions created by that control | Capability AVP. | |||
| Then, for any sessions created by that control | ||||
| connection, both ends of the tunnel can use the normal mode of | connection, both ends of the tunnel can use the normal mode of | |||
| RFC 6040, i.e. they can copy the IP ECN field from inner to | <xref target="RFC6040"/>; i.e., they can copy the IP ECN field fro m inner to | |||
| outer when encapsulating data packets.</t> | outer when encapsulating data packets.</t> | |||
| <t>If, on the other hand, the tunnel terminator does not support | <t>On the other hand, if the tunnel terminator does not support | |||
| ECN it will ignore the ECN Capability AVP and send an SCCRP to | ECN, it will ignore the ECN Capability AVP and send an SCCRP to | |||
| the tunnel initiator without an ECN Capability AVP. The tunnel | the tunnel initiator without an ECN Capability AVP. The tunnel | |||
| initiator interprets the absence of the ECN Capability flag in | initiator interprets the absence of the ECN Capability flag in | |||
| the SCCRP as an indication that the tunnel terminator is | the SCCRP as an indication that the tunnel terminator is | |||
| incapable of supporting ECN. When encapsulating data packets for | incapable of supporting ECN. When encapsulating data packets for | |||
| any sessions created by that control connection, the tunnel | any sessions created by that control connection, the tunnel | |||
| initiator will then use the compatibility mode of RFC 6040 to | initiator will then use the compatibility mode of <xref target="RF C6040"/> to | |||
| clear the ECN field of the outer IP header to 0b00.</t> | clear the ECN field of the outer IP header to 0b00.</t> | |||
| <t>If the tunnel terminator does not support this ECN extension, | <t>If the tunnel terminator does not support this ECN extension, | |||
| the network operator is still expected to configure it to comply | the network operator is still expected to configure it to comply | |||
| with the safety provisions set out in <xref target="rfc6040up_L2TP _Safe" format="default"/> above, when it acts as an ingress | with the safety provisions set out in <xref target="rfc6040up_L2TP _Safe" format="default"/> when it acts as an ingress | |||
| LCCE.</t> | LCCE.</t> | |||
| <t>If ECN support by the ingress and egress LCCEs is configured | ||||
| statically, as allowed in <xref target="rfc6040up_L2TP_ECN" format | ||||
| ="default"/>, | ||||
| they both ignore the presence or absence of any ECN capability AVP | ||||
| .</t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="rfc6040up_GRE" numbered="true" toc="default"> | <section anchor="rfc6040up_GRE" numbered="true" toc="default"> | |||
| <name>GRE</name> | <name>GRE</name> | |||
| <t>The GRE terminology used here is defined in <xref target="RFC2784" format="default"/>. GRE is often used as a tightly coupled shim | <t>The GRE terminology used here is defined in <xref target="RFC2784" format="default"/>. GRE is often used as a tightly coupled shim | |||
| header between IP headers. Sometimes the GRE shim header | header between IP headers. Sometimes, the GRE shim header | |||
| encapsulates an L2 header, which might in turn encapsulate an IP | encapsulates an L2 header, which might in turn encapsulate an IP | |||
| header. Therefore GRE is within the scope of RFC 6040 as updated by | header. Therefore, GRE is within the scope of <xref target="RFC6040"/> | |||
| <xref target="rfc6040up_scope" format="default"/> above.</t> | as updated by | |||
| <xref target="rfc6040up_scope" format="default"/>.</t> | ||||
| <t>Implementation of support for <xref target="RFC6040" format="defaul t"/> as updated | <t>Implementation of support for <xref target="RFC6040" format="defaul t"/> as updated | |||
| by the present specification is RECOMMENDED for GRE tunnel | by the present specification is <bcp14>RECOMMENDED</bcp14> for GRE tun | |||
| endpoints, in order to provide the benefits of ECN <xref target="RFC80 | nel | |||
| 87" format="default"/> whenever a node within a GRE tunnel becomes the | endpoints in order to provide the benefits of ECN <xref target="RFC808 | |||
| 7" format="default"/> whenever a node within a GRE tunnel becomes the | ||||
| bottleneck for an end-to-end IP traffic flow tunnelled over GRE | bottleneck for an end-to-end IP traffic flow tunnelled over GRE | |||
| using IP as the delivery protocol (outer header).</t> | using IP as the delivery protocol (outer header).</t> | |||
| <t>GRE itself does not support dynamic set-up and configuration of | <t>GRE itself does not support dynamic setup and configuration of | |||
| tunnels. However, control plane protocols such as Next Hop | tunnels. However, control plane protocols, such as Next Hop | |||
| Resolution Protocol (NHRP) <xref target="RFC2332" format="default"/>, Mobile IPv4 | Resolution Protocol (NHRP) <xref target="RFC2332" format="default"/>, Mobile IPv4 | |||
| (MIP4) <xref target="RFC5944" format="default"/>, Mobile IPv6 (MIP6) < | (MIP4) <xref target="RFC5944" format="default"/>, Mobile IPv6 (MIP6) < | |||
| xref target="RFC6275" format="default"/>, Proxy Mobile IP (PMIP) <xref target="R | xref target="RFC6275" format="default"/>, Proxy Mobile IP (PMIP) <xref target="R | |||
| FC5845" format="default"/> | FC5845" format="default"/>, | |||
| and IKEv2 <xref target="RFC7296" format="default"/> are sometimes used | and IKEv2 <xref target="RFC7296" format="default"/>, are sometimes use | |||
| to set up GRE | d to set up GRE | |||
| tunnels dynamically.</t> | tunnels dynamically.</t> | |||
| <t>When these control protocols set up IP-in-IP or IPSec tunnels, it | <t>When these control protocols set up IP-in-IP or IPsec tunnels, it | |||
| is likely that the resulting tunnels will propagate the ECN field as | is likely that the resulting tunnels will propagate the ECN field as | |||
| defined in RFC 6040 or one of its compatible predecessors (RFC 4301 | defined in <xref target="RFC6040"/> or one of its compatible predecess | |||
| or the full functionality mode of RFC 3168). However, if they use a | ors (<xref target="RFC4301"/> | |||
| or the full functionality mode of <xref target="RFC3168"/>). However, | ||||
| if they use a | ||||
| GRE encapsulation, this presumption is less sound.</t> | GRE encapsulation, this presumption is less sound.</t> | |||
| <t>Therefore, if the outer delivery protocol is IP (v4 or v6) the | <t>Therefore, if the outer delivery protocol is IP (v4 or v6), the | |||
| operator is obliged to follow the safe configuration requirements in | operator is obliged to follow the safe configuration requirements in | |||
| <xref target="rfc6040up_sec_safe" format="default"/> above. <xref targ | <xref target="rfc6040up_sec_safe" format="default"/>. <xref target="rf | |||
| et="rfc6040up_GRE_Safe" format="default"/> below updates the base GRE | c6040up_GRE_Safe" format="default"/> updates the base GRE | |||
| specification with this requirement, to emphasize its | specification with this requirement to emphasize its | |||
| importance.</t> | importance.</t> | |||
| <t>Where the delivery protocol is some protocol other than IP that | <t>Where the delivery protocol is some protocol other than IP that | |||
| supports ECN, the appropriate ECN propagation specification will | supports ECN, the appropriate ECN propagation specification will | |||
| need to be followed, e.g. Explicit Congestion Marking in MPLS | need to be followed, e.g., <xref target="RFC5129" format="default"/> f | |||
| <xref target="RFC5129" format="default"/>. Where no specification exis | or MPLS. Where no specification exists for ECN | |||
| ts for ECN | propagation by a particular PSN, <xref target="RFC9599" format="defaul | |||
| propagation by a particular PSN, <xref target="I-D.ietf-tsvwg-ecn-enca | t"/> gives more general | |||
| p-guidelines" format="default"/> gives more general | ||||
| guidance on how to propagate ECN to and from protocols that | guidance on how to propagate ECN to and from protocols that | |||
| encapsulate IP.</t> | encapsulate IP.</t> | |||
| <section anchor="rfc6040up_GRE_Safe" numbered="true" toc="default"> | <section anchor="rfc6040up_GRE_Safe" numbered="true" toc="default"> | |||
| <name>Safe Configuration of a 'Non-ECN' GRE Ingress</name> | <name>Safe Configuration of a "Non-ECN" GRE Ingress</name> | |||
| <t>The following text is appended to Section 3 of <xref target="RFC2 | <t>The following text is appended to <xref target="RFC2784" section= | |||
| 784" format="default"/> as an update to the base GRE | "3" sectionFormat="of"/> as an update to the base GRE | |||
| specification:</t> | specification:</t> | |||
| <ul empty="true" spacing="normal"> | <blockquote> | |||
| <li> | The operator of a GRE tunnel ingress <bcp14>MUST</bcp14> follow the configuratio | |||
| <t>The operator of a GRE tunnel ingress MUST follow the | n requirements in <xref target="rfc6040up_sec_safe" format="default"/> of RFC 96 | |||
| configuration requirements in <xref target="rfc6040up_sec_safe" | 01 when the outer delivery protocol is IP (v4 or v6). | |||
| format="default"/> of [this document] when the | </blockquote> | |||
| outer delivery protocol is IP (v4 or v6).</t> | ||||
| </li> | ||||
| </ul> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | <section numbered="true" toc="default"> | |||
| <name>Teredo</name> | <name>Teredo</name> | |||
| <t>Teredo <xref target="RFC4380" format="default"/> provides a way to tunnel IPv6 | <t>Teredo <xref target="RFC4380" format="default"/> provides a way to tunnel IPv6 | |||
| over an IPv4 network, with a UDP-based shim header between the | over an IPv4 network with a UDP-based shim header between the | |||
| two.</t> | two.</t> | |||
| <t>For Teredo tunnel endpoints to provide the benefits of ECN, the | <t>For Teredo tunnel endpoints to provide the benefits of ECN, the | |||
| Teredo specification would have to be updated to include negotiation | Teredo specification would have to be updated to include negotiation | |||
| of the ECN capability between Teredo tunnel endpoints. Otherwise it | of the ECN capability between Teredo tunnel endpoints. Otherwise, it | |||
| would be unsafe for a Teredo tunnel ingress to copy the ECN field to | would be unsafe for a Teredo tunnel ingress to copy the ECN field to | |||
| the IPv6 outer.</t> | the IPv6 outer.</t> | |||
| <t>Those implementations known to the authors at the time of writing | <t>Those implementations known to the authors at the time of writing | |||
| do not support propagation of ECN, but that they do safely zero the | do not support propagation of ECN, but they do safely zero the | |||
| ECN field in the outer IPv6 header. However, the specification does | ECN field in the outer IPv6 header. However, the specification does | |||
| not mention anything about this.</t> | not mention anything about this.</t> | |||
| <t>To make existing Teredo deployments safe, it would be possible to | <t>To make existing Teredo deployments safe, it would be possible to | |||
| add ECN capability negotiation to those that are subject to remote | add ECN capability negotiation to those that are subject to remote | |||
| OS update. However, for those implementations not subject to remote | OS update. However, for those implementations not subject to remote | |||
| OS update, it will not be feasible to require them to be configured | OS update, it will not be feasible to require them to be configured | |||
| correctly, because Teredo tunnel endpoints are generally deployed on | correctly because Teredo tunnel endpoints are generally deployed on | |||
| hosts.</t> | hosts.</t> | |||
| <t>Therefore, until ECN support is added to the specification of | <t>Therefore, until ECN support is added to the specification of | |||
| Teredo, the only feasible further safety precaution available here | Teredo, the only feasible further safety precaution available here | |||
| is to update the specification of Teredo implementations with the | is to update the specification of Teredo implementations with the | |||
| following text, as a new section 5.1.3:</t> | following text as a new section:</t> | |||
| <ul empty="true" spacing="normal"> | <blockquote> | |||
| <li> | <t>5.1.3. Safe "Non-ECN" Teredo Encapsulation</t> | |||
| <t>"5.1.3 Safe 'Non-ECN' Teredo Encapsulation</t> | ||||
| <t>A Teredo tunnel ingress implementation that does | <t>A Teredo tunnel ingress implementation that does | |||
| not support ECN propagation as defined in RFC 6040 or one of its | not support ECN propagation as defined in <xref target="RFC6040"/> | |||
| compatible predecessors (RFC 4301 or the full functionality mode | or one of its | |||
| of RFC 3168) MUST zero the ECN field in the outer IPv6 | compatible predecessors (<xref target="RFC4301"/> or the full func | |||
| header."</t> | tionality mode | |||
| </li> | of <xref target="RFC3168"/>) <bcp14>MUST</bcp14> zero the ECN fiel | |||
| </ul> | d in the outer IPv6 | |||
| header.</t> | ||||
| </blockquote> | ||||
| </section> | </section> | |||
| <section anchor="rfc6040up_AMT" numbered="true" toc="default"> | <section anchor="rfc6040up_AMT" numbered="true" toc="default"> | |||
| <name>AMT</name> | <name>AMT</name> | |||
| <t>Automatic Multicast Tunneling (AMT <xref target="RFC7450" format="d efault"/>) is a | <t>AMT <xref target="RFC7450" format="default"/> is a | |||
| tightly coupled shim header that encapsulates an IP packet and is | tightly coupled shim header that encapsulates an IP packet and is | |||
| itself encapsulated within a UDP/IP datagram. Therefore AMT is | encapsulated within a UDP/IP datagram. Therefore, AMT is | |||
| within the scope of RFC 6040 as updated by <xref target="rfc6040up_sco | within the scope of <xref target="RFC6040"/> as updated by <xref targe | |||
| pe" format="default"/> above.</t> | t="rfc6040up_scope" format="default"/>.</t> | |||
| <t>Implementation of support for <xref target="RFC6040" format="defaul t"/> as updated | <t>Implementation of support for <xref target="RFC6040" format="defaul t"/> as updated | |||
| by the present specification is RECOMMENDED for AMT tunnel | by the present specification is <bcp14>RECOMMENDED</bcp14> for AMT tun | |||
| endpoints, in order to provide the benefits of ECN <xref target="RFC80 | nel | |||
| 87" format="default"/> whenever a node within an AMT tunnel becomes the | endpoints in order to provide the benefits of ECN <xref target="RFC808 | |||
| 7" format="default"/> whenever a node within an AMT tunnel becomes the | ||||
| bottleneck for an IP traffic flow tunnelled over AMT.</t> | bottleneck for an IP traffic flow tunnelled over AMT.</t> | |||
| <t>To comply with RFC 6040, an AMT relay and gateway will follow the | <t>To comply with <xref target="RFC6040"/>, an AMT relay and gateway w | |||
| rules for propagation of the ECN field at ingress and egress | ill follow the | |||
| respectively, as described in Section 4 of RFC 6040 <xref target="RFC6 | rules for propagation of the ECN field at ingress and egress, | |||
| 040" format="default"/>.</t> | respectively, as described in <xref target="RFC6040" section="4" secti | |||
| <t>Before encapsulating any data packets, RFC 6040 requires an | onFormat="of"/>.</t> | |||
| <t>Before encapsulating any data packets, <xref target="RFC6040"/> req | ||||
| uires an | ||||
| ingress AMT relay to check that the egress AMT gateway supports ECN | ingress AMT relay to check that the egress AMT gateway supports ECN | |||
| propagation as defined in RFC 6040 or one of its compatible | propagation as defined in <xref target="RFC6040"/> or one of its compa | |||
| predecessors (RFC 4301 or the full functionality mode of RFC 3168). | tible | |||
| predecessors (<xref target="RFC4301"/> or the full functionality mode | ||||
| of <xref target="RFC3168"/>). | ||||
| If the egress gateway supports ECN, the ingress relay can use the | If the egress gateway supports ECN, the ingress relay can use the | |||
| normal mode of encapsulation (copying the IP ECN field from inner to | normal mode of encapsulation (copying the IP ECN field from inner to | |||
| outer). Otherwise, the ingress relay has to use compatibility mode, | outer). Otherwise, the ingress relay has to use compatibility mode, | |||
| which means it has to clear the outer ECN field to zero <xref target=" RFC6040" format="default"/>.</t> | which means it has to clear the outer ECN field to zero <xref target=" RFC6040" format="default"/>.</t> | |||
| <t>An AMT tunnel is created dynamically (not manually), so the relay | <t>An AMT tunnel is created dynamically (not manually), so the relay | |||
| will need to determine the remote gateway's support for ECN using | will need to determine the remote gateway's support for ECN using | |||
| the ECN capability declaration defined in <xref target="rfc6040up_AMT_ ECN_Capability" format="default"/> below.</t> | the ECN capability declaration defined in <xref target="rfc6040up_AMT_ ECN_Capability" format="default"/>.</t> | |||
| <section anchor="rfc6040up_AMT_Safe" numbered="true" toc="default"> | <section anchor="rfc6040up_AMT_Safe" numbered="true" toc="default"> | |||
| <name>Safe Configuration of a 'Non-ECN' Ingress AMT Relay</name> | <name>Safe Configuration of a "Non-ECN" Ingress AMT Relay</name> | |||
| <t>The following text is appended to Section 4.2.2 of <xref target=" | <t>The following text is appended to <xref target="RFC7450" section= | |||
| RFC7450" format="default"/> as an update to the AMT specification:</t> | "4.2.2" sectionFormat="of"/> as an update to the AMT specification:</t> | |||
| <ul empty="true" spacing="normal"> | <blockquote> | |||
| <li> | The operator of an AMT relay that does not support <xref target= | |||
| <t>The operator of an AMT relay that does not support RFC 6040 | "RFC6040"/> | |||
| or one of its compatible predecessors (RFC 4301 or the full | or one of its compatible predecessors (<xref target="RFC4301"/> | |||
| functionality mode of RFC 3168) MUST follow the configuration | or the full | |||
| requirements in <xref target="rfc6040up_sec_safe" format="defaul | functionality mode of <xref target="RFC3168"/>) <bcp14>MUST</bcp | |||
| t"/> of [this | 14> follow the configuration | |||
| document] to ensure it clears the outer IP ECN field to | requirements in <xref target="rfc6040up_sec_safe" format="defaul | |||
| zero.</t> | t"/> of RFC 9601 to ensure it clears the outer IP ECN field to | |||
| </li> | zero. | |||
| </ul> | </blockquote> | |||
| </section> | </section> | |||
| <section anchor="rfc6040up_AMT_ECN_Capability" numbered="true" toc="de fault"> | <section anchor="rfc6040up_AMT_ECN_Capability" numbered="true" toc="de fault"> | |||
| <name>ECN Capability Declaration of an AMT Gateway</name> | <name>ECN Capability Declaration of an AMT Gateway</name> | |||
| <figure anchor="Fig_rfc6040up_AMT_ECN_Capability_Declaration"> | <figure anchor="Fig_rfc6040up_AMT_ECN_Capability_Declaration"> | |||
| <name>Updated AMT Request Message Format</name> | <name>Updated AMT Request Message Format</name> | |||
| <artwork name="" type="" align="left" alt=""><![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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | V=0 |Type=3 | Reserved |E|P| Reserved | | | V=0 |Type=3 | Reserved |E|P| Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Request Nonce | | | Request Nonce | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ]]></artwork> | ]]></artwork> | |||
| -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| </figure> | </figure> | |||
| <t>Bit 14 of the AMT Request Message counting from 0 (or bit 7 of | <t>Bit 14 of the AMT Request Message counting from 0 (or bit 7 of | |||
| the Reserved field counting from 1) is defined here as the AMT | the Reserved field counting from 1) is defined here as the AMT | |||
| Gateway ECN Capability flag (E), as shown in <xref target="Fig_rfc60 40up_AMT_ECN_Capability_Declaration" format="default"/>. The | Gateway ECN Capability flag (E) as shown in <xref target="Fig_rfc604 0up_AMT_ECN_Capability_Declaration" format="default"/>. The | |||
| definitions of all other fields in the AMT Request Message are | definitions of all other fields in the AMT Request Message are | |||
| unchanged from RFC 7450.</t> | unchanged from <xref target="RFC7450"/>.</t> | |||
| <t>When the E flag is set to 1, it indicates that the sender of | <t>When the E flag is set to 1, it indicates that the sender of | |||
| the message supports RFC 6040 ECN propagation. When it is cleared | the message supports <xref target="RFC6040"/> ECN propagation. When it is cleared | |||
| to zero, it indicates the sender of the message does not support | to zero, it indicates the sender of the message does not support | |||
| RFC 6040 ECN propagation. An AMT gateway "that supports RFC 6040 | <xref target="RFC6040"/> ECN propagation. An AMT gateway "that suppo rts <xref target="RFC6040"/> | |||
| ECN propagation" means one that propagates the ECN field to the | ECN propagation" means one that propagates the ECN field to the | |||
| forwarded data packet based on the combination of arriving inner | forwarded data packet based on the combination of arriving inner | |||
| and outer ECN fields, as defined in Section 4 of RFC 6040.</t> | and outer ECN fields as defined in <xref target="RFC6040" section="4 " sectionFormat="of"/>.</t> | |||
| <t>The other bits of the Reserved field remain reserved. They will | <t>The other bits of the Reserved field remain reserved. They will | |||
| continue to be cleared to zero when sent and ignored when either | continue to be cleared to zero when sent and ignored when either | |||
| received or forwarded, as specified in Section 5.1.3.3. of RFC | received or forwarded as specified in <xref target="RFC7450" section | |||
| 7450.</t> | ="5.1.3.3" sectionFormat="of"/>.</t> | |||
| <t>An AMT gateway that does not support RFC 6040 MUST NOT set the | <t>An AMT gateway that does not support <xref target="RFC6040"/> <bc | |||
| p14>MUST NOT</bcp14> set the | ||||
| E flag of its Request Message to 1.</t> | E flag of its Request Message to 1.</t> | |||
| <t>An AMT gateway that supports RFC 6040 ECN propagation MUST set | <t>An AMT gateway that supports <xref target="RFC6040"/> ECN propaga tion <bcp14>MUST</bcp14> set | |||
| the E flag of its Relay Discovery Message to 1.</t> | the E flag of its Relay Discovery Message to 1.</t> | |||
| <t>The action of the corresponding AMT relay that receives a | <t>The action of the corresponding AMT relay that receives a | |||
| Request message with the E flag set to 1 depends on whether the | Request message with the E flag set to 1 depends on whether the | |||
| relay itself supports RFC 6040 ECN propagation:</t> | relay itself supports <xref target="RFC6040"/> ECN propagation:</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li> | <li> | |||
| <t>If the relay supports RFC 6040 ECN propagation, it will | <t>If the relay supports <xref target="RFC6040"/> ECN propagatio n, it will | |||
| store the ECN capability of the gateway along with its | store the ECN capability of the gateway along with its | |||
| address. Then whenever it tunnels datagrams towards this | address. Then, whenever it tunnels datagrams towards this | |||
| gateway, it MUST use the normal mode of RFC 6040 to propagate | gateway, it <bcp14>MUST</bcp14> use the normal mode of <xref tar | |||
| the ECN field when encapsulating datagrams (i.e. it | get="RFC6040"/> to propagate | |||
| copies the IP ECN field from inner to outer).</t> | the ECN field when encapsulating datagrams (i.e., it | |||
| copies the IP ECN field from inner to outer header).</t> | ||||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>If the discovered AMT relay does not support RFC 6040 ECN | <t>If the discovered AMT relay does not support <xref target="RF | |||
| propagation, it will ignore the E flag in the Reserved field, | C6040"/> ECN | |||
| as per section 5.1.3.3. of RFC 7450. </t> | propagation, it will ignore the E flag in the Reserved field | |||
| <t>If the AMT relay does not support RFC 6040 ECN | as per <xref target="RFC7450" section="5.1.3.3" sectionFormat="o | |||
| f"/>. </t> | ||||
| <t>If the AMT relay does not support <xref target="RFC6040"/> EC | ||||
| N | ||||
| propagation, the network operator is still expected to | propagation, the network operator is still expected to | |||
| configure it to comply with the safety provisions set out in | configure it to comply with the safety provisions set out in | |||
| <xref target="rfc6040up_AMT_Safe" format="default"/> above.</t> | <xref target="rfc6040up_AMT_Safe" format="default"/>.</t> | |||
| </li> | </li> | |||
| </ul> | </ul> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <!-- ================================================================ --> | ||||
| <section anchor="rfc6040up_IANA_Considerations" numbered="true" toc="default "> | <section anchor="rfc6040up_IANA_Considerations" numbered="true" toc="default "> | |||
| <name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
| <t>IANA is requested to assign the following L2TP Control Message | <t>IANA has assigned the following AVP in the L2TP "Control Message Attrib | |||
| Attribute Value Pair:</t> | ute Value Pairs" registry:</t> | |||
| <table align="center"> | <table align="center"> | |||
| <thead> | <thead> | |||
| <tr> | <tr> | |||
| <th align="left">Attribute Type</th> | <th align="left">Attribute Type</th> | |||
| <th align="left">Description</th> | <th align="left">Description</th> | |||
| <th align="left">Reference</th> | <th align="left">Reference</th> | |||
| </tr> | </tr> | |||
| </thead> | </thead> | |||
| <tbody> | <tbody> | |||
| <tr> | <tr> | |||
| <td align="left">TBD</td> | <td align="left">103</td> | |||
| <td align="left">ECN Capability</td> | <td align="left">ECN Capability</td> | |||
| <td align="left">[this document]</td> | <td align="left">RFC 9601</td> | |||
| </tr> | </tr> | |||
| </tbody> | </tbody> | |||
| </table> | </table> | |||
| <t>[TO BE REMOVED: This registration should take place at the following | ||||
| location: | ||||
| https://www.iana.org/assignments/l2tp-parameters/l2tp-parameters.xhtml | ||||
| ]</t> | ||||
| </section> | </section> | |||
| <!-- ================================================================ --> | ||||
| <section anchor="rfc6040up_Security_Considerations" numbered="true" toc="def ault"> | <section anchor="rfc6040up_Security_Considerations" numbered="true" toc="def ault"> | |||
| <name>Security Considerations</name> | <name>Security Considerations</name> | |||
| <t>The Security Considerations in <xref target="RFC6040" format="default"/ > and <xref target="I-D.ietf-tsvwg-ecn-encap-guidelines" format="default"/> appl y equally to the | <t>The Security Considerations in <xref target="RFC6040" format="default"/ > and <xref target="RFC9599" format="default"/> apply equally to the | |||
| scope defined for the present specification.</t> | scope defined for the present specification.</t> | |||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <!-- ================================================================ --> | ||||
| <displayreference target="I-D.ietf-nvo3-vxlan-gpe" to="NVO3-VXLAN-GPE"/> | ||||
| <displayreference target="I-D.ietf-intarea-tunnels" to="INTAREA-TUNNELS"/> | ||||
| <displayreference target="I-D.ietf-sfc-nsh-ecn-support" to="SFC-NSH-ECN"/> | ||||
| <references> | <references> | |||
| <name>References</name> | <name>References</name> | |||
| <references> | <references> | |||
| <name>Normative References</name> | <name>Normative References</name> | |||
| <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2 | ||||
| 119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml" | |||
| <front> | /> | |||
| <title>Key words for use in RFCs to Indicate Requirement Levels</tit | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2474.xml" | |||
| le> | /> | |||
| <author fullname="S. Bradner" initials="S." surname="Bradner"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2661.xml" | |||
| <date month="March" year="1997"/> | /> | |||
| <abstract> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2784.xml" | |||
| <t>In many standards track documents several words are used to sig | /> | |||
| nify the requirements in the specification. These words are often capitalized. T | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3168.xml" | |||
| his document defines these words as they should be interpreted in IETF documents | /> | |||
| . This document specifies an Internet Best Current Practices for the Internet Co | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3931.xml" | |||
| mmunity, and requests discussion and suggestions for improvements.</t> | /> | |||
| </abstract> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4301.xml" | |||
| </front> | /> | |||
| <seriesInfo name="BCP" value="14"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4380.xml" | |||
| <seriesInfo name="RFC" value="2119"/> | /> | |||
| <seriesInfo name="DOI" value="10.17487/RFC2119"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5129.xml" | |||
| </reference> | /> | |||
| <reference anchor="RFC2474" target="https://www.rfc-editor.org/info/rfc2 | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6040.xml" | |||
| 474" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2474.xml"> | /> | |||
| <front> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6660.xml" | |||
| <title>Definition of the Differentiated Services Field (DS Field) in | /> | |||
| the IPv4 and IPv6 Headers</title> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7450.xml" | |||
| <author fullname="K. Nichols" initials="K." surname="Nichols"/> | /> | |||
| <author fullname="S. Blake" initials="S." surname="Blake"/> | ||||
| <author fullname="F. Baker" initials="F." surname="Baker"/> | <reference anchor="RFC9599" target="https://www.rfc-editor.org/info/rfc9599"> | |||
| <author fullname="D. Black" initials="D." surname="Black"/> | <front> | |||
| <date month="December" year="1998"/> | <title>Guidelines for Adding Congestion Notification to Protocols that Encapsula | |||
| <abstract> | te IP</title> | |||
| <t>This document defines the IP header field, called the DS (for d | <author initials='B' surname='Briscoe' fullname='Bob Briscoe'> | |||
| ifferentiated services) field. [STANDARDS-TRACK]</t> | <organization /> | |||
| </abstract> | </author> | |||
| </front> | <author initials='J' surname='Kaippallimalil' fullname='John Kaippallimalil'> | |||
| <seriesInfo name="RFC" value="2474"/> | <organization /> | |||
| <seriesInfo name="DOI" value="10.17487/RFC2474"/> | </author> | |||
| </reference> | <date month='August' year='2024' /> | |||
| <reference anchor="RFC2661" target="https://www.rfc-editor.org/info/rfc2 | </front> | |||
| 661" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2661.xml"> | <seriesInfo name="RFC" value="9599"/> | |||
| <front> | <seriesInfo name="DOI" value="10.17487/RFC9599"/> | |||
| <title>Layer Two Tunneling Protocol "L2TP"</title> | </reference> | |||
| <author fullname="W. Townsley" initials="W." surname="Townsley"/> | ||||
| <author fullname="A. Valencia" initials="A." surname="Valencia"/> | ||||
| <author fullname="A. Rubens" initials="A." surname="Rubens"/> | ||||
| <author fullname="G. Pall" initials="G." surname="Pall"/> | ||||
| <author fullname="G. Zorn" initials="G." surname="Zorn"/> | ||||
| <author fullname="B. Palter" initials="B." surname="Palter"/> | ||||
| <date month="August" year="1999"/> | ||||
| <abstract> | ||||
| <t>This document describes the Layer Two Tunneling Protocol (L2TP) | ||||
| . [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="2661"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2661"/> | ||||
| </reference> | ||||
| <reference anchor="RFC2784" target="https://www.rfc-editor.org/info/rfc2 | ||||
| 784" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2784.xml"> | ||||
| <front> | ||||
| <title>Generic Routing Encapsulation (GRE)</title> | ||||
| <author fullname="D. Farinacci" initials="D." surname="Farinacci"/> | ||||
| <author fullname="T. Li" initials="T." surname="Li"/> | ||||
| <author fullname="S. Hanks" initials="S." surname="Hanks"/> | ||||
| <author fullname="D. Meyer" initials="D." surname="Meyer"/> | ||||
| <author fullname="P. Traina" initials="P." surname="Traina"/> | ||||
| <date month="March" year="2000"/> | ||||
| <abstract> | ||||
| <t>This document specifies a protocol for encapsulation of an arbi | ||||
| trary network layer protocol over another arbitrary network layer protocol. [STA | ||||
| NDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="2784"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2784"/> | ||||
| </reference> | ||||
| <reference anchor="RFC3168" target="https://www.rfc-editor.org/info/rfc3 | ||||
| 168" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3168.xml"> | ||||
| <front> | ||||
| <title>The Addition of Explicit Congestion Notification (ECN) to IP< | ||||
| /title> | ||||
| <author fullname="K. Ramakrishnan" initials="K." surname="Ramakrishn | ||||
| an"/> | ||||
| <author fullname="S. Floyd" initials="S." surname="Floyd"/> | ||||
| <author fullname="D. Black" initials="D." surname="Black"/> | ||||
| <date month="September" year="2001"/> | ||||
| <abstract> | ||||
| <t>This memo specifies the incorporation of ECN (Explicit Congesti | ||||
| on Notification) to TCP and IP, including ECN's use of two bits in the IP header | ||||
| . [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="3168"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC3168"/> | ||||
| </reference> | ||||
| <reference anchor="RFC3931" target="https://www.rfc-editor.org/info/rfc3 | ||||
| 931" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3931.xml"> | ||||
| <front> | ||||
| <title>Layer Two Tunneling Protocol - Version 3 (L2TPv3)</title> | ||||
| <author fullname="J. Lau" initials="J." role="editor" surname="Lau"/ | ||||
| > | ||||
| <author fullname="M. Townsley" initials="M." role="editor" surname=" | ||||
| Townsley"/> | ||||
| <author fullname="I. Goyret" initials="I." role="editor" surname="Go | ||||
| yret"/> | ||||
| <date month="March" year="2005"/> | ||||
| <abstract> | ||||
| <t>This document describes "version 3" of the Layer Two Tunneling | ||||
| Protocol (L2TPv3). L2TPv3 defines the base control protocol and encapsulation fo | ||||
| r tunneling multiple Layer 2 connections between two IP nodes. Additional docume | ||||
| nts detail the specifics for each data link type being emulated. [STANDARDS-TRAC | ||||
| K]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="3931"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC3931"/> | ||||
| </reference> | ||||
| <reference anchor="RFC4301" target="https://www.rfc-editor.org/info/rfc4 | ||||
| 301" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4301.xml"> | ||||
| <front> | ||||
| <title>Security Architecture for the Internet Protocol</title> | ||||
| <author fullname="S. Kent" initials="S." surname="Kent"/> | ||||
| <author fullname="K. Seo" initials="K." surname="Seo"/> | ||||
| <date month="December" year="2005"/> | ||||
| <abstract> | ||||
| <t>This document describes an updated version of the "Security Arc | ||||
| hitecture for IP", which is designed to provide security services for traffic at | ||||
| the IP layer. This document obsoletes RFC 2401 (November 1998). [STANDARDS-TRAC | ||||
| K]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="4301"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC4301"/> | ||||
| </reference> | ||||
| <reference anchor="RFC4380" target="https://www.rfc-editor.org/info/rfc4 | ||||
| 380" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4380.xml"> | ||||
| <front> | ||||
| <title>Teredo: Tunneling IPv6 over UDP through Network Address Trans | ||||
| lations (NATs)</title> | ||||
| <author fullname="C. Huitema" initials="C." surname="Huitema"/> | ||||
| <date month="February" year="2006"/> | ||||
| <abstract> | ||||
| <t>We propose here a service that enables nodes located behind one | ||||
| or more IPv4 Network Address Translations (NATs) to obtain IPv6 connectivity by | ||||
| tunneling packets over UDP; we call this the Teredo service. Running the servic | ||||
| e requires the help of "Teredo servers" and "Teredo relays". The Teredo servers | ||||
| are stateless, and only have to manage a small fraction of the traffic between T | ||||
| eredo clients; the Teredo relays act as IPv6 routers between the Teredo service | ||||
| and the "native" IPv6 Internet. The relays can also provide interoperability wit | ||||
| h hosts using other transition mechanisms such as "6to4". [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="4380"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC4380"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5129" target="https://www.rfc-editor.org/info/rfc5 | ||||
| 129" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5129.xml"> | ||||
| <front> | ||||
| <title>Explicit Congestion Marking in MPLS</title> | ||||
| <author fullname="B. Davie" initials="B." surname="Davie"/> | ||||
| <author fullname="B. Briscoe" initials="B." surname="Briscoe"/> | ||||
| <author fullname="J. Tay" initials="J." surname="Tay"/> | ||||
| <date month="January" year="2008"/> | ||||
| <abstract> | ||||
| <t>RFC 3270 defines how to support the Diffserv architecture in MP | ||||
| LS networks, including how to encode Diffserv Code Points (DSCPs) in an MPLS hea | ||||
| der. DSCPs may be encoded in the EXP field, while other uses of that field are n | ||||
| ot precluded. RFC 3270 makes no statement about how Explicit Congestion Notifica | ||||
| tion (ECN) marking might be encoded in the MPLS header. This document defines ho | ||||
| w an operator might define some of the EXP codepoints for explicit congestion no | ||||
| tification, without precluding other uses. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5129"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5129"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6040" target="https://www.rfc-editor.org/info/rfc6 | ||||
| 040" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6040.xml"> | ||||
| <front> | ||||
| <title>Tunnelling of Explicit Congestion Notification</title> | ||||
| <author fullname="B. Briscoe" initials="B." surname="Briscoe"/> | ||||
| <date month="November" year="2010"/> | ||||
| <abstract> | ||||
| <t>This document redefines how the explicit congestion notificatio | ||||
| n (ECN) field of the IP header should be constructed on entry to and exit from a | ||||
| ny IP-in-IP tunnel. On encapsulation, it updates RFC 3168 to bring all IP-in-IP | ||||
| tunnels (v4 or v6) into line with RFC 4301 IPsec ECN processing. On decapsulatio | ||||
| n, it updates both RFC 3168 and RFC 4301 to add new behaviours for previously un | ||||
| used combinations of inner and outer headers. The new rules ensure the ECN field | ||||
| is correctly propagated across a tunnel whether it is used to signal one or two | ||||
| severity levels of congestion; whereas before, only one severity level was supp | ||||
| orted. Tunnel endpoints can be updated in any order without affecting pre-existi | ||||
| ng uses of the ECN field, thus ensuring backward compatibility. Nonetheless, ope | ||||
| rators wanting to support two severity levels (e.g., for pre-congestion notifica | ||||
| tion -- PCN) can require compliance with this new specification. A thorough anal | ||||
| ysis of the reasoning for these changes and the implications is included. In the | ||||
| unlikely event that the new rules do not meet a specific need, RFC 4774 gives g | ||||
| uidance on designing alternate ECN semantics, and this document extends that to | ||||
| include tunnelling issues. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6040"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6040"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6660" target="https://www.rfc-editor.org/info/rfc6 | ||||
| 660" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6660.xml"> | ||||
| <front> | ||||
| <title>Encoding Three Pre-Congestion Notification (PCN) States in th | ||||
| e IP Header Using a Single Diffserv Codepoint (DSCP)</title> | ||||
| <author fullname="B. Briscoe" initials="B." surname="Briscoe"/> | ||||
| <author fullname="T. Moncaster" initials="T." surname="Moncaster"/> | ||||
| <author fullname="M. Menth" initials="M." surname="Menth"/> | ||||
| <date month="July" year="2012"/> | ||||
| <abstract> | ||||
| <t>The objective of Pre-Congestion Notification (PCN) is to protec | ||||
| t the quality of service (QoS) of inelastic flows within a Diffserv domain. The | ||||
| overall rate of PCN-traffic is metered on every link in the PCN- domain, and PCN | ||||
| -packets are appropriately marked when certain configured rates are exceeded. Eg | ||||
| ress nodes pass information about these PCN-marks to Decision Points that then d | ||||
| ecide whether to admit or block new flow requests or to terminate some already a | ||||
| dmitted flows during serious pre-congestion.</t> | ||||
| <t>This document specifies how PCN-marks are to be encoded into th | ||||
| e IP header by reusing the Explicit Congestion Notification (ECN) codepoints wit | ||||
| hin a PCN-domain. The PCN wire protocol for non-IP protocol headers will need to | ||||
| be defined elsewhere. Nonetheless, this document clarifies the PCN encoding for | ||||
| MPLS in an informational appendix. The encoding for IP provides for up to three | ||||
| different PCN marking states using a single Diffserv codepoint (DSCP): not-mark | ||||
| ed (NM), threshold-marked (ThM), and excess-traffic-marked (ETM). Hence, it is c | ||||
| alled the 3-in-1 PCN encoding. This document obsoletes RFC 5696. [STANDARDS-TRAC | ||||
| K]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6660"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6660"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7450" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 450" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7450.xml"> | ||||
| <front> | ||||
| <title>Automatic Multicast Tunneling</title> | ||||
| <author fullname="G. Bumgardner" initials="G." surname="Bumgardner"/ | ||||
| > | ||||
| <date month="February" year="2015"/> | ||||
| <abstract> | ||||
| <t>This document describes Automatic Multicast Tunneling (AMT), a | ||||
| protocol for delivering multicast traffic from sources in a multicast-enabled ne | ||||
| twork to receivers that lack multicast connectivity to the source network. The p | ||||
| rotocol uses UDP encapsulation and unicast replication to provide this functiona | ||||
| lity.</t> | ||||
| <t>The AMT protocol is specifically designed to support rapid depl | ||||
| oyment by requiring minimal changes to existing network infrastructure.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7450"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7450"/> | ||||
| </reference> | ||||
| <reference anchor="I-D.ietf-tsvwg-ecn-encap-guidelines" target="https:// | ||||
| datatracker.ietf.org/doc/html/draft-ietf-tsvwg-ecn-encap-guidelines-21" xml:base | ||||
| ="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-tsvwg-ecn-encap- | ||||
| guidelines.xml"> | ||||
| <front> | ||||
| <title>Guidelines for Adding Congestion Notification to Protocols th | ||||
| at Encapsulate IP</title> | ||||
| <author fullname="Bob Briscoe" initials="B." surname="Briscoe"> | ||||
| <organization>Independent</organization> | ||||
| </author> | ||||
| <author fullname="John Kaippallimalil" initials="J." surname="Kaippa | ||||
| llimalil"> | ||||
| <organization>Futurewei</organization> | ||||
| </author> | ||||
| <date day="10" month="November" year="2023"/> | ||||
| <abstract> | ||||
| <t>The purpose of this document is to guide the design of congesti | ||||
| on notification in any lower layer or tunnelling protocol that encapsulates IP. | ||||
| The aim is for explicit congestion signals to propagate consistently from lower | ||||
| layer protocols into IP. Then the IP internetwork layer can act as a portability | ||||
| layer to carry congestion notification from non-IP-aware congested nodes up to | ||||
| the transport layer (L4). Following these guidelines should assure interworking | ||||
| among IP layer and lower layer congestion notification mechanisms, whether speci | ||||
| fied by the IETF or other standards bodies. This document is included in BCP 89 | ||||
| and updates the advice to subnetwork designers about ECN in RFC 3819.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-tsvwg-ecn-encap-gu | ||||
| idelines-21"/> | ||||
| </reference> | ||||
| </references> | </references> | |||
| <references> | <references> | |||
| <name>Informative References</name> | <name>Informative References</name> | |||
| <reference anchor="RFC1701" target="https://www.rfc-editor.org/info/rfc1 | ||||
| 701" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1701.xml"> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1701.xml" | |||
| <front> | /> | |||
| <title>Generic Routing Encapsulation (GRE)</title> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2332.xml" | |||
| <author fullname="S. Hanks" initials="S." surname="Hanks"/> | /> | |||
| <author fullname="T. Li" initials="T." surname="Li"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2637.xml" | |||
| <author fullname="D. Farinacci" initials="D." surname="Farinacci"/> | /> | |||
| <author fullname="P. Traina" initials="P." surname="Traina"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2983.xml" | |||
| <date month="October" year="1994"/> | /> | |||
| <abstract> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3260.xml" | |||
| <t>This document specifies a protocol for performing encapsulation | /> | |||
| of an arbitrary network layer protocol over another arbitrary network layer pro | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3308.xml" | |||
| tocol. This memo provides information for the Internet community. This memo does | /> | |||
| not specify an Internet standard of any kind.</t> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5415.xml" | |||
| </abstract> | /> | |||
| </front> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5944.xml" | |||
| <seriesInfo name="RFC" value="1701"/> | /> | |||
| <seriesInfo name="DOI" value="10.17487/RFC1701"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6275.xml" | |||
| </reference> | /> | |||
| <reference anchor="RFC2332" target="https://www.rfc-editor.org/info/rfc2 | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5845.xml" | |||
| 332" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2332.xml"> | /> | |||
| <front> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7296.xml" | |||
| <title>NBMA Next Hop Resolution Protocol (NHRP)</title> | /> | |||
| <author fullname="J. Luciani" initials="J." surname="Luciani"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9300.xml" | |||
| <author fullname="D. Katz" initials="D." surname="Katz"/> | /> | |||
| <author fullname="D. Piscitello" initials="D." surname="Piscitello"/ | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7059.xml" | |||
| > | /> | |||
| <author fullname="B. Cole" initials="B." surname="Cole"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7348.xml" | |||
| <author fullname="N. Doraswamy" initials="N." surname="Doraswamy"/> | /> | |||
| <date month="April" year="1998"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7637.xml" | |||
| <abstract> | /> | |||
| <t>This document describes the NBMA Next Hop Resolution Protocol ( | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7665.xml" | |||
| NHRP). NHRP can be used by a source station (host or router) connected to a Non- | /> | |||
| Broadcast, Multi-Access (NBMA) subnetwork to determine the internetworking layer | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8085.xml" | |||
| address and NBMA subnetwork addresses of the "NBMA next hop" towards a destinat | /> | |||
| ion station. [STANDARDS-TRACK]</t> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8087.xml" | |||
| </abstract> | /> | |||
| </front> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8159.xml" | |||
| <seriesInfo name="RFC" value="2332"/> | /> | |||
| <seriesInfo name="DOI" value="10.17487/RFC2332"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml" | |||
| </reference> | /> | |||
| <reference anchor="RFC2637" target="https://www.rfc-editor.org/info/rfc2 | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8300.xml" | |||
| 637" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2637.xml"> | /> | |||
| <front> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8311.xml" | |||
| <title>Point-to-Point Tunneling Protocol (PPTP)</title> | /> | |||
| <author fullname="K. Hamzeh" initials="K." surname="Hamzeh"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8926.xml" | |||
| <author fullname="G. Pall" initials="G." surname="Pall"/> | /> | |||
| <author fullname="W. Verthein" initials="W." surname="Verthein"/> | ||||
| <author fullname="J. Taarud" initials="J." surname="Taarud"/> | <!-- [I-D.ietf-nvo3-vxlan-gpe] IESG state I-D Exists --> | |||
| <author fullname="W. Little" initials="W." surname="Little"/> | ||||
| <author fullname="G. Zorn" initials="G." surname="Zorn"/> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.ietf-nv | |||
| <date month="July" year="1999"/> | o3-vxlan-gpe.xml"/> | |||
| <abstract> | ||||
| <t>This document specifies a protocol which allows the Point to Po | <reference anchor="I-D.ietf-sfc-nsh-ecn-support" target="https://datatracker.iet | |||
| int Protocol (PPP) to be tunneled through an IP network. This memo provides info | f.org/doc/html/draft-ietf-sfc-nsh-ecn-support-13"> | |||
| rmation for the Internet community.</t> | <front> | |||
| </abstract> | <title> | |||
| </front> | Explicit Congestion Notification (ECN) and Congestion Feedback Using the Network | |||
| <seriesInfo name="RFC" value="2637"/> | Service Header (NSH) and IPFIX | |||
| <seriesInfo name="DOI" value="10.17487/RFC2637"/> | </title> | |||
| </reference> | <author initials="D." surname="Eastlake 3rd" fullname="Donald E. Eastlake 3rd"> | |||
| <reference anchor="RFC2983" target="https://www.rfc-editor.org/info/rfc2 | <organization>Independent</organization> | |||
| 983" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2983.xml"> | </author> | |||
| <front> | <author initials="B." surname="Briscoe" fullname="Bob Briscoe"> | |||
| <title>Differentiated Services and Tunnels</title> | </author> | |||
| <author fullname="D. Black" initials="D." surname="Black"/> | <author initials="S." surname="Zhuang" fullname="Shunwan Zhuang"> | |||
| <date month="October" year="2000"/> | <organization>Huawei Technologies</organization> | |||
| <abstract> | </author> | |||
| <t>This document considers the interaction of Differentiated Servi | <author initials="A." surname="Malis" fullname="Andrew G. Malis"> | |||
| ces (diffserv) with IP tunnels of various forms. This memo provides information | <organization>Malis Consulting</organization> | |||
| for the Internet community.</t> | </author> | |||
| </abstract> | <author initials="X." surname="Wei" fullname="Xinpeng Wei"> | |||
| </front> | <organization>Huawei Technologies</organization> | |||
| <seriesInfo name="RFC" value="2983"/> | </author> | |||
| <seriesInfo name="DOI" value="10.17487/RFC2983"/> | <date month="April" day="15" year="2024"/> | |||
| </reference> | </front> | |||
| <reference anchor="RFC3260" target="https://www.rfc-editor.org/info/rfc3 | <seriesInfo name="Internet-Draft" value="draft-ietf-sfc-nsh-ecn-support-13"/> | |||
| 260" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3260.xml"> | </reference> | |||
| <front> | ||||
| <title>New Terminology and Clarifications for Diffserv</title> | <!-- [I-D.ietf-intarea-tunnels] IESG state Expired --> | |||
| <author fullname="D. Grossman" initials="D." surname="Grossman"/> | ||||
| <date month="April" year="2002"/> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.ietf-in | |||
| <abstract> | tarea-tunnels.xml"/> | |||
| <t>This memo captures Diffserv working group agreements concerning | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9329.xml" | |||
| new and improved terminology, and provides minor technical clarifications. It i | /> | |||
| s intended to update RFC 2474, RFC 2475 and RFC 2597. When RFCs 2474 and 2597 ad | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9331.xml" | |||
| vance on the standards track, and RFC 2475 is updated, it is intended that the r | /> | |||
| evisions in this memo will be incorporated, and that this memo will be obsoleted | ||||
| by the new RFCs. This memo provides information for the Internet community.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="3260"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC3260"/> | ||||
| </reference> | ||||
| <reference anchor="RFC3308" target="https://www.rfc-editor.org/info/rfc3 | ||||
| 308" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3308.xml"> | ||||
| <front> | ||||
| <title>Layer Two Tunneling Protocol (L2TP) Differentiated Services E | ||||
| xtension</title> | ||||
| <author fullname="P. Calhoun" initials="P." surname="Calhoun"/> | ||||
| <author fullname="W. Luo" initials="W." surname="Luo"/> | ||||
| <author fullname="D. McPherson" initials="D." surname="McPherson"/> | ||||
| <author fullname="K. Peirce" initials="K." surname="Peirce"/> | ||||
| <date month="November" year="2002"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="3308"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC3308"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5415" target="https://www.rfc-editor.org/info/rfc5 | ||||
| 415" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5415.xml"> | ||||
| <front> | ||||
| <title>Control And Provisioning of Wireless Access Points (CAPWAP) P | ||||
| rotocol Specification</title> | ||||
| <author fullname="P. Calhoun" initials="P." role="editor" surname="C | ||||
| alhoun"/> | ||||
| <author fullname="M. Montemurro" initials="M." role="editor" surname | ||||
| ="Montemurro"/> | ||||
| <author fullname="D. Stanley" initials="D." role="editor" surname="S | ||||
| tanley"/> | ||||
| <date month="March" year="2009"/> | ||||
| <abstract> | ||||
| <t>This specification defines the Control And Provisioning of Wire | ||||
| less Access Points (CAPWAP) Protocol, meeting the objectives defined by the CAPW | ||||
| AP Working Group in RFC 4564. The CAPWAP protocol is designed to be flexible, al | ||||
| lowing it to be used for a variety of wireless technologies. This document descr | ||||
| ibes the base CAPWAP protocol, while separate binding extensions will enable its | ||||
| use with additional wireless technologies. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5415"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5415"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5944" target="https://www.rfc-editor.org/info/rfc5 | ||||
| 944" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5944.xml"> | ||||
| <front> | ||||
| <title>IP Mobility Support for IPv4, Revised</title> | ||||
| <author fullname="C. Perkins" initials="C." role="editor" surname="P | ||||
| erkins"/> | ||||
| <date month="November" year="2010"/> | ||||
| <abstract> | ||||
| <t>This document specifies protocol enhancements that allow transp | ||||
| arent routing of IP datagrams to mobile nodes in the Internet. Each mobile node | ||||
| is always identified by its home address, regardless of its current point of att | ||||
| achment to the Internet. While situated away from its home, a mobile node is als | ||||
| o associated with a care-of address, which provides information about its curren | ||||
| t point of attachment to the Internet. The protocol provides for registering the | ||||
| care-of address with a home agent. The home agent sends datagrams destined for | ||||
| the mobile node through a tunnel to the care-of address. After arriving at the e | ||||
| nd of the tunnel, each datagram is then delivered to the mobile node. [STANDARDS | ||||
| -TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5944"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5944"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6275" target="https://www.rfc-editor.org/info/rfc6 | ||||
| 275" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6275.xml"> | ||||
| <front> | ||||
| <title>Mobility Support in IPv6</title> | ||||
| <author fullname="C. Perkins" initials="C." role="editor" surname="P | ||||
| erkins"/> | ||||
| <author fullname="D. Johnson" initials="D." surname="Johnson"/> | ||||
| <author fullname="J. Arkko" initials="J." surname="Arkko"/> | ||||
| <date month="July" year="2011"/> | ||||
| <abstract> | ||||
| <t>This document specifies Mobile IPv6, a protocol that allows nod | ||||
| es to remain reachable while moving around in the IPv6 Internet. Each mobile nod | ||||
| e is always identified by its home address, regardless of its current point of a | ||||
| ttachment to the Internet. While situated away from its home, a mobile node is a | ||||
| lso associated with a care-of address, which provides information about the mobi | ||||
| le node's current location. IPv6 packets addressed to a mobile node's home addre | ||||
| ss are transparently routed to its care-of address. The protocol enables IPv6 no | ||||
| des to cache the binding of a mobile node's home address with its care-of addres | ||||
| s, and to then send any packets destined for the mobile node directly to it at t | ||||
| his care-of address. To support this operation, Mobile IPv6 defines a new IPv6 p | ||||
| rotocol and a new destination option. All IPv6 nodes, whether mobile or stationa | ||||
| ry, can communicate with mobile nodes. This document obsoletes RFC 3775. [STANDA | ||||
| RDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6275"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6275"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5845" target="https://www.rfc-editor.org/info/rfc5 | ||||
| 845" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5845.xml"> | ||||
| <front> | ||||
| <title>Generic Routing Encapsulation (GRE) Key Option for Proxy Mobi | ||||
| le IPv6</title> | ||||
| <author fullname="A. Muhanna" initials="A." surname="Muhanna"/> | ||||
| <author fullname="M. Khalil" initials="M." surname="Khalil"/> | ||||
| <author fullname="S. Gundavelli" initials="S." surname="Gundavelli"/ | ||||
| > | ||||
| <author fullname="K. Leung" initials="K." surname="Leung"/> | ||||
| <date month="June" year="2010"/> | ||||
| <abstract> | ||||
| <t>This specification defines a new mobility option for allowing t | ||||
| he mobile access gateway and the local mobility anchor to negotiate Generic Rout | ||||
| ing Encapsulation (GRE) encapsulation mode and exchange the downlink and uplink | ||||
| GRE keys that are used for marking the downlink and uplink traffic that belong t | ||||
| o a specific mobility session. In addition, the same mobility option can be used | ||||
| to negotiate the GRE encapsulation mode without exchanging the GRE keys. [STAND | ||||
| ARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5845"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5845"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7296" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 296" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7296.xml"> | ||||
| <front> | ||||
| <title>Internet Key Exchange Protocol Version 2 (IKEv2)</title> | ||||
| <author fullname="C. Kaufman" initials="C." surname="Kaufman"/> | ||||
| <author fullname="P. Hoffman" initials="P." surname="Hoffman"/> | ||||
| <author fullname="Y. Nir" initials="Y." surname="Nir"/> | ||||
| <author fullname="P. Eronen" initials="P." surname="Eronen"/> | ||||
| <author fullname="T. Kivinen" initials="T." surname="Kivinen"/> | ||||
| <date month="October" year="2014"/> | ||||
| <abstract> | ||||
| <t>This document describes version 2 of the Internet Key Exchange | ||||
| (IKE) protocol. IKE is a component of IPsec used for performing mutual authentic | ||||
| ation and establishing and maintaining Security Associations (SAs). This documen | ||||
| t obsoletes RFC 5996, and includes all of the errata for it. It advances IKEv2 t | ||||
| o be an Internet Standard.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="STD" value="79"/> | ||||
| <seriesInfo name="RFC" value="7296"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7296"/> | ||||
| </reference> | ||||
| <reference anchor="RFC9300" target="https://www.rfc-editor.org/info/rfc9 | ||||
| 300" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9300.xml"> | ||||
| <front> | ||||
| <title>The Locator/ID Separation Protocol (LISP)</title> | ||||
| <author fullname="D. Farinacci" initials="D." surname="Farinacci"/> | ||||
| <author fullname="V. Fuller" initials="V." surname="Fuller"/> | ||||
| <author fullname="D. Meyer" initials="D." surname="Meyer"/> | ||||
| <author fullname="D. Lewis" initials="D." surname="Lewis"/> | ||||
| <author fullname="A. Cabellos" initials="A." role="editor" surname=" | ||||
| Cabellos"/> | ||||
| <date month="October" year="2022"/> | ||||
| <abstract> | ||||
| <t>This document describes the data plane protocol for the Locator | ||||
| /ID Separation Protocol (LISP). LISP defines two namespaces: Endpoint Identifier | ||||
| s (EIDs), which identify end hosts; and Routing Locators (RLOCs), which identify | ||||
| network attachment points. With this, LISP effectively separates control from d | ||||
| ata and allows routers to create overlay networks. LISP-capable routers exchange | ||||
| encapsulated packets according to EID-to-RLOC mappings stored in a local Map-Ca | ||||
| che.</t> | ||||
| <t>LISP requires no change to either host protocol stacks or under | ||||
| lay routers and offers Traffic Engineering (TE), multihoming, and mobility, amon | ||||
| g other features.</t> | ||||
| <t>This document obsoletes RFC 6830.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="9300"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC9300"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7059" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 059" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7059.xml"> | ||||
| <front> | ||||
| <title>A Comparison of IPv6-over-IPv4 Tunnel Mechanisms</title> | ||||
| <author fullname="S. Steffann" initials="S." surname="Steffann"/> | ||||
| <author fullname="I. van Beijnum" initials="I." surname="van Beijnum | ||||
| "/> | ||||
| <author fullname="R. van Rein" initials="R." surname="van Rein"/> | ||||
| <date month="November" year="2013"/> | ||||
| <abstract> | ||||
| <t>This document provides an overview of various ways to tunnel IP | ||||
| v6 packets over IPv4 networks. It covers mechanisms in current use, touches on s | ||||
| everal mechanisms that are now only of historic interest, and discusses some new | ||||
| er tunnel mechanisms that are not widely used at the time of publication. The go | ||||
| al of the document is helping people with an IPv6-in-IPv4 tunneling need to sele | ||||
| ct the mechanisms that may apply to them.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7059"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7059"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7348" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 348" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7348.xml"> | ||||
| <front> | ||||
| <title>Virtual eXtensible Local Area Network (VXLAN): A Framework fo | ||||
| r Overlaying Virtualized Layer 2 Networks over Layer 3 Networks</title> | ||||
| <author fullname="M. Mahalingam" initials="M." surname="Mahalingam"/ | ||||
| > | ||||
| <author fullname="D. Dutt" initials="D." surname="Dutt"/> | ||||
| <author fullname="K. Duda" initials="K." surname="Duda"/> | ||||
| <author fullname="P. Agarwal" initials="P." surname="Agarwal"/> | ||||
| <author fullname="L. Kreeger" initials="L." surname="Kreeger"/> | ||||
| <author fullname="T. Sridhar" initials="T." surname="Sridhar"/> | ||||
| <author fullname="M. Bursell" initials="M." surname="Bursell"/> | ||||
| <author fullname="C. Wright" initials="C." surname="Wright"/> | ||||
| <date month="August" year="2014"/> | ||||
| <abstract> | ||||
| <t>This document describes Virtual eXtensible Local Area Network ( | ||||
| VXLAN), which is used to address the need for overlay networks within virtualize | ||||
| d data centers accommodating multiple tenants. The scheme and the related protoc | ||||
| ols can be used in networks for cloud service providers and enterprise data cent | ||||
| ers. This memo documents the deployed VXLAN protocol for the benefit of the Inte | ||||
| rnet community.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7348"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7348"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7637" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 637" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7637.xml"> | ||||
| <front> | ||||
| <title>NVGRE: Network Virtualization Using Generic Routing Encapsula | ||||
| tion</title> | ||||
| <author fullname="P. Garg" initials="P." role="editor" surname="Garg | ||||
| "/> | ||||
| <author fullname="Y. Wang" initials="Y." role="editor" surname="Wang | ||||
| "/> | ||||
| <date month="September" year="2015"/> | ||||
| <abstract> | ||||
| <t>This document describes the usage of the Generic Routing Encaps | ||||
| ulation (GRE) header for Network Virtualization (NVGRE) in multi-tenant data cen | ||||
| ters. Network Virtualization decouples virtual networks and addresses from physi | ||||
| cal network infrastructure, providing isolation and concurrency between multiple | ||||
| virtual networks on the same physical network infrastructure. This document als | ||||
| o introduces a Network Virtualization framework to illustrate the use cases, but | ||||
| the focus is on specifying the data-plane aspect of NVGRE.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7637"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7637"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7665" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 665" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7665.xml"> | ||||
| <front> | ||||
| <title>Service Function Chaining (SFC) Architecture</title> | ||||
| <author fullname="J. Halpern" initials="J." role="editor" surname="H | ||||
| alpern"/> | ||||
| <author fullname="C. Pignataro" initials="C." role="editor" surname= | ||||
| "Pignataro"/> | ||||
| <date month="October" year="2015"/> | ||||
| <abstract> | ||||
| <t>This document describes an architecture for the specification, | ||||
| creation, and ongoing maintenance of Service Function Chains (SFCs) in a network | ||||
| . It includes architectural concepts, principles, and components used in the con | ||||
| struction of composite services through deployment of SFCs, with a focus on thos | ||||
| e to be standardized in the IETF. This document does not propose solutions, prot | ||||
| ocols, or extensions to existing protocols.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7665"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7665"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8085" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 085" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8085.xml"> | ||||
| <front> | ||||
| <title>UDP Usage Guidelines</title> | ||||
| <author fullname="L. Eggert" initials="L." surname="Eggert"/> | ||||
| <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/> | ||||
| <author fullname="G. Shepherd" initials="G." surname="Shepherd"/> | ||||
| <date month="March" year="2017"/> | ||||
| <abstract> | ||||
| <t>The User Datagram Protocol (UDP) provides a minimal message-pas | ||||
| sing transport that has no inherent congestion control mechanisms. This document | ||||
| provides guidelines on the use of UDP for the designers of applications, tunnel | ||||
| s, and other protocols that use UDP. Congestion control guidelines are a primary | ||||
| focus, but the document also provides guidance on other topics, including messa | ||||
| ge sizes, reliability, checksums, middlebox traversal, the use of Explicit Conge | ||||
| stion Notification (ECN), Differentiated Services Code Points (DSCPs), and ports | ||||
| .</t> | ||||
| <t>Because congestion control is critical to the stable operation | ||||
| of the Internet, applications and other protocols that choose to use UDP as an I | ||||
| nternet transport must employ mechanisms to prevent congestion collapse and to e | ||||
| stablish some degree of fairness with concurrent traffic. They may also need to | ||||
| implement additional mechanisms, depending on how they use UDP.</t> | ||||
| <t>Some guidance is also applicable to the design of other protoco | ||||
| ls (e.g., protocols layered directly on IP or via IP-based tunnels), especially | ||||
| when these protocols do not themselves provide congestion control.</t> | ||||
| <t>This document obsoletes RFC 5405 and adds guidelines for multic | ||||
| ast UDP usage.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="145"/> | ||||
| <seriesInfo name="RFC" value="8085"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8085"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8087" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 087" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8087.xml"> | ||||
| <front> | ||||
| <title>The Benefits of Using Explicit Congestion Notification (ECN)< | ||||
| /title> | ||||
| <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/> | ||||
| <author fullname="M. Welzl" initials="M." surname="Welzl"/> | ||||
| <date month="March" year="2017"/> | ||||
| <abstract> | ||||
| <t>The goal of this document is to describe the potential benefits | ||||
| of applications using a transport that enables Explicit Congestion Notification | ||||
| (ECN). The document outlines the principal gains in terms of increased throughp | ||||
| ut, reduced delay, and other benefits when ECN is used over a network path that | ||||
| includes equipment that supports Congestion Experienced (CE) marking. It also di | ||||
| scusses challenges for successful deployment of ECN. It does not propose new alg | ||||
| orithms to use ECN nor does it describe the details of implementation of ECN in | ||||
| endpoint devices (Internet hosts), routers, or other network devices.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8087"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8087"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8159" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 159" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8159.xml"> | ||||
| <front> | ||||
| <title>Keyed IPv6 Tunnel</title> | ||||
| <author fullname="M. Konstantynowicz" initials="M." role="editor" su | ||||
| rname="Konstantynowicz"/> | ||||
| <author fullname="G. Heron" initials="G." role="editor" surname="Her | ||||
| on"/> | ||||
| <author fullname="R. Schatzmayr" initials="R." surname="Schatzmayr"/ | ||||
| > | ||||
| <author fullname="W. Henderickx" initials="W." surname="Henderickx"/ | ||||
| > | ||||
| <date month="May" year="2017"/> | ||||
| <abstract> | ||||
| <t>This document describes a tunnel encapsulation for Ethernet ove | ||||
| r IPv6 with a mandatory 64-bit cookie for connecting Layer 2 (L2) Ethernet attac | ||||
| hment circuits identified by IPv6 addresses. The encapsulation is based on the L | ||||
| ayer 2 Tunneling Protocol Version 3 (L2TPv3) over IP and does not use the L2TPv3 | ||||
| control plane.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8159"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8159"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"> | ||||
| <front> | ||||
| <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti | ||||
| tle> | ||||
| <author fullname="B. Leiba" initials="B." surname="Leiba"/> | ||||
| <date month="May" year="2017"/> | ||||
| <abstract> | ||||
| <t>RFC 2119 specifies common key words that may be used in protoco | ||||
| l specifications. This document aims to reduce the ambiguity by clarifying that | ||||
| only UPPERCASE usage of the key words have the defined special meanings.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="8174"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8174"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8300" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 300" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8300.xml"> | ||||
| <front> | ||||
| <title>Network Service Header (NSH)</title> | ||||
| <author fullname="P. Quinn" initials="P." role="editor" surname="Qui | ||||
| nn"/> | ||||
| <author fullname="U. Elzur" initials="U." role="editor" surname="Elz | ||||
| ur"/> | ||||
| <author fullname="C. Pignataro" initials="C." role="editor" surname= | ||||
| "Pignataro"/> | ||||
| <date month="January" year="2018"/> | ||||
| <abstract> | ||||
| <t>This document describes a Network Service Header (NSH) imposed | ||||
| on packets or frames to realize Service Function Paths (SFPs). The NSH also prov | ||||
| ides a mechanism for metadata exchange along the instantiated service paths. The | ||||
| NSH is the Service Function Chaining (SFC) encapsulation required to support th | ||||
| e SFC architecture (defined in RFC 7665).</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8300"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8300"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8311" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 311" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8311.xml"> | ||||
| <front> | ||||
| <title>Relaxing Restrictions on Explicit Congestion Notification (EC | ||||
| N) Experimentation</title> | ||||
| <author fullname="D. Black" initials="D." surname="Black"/> | ||||
| <date month="January" year="2018"/> | ||||
| <abstract> | ||||
| <t>This memo updates RFC 3168, which specifies Explicit Congestion | ||||
| Notification (ECN) as an alternative to packet drops for indicating network con | ||||
| gestion to endpoints. It relaxes restrictions in RFC 3168 that hinder experiment | ||||
| ation towards benefits beyond just removal of loss. This memo summarizes the ant | ||||
| icipated areas of experimentation and updates RFC 3168 to enable experimentation | ||||
| in these areas. An Experimental RFC in the IETF document stream is required to | ||||
| take advantage of any of these enabling updates. In addition, this memo makes re | ||||
| lated updates to the ECN specifications for RTP in RFC 6679 and for the Datagram | ||||
| Congestion Control Protocol (DCCP) in RFCs 4341, 4342, and 5622. This memo also | ||||
| records the conclusion of the ECN nonce experiment in RFC 3540 and provides the | ||||
| rationale for reclassification of RFC 3540 from Experimental to Historic; this | ||||
| reclassification enables new experimental use of the ECT(1) codepoint.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8311"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8311"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8926" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 926" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8926.xml"> | ||||
| <front> | ||||
| <title>Geneve: Generic Network Virtualization Encapsulation</title> | ||||
| <author fullname="J. Gross" initials="J." role="editor" surname="Gro | ||||
| ss"/> | ||||
| <author fullname="I. Ganga" initials="I." role="editor" surname="Gan | ||||
| ga"/> | ||||
| <author fullname="T. Sridhar" initials="T." role="editor" surname="S | ||||
| ridhar"/> | ||||
| <date month="November" year="2020"/> | ||||
| <abstract> | ||||
| <t>Network virtualization involves the cooperation of devices with | ||||
| a wide variety of capabilities such as software and hardware tunnel endpoints, | ||||
| transit fabrics, and centralized control clusters. As a result of their role in | ||||
| tying together different elements of the system, the requirements on tunnels are | ||||
| influenced by all of these components. Therefore, flexibility is the most impor | ||||
| tant aspect of a tunneling protocol if it is to keep pace with the evolution of | ||||
| technology. This document describes Geneve, an encapsulation protocol designed t | ||||
| o recognize and accommodate these changing capabilities and needs.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8926"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8926"/> | ||||
| </reference> | ||||
| <reference anchor="I-D.ietf-nvo3-vxlan-gpe" target="https://datatracker. | ||||
| ietf.org/doc/html/draft-ietf-nvo3-vxlan-gpe-13" xml:base="https://bib.ietf.org/p | ||||
| ublic/rfc/bibxml-ids/reference.I-D.ietf-nvo3-vxlan-gpe.xml"> | ||||
| <front> | ||||
| <title>Generic Protocol Extension for VXLAN (VXLAN-GPE)</title> | ||||
| <author fullname="Fabio Maino" initials="F." surname="Maino"> | ||||
| <organization>Cisco Systems</organization> | ||||
| </author> | ||||
| <author fullname="Larry Kreeger" initials="L." surname="Kreeger"> | ||||
| <organization>Arrcus</organization> | ||||
| </author> | ||||
| <author fullname="Uri Elzur" initials="U." surname="Elzur"> | ||||
| <organization>Intel</organization> | ||||
| </author> | ||||
| <date day="4" month="November" year="2023"/> | ||||
| <abstract> | ||||
| <t>This document describes extending Virtual eXtensible Local Area | ||||
| Network (VXLAN), via changes to the VXLAN header, with four new capabilities: s | ||||
| upport for multi-protocol encapsulation, support for operations, administration | ||||
| and maintenance (OAM) signaling, support for ingress-replicated BUM Traffic (i.e | ||||
| . Broadcast, Unknown unicast, or Multicast), and explicit versioning. New protoc | ||||
| ol capabilities can be introduced via shim headers.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-nvo3-vxlan-gpe-13" | ||||
| /> | ||||
| </reference> | ||||
| <reference anchor="I-D.ietf-sfc-nsh-ecn-support" target="https://datatra | ||||
| cker.ietf.org/doc/html/draft-ietf-sfc-nsh-ecn-support-12" xml:base="https://bib. | ||||
| ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-sfc-nsh-ecn-support.xml"> | ||||
| <front> | ||||
| <title>Explicit Congestion Notification (ECN) and Congestion Feedbac | ||||
| k Using the Network Service Header (NSH) and IPFIX</title> | ||||
| <author fullname="Donald E. Eastlake 3rd" initials="D. E." surname=" | ||||
| Eastlake"> | ||||
| <organization>Futurewei Technologies</organization> | ||||
| </author> | ||||
| <author fullname="Bob Briscoe" initials="B." surname="Briscoe"> | ||||
| <organization>Independent</organization> | ||||
| </author> | ||||
| <author fullname="Shunwan Zhuang" initials="S." surname="Zhuang"> | ||||
| <organization>Huawei Technologies</organization> | ||||
| </author> | ||||
| <author fullname="Andrew G. Malis" initials="A. G." surname="Malis"> | ||||
| <organization>Malis Consulting</organization> | ||||
| </author> | ||||
| <author fullname="Xinpeng Wei" initials="X." surname="Wei"> | ||||
| <organization>Huawei Technologies</organization> | ||||
| </author> | ||||
| <date day="23" month="October" year="2023"/> | ||||
| <abstract> | ||||
| <t>Explicit Congestion Notification (ECN) allows a forwarding elem | ||||
| ent to notify downstream devices of the onset of congestion without having to dr | ||||
| op packets. Coupled with a means to feed information about congestion back to up | ||||
| stream nodes, this can improve network efficiency through better congestion cont | ||||
| rol, frequently without packet drops. This document specifies ECN and congestion | ||||
| feedback support within a Service Function Chaining (SFC) enabled domain throug | ||||
| h use of the Network Service Header (NSH, RFC 8300) and IP Flow Information Expo | ||||
| rt (IPFIX, RFC 7011) protocol.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-sfc-nsh-ecn-suppor | ||||
| t-12"/> | ||||
| </reference> | ||||
| <reference anchor="I-D.ietf-intarea-tunnels" target="https://datatracker | ||||
| .ietf.org/doc/html/draft-ietf-intarea-tunnels-13" xml:base="https://bib.ietf.org | ||||
| /public/rfc/bibxml-ids/reference.I-D.ietf-intarea-tunnels.xml"> | ||||
| <front> | ||||
| <title>IP Tunnels in the Internet Architecture</title> | ||||
| <author fullname="Dr. Joseph D. Touch" initials="J. D." surname="Tou | ||||
| ch"> | ||||
| <organization>Independent Consultant</organization> | ||||
| </author> | ||||
| <author fullname="Mark Townsley" initials="M." surname="Townsley"> | ||||
| <organization>Cisco</organization> | ||||
| </author> | ||||
| <date day="26" month="March" year="2023"/> | ||||
| <abstract> | ||||
| <t>This document discusses the role of IP tunnels in the Internet | ||||
| architecture. An IP tunnel transits IP datagrams as payloads in non- link layer | ||||
| protocols. This document explains the relationship of IP tunnels to existing pro | ||||
| tocol layers and the challenges in supporting IP tunneling, based on the equival | ||||
| ence of tunnels to links. The implications of this document updates RFC 4459 and | ||||
| its MTU and fragmentation recommendations for IP tunnels.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-intarea-tunnels-13 | ||||
| "/> | ||||
| </reference> | ||||
| <reference anchor="RFC9329" target="https://www.rfc-editor.org/info/rfc9 | ||||
| 329" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9329.xml"> | ||||
| <front> | ||||
| <title>TCP Encapsulation of Internet Key Exchange Protocol (IKE) and | ||||
| IPsec Packets</title> | ||||
| <author fullname="T. Pauly" initials="T." surname="Pauly"/> | ||||
| <author fullname="V. Smyslov" initials="V." surname="Smyslov"/> | ||||
| <date month="November" year="2022"/> | ||||
| <abstract> | ||||
| <t>This document describes a method to transport Internet Key Exch | ||||
| ange Protocol (IKE) and IPsec packets over a TCP connection for traversing netwo | ||||
| rk middleboxes that may block IKE negotiation over UDP. This method, referred to | ||||
| as "TCP encapsulation", involves sending both IKE packets for Security Associat | ||||
| ion (SA) establishment and Encapsulating Security Payload (ESP) packets over a T | ||||
| CP connection. This method is intended to be used as a fallback option when IKE | ||||
| cannot be negotiated over UDP.</t> | ||||
| <t>TCP encapsulation for IKE and IPsec was defined in RFC 8229. Th | ||||
| is document clarifies the specification for TCP encapsulation by including addit | ||||
| ional clarifications obtained during implementation and deployment of this metho | ||||
| d. This documents obsoletes RFC 8229.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="9329"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC9329"/> | ||||
| </reference> | ||||
| <reference anchor="RFC9331" target="https://www.rfc-editor.org/info/rfc9 | ||||
| 331" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9331.xml"> | ||||
| <front> | ||||
| <title>The Explicit Congestion Notification (ECN) Protocol for Low L | ||||
| atency, Low Loss, and Scalable Throughput (L4S)</title> | ||||
| <author fullname="K. De Schepper" initials="K." surname="De Schepper | ||||
| "/> | ||||
| <author fullname="B. Briscoe" initials="B." role="editor" surname="B | ||||
| riscoe"/> | ||||
| <date month="January" year="2023"/> | ||||
| <abstract> | ||||
| <t>This specification defines the protocol to be used for a new ne | ||||
| twork service called Low Latency, Low Loss, and Scalable throughput (L4S). L4S u | ||||
| ses an Explicit Congestion Notification (ECN) scheme at the IP layer that is sim | ||||
| ilar to the original (or 'Classic') ECN approach, except as specified within. L4 | ||||
| S uses 'Scalable' congestion control, which induces much more frequent control s | ||||
| ignals from the network, and it responds to them with much more fine-grained adj | ||||
| ustments so that very low (typically sub-millisecond on average) and consistentl | ||||
| y low queuing delay becomes possible for L4S traffic without compromising link u | ||||
| tilization. Thus, even capacity-seeking (TCP-like) traffic can have high bandwid | ||||
| th and very low delay at the same time, even during periods of high traffic load | ||||
| .</t> | ||||
| <t>The L4S identifier defined in this document distinguishes L4S f | ||||
| rom 'Classic' (e.g., TCP-Reno-friendly) traffic. Then, network bottlenecks can b | ||||
| e incrementally modified to distinguish and isolate existing traffic that still | ||||
| follows the Classic behaviour, to prevent it from degrading the low queuing dela | ||||
| y and low loss of L4S traffic. This Experimental specification defines the rules | ||||
| that L4S transports and network elements need to follow, with the intention tha | ||||
| t L4S flows neither harm each other's performance nor that of Classic traffic. I | ||||
| t also suggests open questions to be investigated during experimentation. Exampl | ||||
| es of new Active Queue Management (AQM) marking algorithms and new transports (w | ||||
| hether TCP-like or real time) are specified separately.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="9331"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC9331"/> | ||||
| </reference> | ||||
| <reference anchor="GTPv1"> | <reference anchor="GTPv1"> | |||
| <front> | <front> | |||
| <title>GPRS Tunnelling Protocol (GTP) across the Gn and Gp | <title>General Packet Radio Service (GPRS); GPRS Tunnelling | |||
| interface</title> | Protocol (GTP) across the Gn and Gp interface</title> | |||
| <author> | <author> | |||
| <organization>3GPP</organization> | <organization>3GPP</organization> | |||
| </author> | </author> | |||
| <date/> | ||||
| </front> | </front> | |||
| <seriesInfo name="Technical Specification" value="TS 29.060"/> | <seriesInfo name="Technical Specification" value="29.060"/> | |||
| </reference> | </reference> | |||
| <reference anchor="GTPv1-U"> | <reference anchor="GTPv1-U"> | |||
| <front> | <front> | |||
| <title>General Packet Radio System (GPRS) Tunnelling Protocol User | <title>General Packet Radio System (GPRS) Tunnelling Protocol User | |||
| Plane (GTPv1-U)</title> | Plane (GTPv1-U)</title> | |||
| <author> | <author> | |||
| <organization>3GPP</organization> | <organization>3GPP</organization> | |||
| </author> | </author> | |||
| <date/> | ||||
| </front> | </front> | |||
| <seriesInfo name="Technical Specification" value="TS 29.281"/> | <seriesInfo name="Technical Specification" value="29.281"/> | |||
| </reference> | </reference> | |||
| <reference anchor="GTPv2-C"> | <reference anchor="GTPv2-C"> | |||
| <front> | <front> | |||
| <title>Evolved General Packet Radio Service (GPRS) Tunnelling | <title>3GPP Evolved Packet System (EPS); Evolved General Packet | |||
| Protocol for Control plane (GTPv2-C)</title> | Radio Service (GPRS) Tunnelling Protocol for Control plane | |||
| (GTPv2-C); Stage 3</title> | ||||
| <author> | <author> | |||
| <organization>3GPP</organization> | <organization>3GPP</organization> | |||
| </author> | </author> | |||
| <date year=""/> | <date year=""/> | |||
| </front> | </front> | |||
| <seriesInfo name="Technical Specification" value="TS 29.274"/> | <seriesInfo name="Technical Specification" value="29.274"/> | |||
| </reference> | </reference> | |||
| <reference anchor="decap-test" target="https://arxiv.org/abs/2311.16825" > | <reference anchor="decap-test" target="https://arxiv.org/abs/2311.16825" > | |||
| <front> | <front> | |||
| <title>A Test for IP-ECN Propagation over a Tunnel</title> | <title>A Test for IP-ECN Propagation by a Remote Tunnel Endpoint</ti tle> | |||
| <author fullname="Bob" initials="B." surname="Briscoe"> | <author fullname="Bob" initials="B." surname="Briscoe"> | |||
| <organization>Independent</organization> | <organization>Independent</organization> | |||
| </author> | </author> | |||
| <date month="November" year="2023"/> | <date month="November" year="2023"/> | |||
| </front> | </front> | |||
| <seriesInfo name="DOI" value="10.48550/arXiv.2311.16825"/> | <seriesInfo name="DOI" value="10.48550/arXiv.2311.16825"/> | |||
| <refcontent>Technical Report, TR-BB-2023-003</refcontent> | <refcontent>Technical Report, TR-BB-2023-003</refcontent> | |||
| <format target="https://arxiv.org/pdf/2311.16825.pdf" type="PDF"/> | <format target="https://arxiv.org/pdf/2311.16825.pdf" type="PDF"/> | |||
| </reference> | </reference> | |||
| </references> | </references> | |||
| </references> | </references> | |||
| <!-- ================================================================ --> | ||||
| <section anchor="rfc6040up_Comments_Solicited" numbered="false" removeInRFC= | ||||
| "true" toc="default"> | ||||
| <name>Comments Solicited</name> | ||||
| <t>Comments and questions are encouraged and very welcome. They can be | ||||
| addressed to the IETF Transport Area working group mailing list | ||||
| <tsvwg@ietf.org>, and/or to the authors.</t> | ||||
| </section> | ||||
| <!-- ================================================================ --> | ||||
| <section numbered="false" toc="default"> | <section numbered="false" toc="default"> | |||
| <name>Acknowledgements</name> | <name>Acknowledgements</name> | |||
| <t>Thanks to Ing-jyh (Inton) Tsang for initial discussions on the need | <t>Thanks to <contact fullname="Ing-jyh (Inton) Tsang"/> for initial | |||
| for ECN propagation in L2TP and its applicability. Thanks also to Carlos | discussions on the need for ECN propagation in L2TP and its | |||
| Pignataro, Tom Herbert, Ignacio Goyret, Alia Atlas, Praveen | applicability. Thanks also to <contact fullname="Carlos Pignataro"/>, | |||
| Balasubramanian, Joe Touch, Mohamed Boucadair, David Black, Jake | <contact fullname="Tom Herbert"/>, <contact fullname="Ignacio Goyret"/>, | |||
| Holland, Sri Gundavelli, Gorry Fairhurst and Martin Duke for helpful | <contact fullname="Alia Atlas"/>, <contact fullname="Praveen | |||
| advice and comments. "A Comparison of IPv6-over-IPv4 Tunnel Mechanisms" | Balasubramanian"/>, <contact fullname="Joe Touch"/>, <contact | |||
| <xref target="RFC7059" format="default"/> helped to identify a number of t | fullname="Mohamed Boucadair"/>, <contact fullname="David Black"/>, | |||
| unnelling | <contact fullname="Jake Holland"/>, <contact fullname="Sri | |||
| protocols to include within the scope of this document.</t> | Gundavelli"/>, <contact fullname="Gorry Fairhurst"/>, and <contact | |||
| <t>Bob Briscoe was part-funded by the Research Council of Norway through | fullname="Martin Duke"/> for helpful advice and comments. <xref | |||
| the TimeIn project for early drafts, and for final drafts (from -17) he | target="RFC7059" format="default"/> helped to identify a number of | |||
| was funded by Apple Inc. The views expressed here are solely those of | tunnelling protocols to include within the scope of this document.</t> | |||
| <t><contact fullname="Bob Briscoe"/> was part-funded by the Research Co | ||||
| uncil of Norway through | ||||
| the TimeIn project for early drafts, and he was funded by Apple Inc. for late | ||||
| r draft versions (from -17). The views expressed here are solely those of | ||||
| the authors.</t> | the authors.</t> | |||
| </section> | </section> | |||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 181 change blocks. | ||||
| 1462 lines changed or deleted | 644 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||