| < draft-ietf-sfc-nsh-ecn-support-05.txt | draft-ietf-sfc-nsh-ecn-support-06.txt > | |||
|---|---|---|---|---|
| INTERNET-DRAFT D. Eastlake | INTERNET-DRAFT D. Eastlake | |||
| Intended status: Proposed Standard Futurewei Technologies | Intended status: Proposed Standard Futurewei Technologies | |||
| B. Briscoe | B. Briscoe | |||
| Independent | Independent | |||
| Y. Li | Y. Li | |||
| Huawei Technologies | Huawei Technologies | |||
| A Malis | A. Malis | |||
| Malis Consulting | Malis Consulting | |||
| X. Wei | X. Wei | |||
| Huawei Technologies | Huawei Technologies | |||
| Expires: October 1, 2021 April 2, 2021 | Expires: March 12, 2022 September 13, 2021 | |||
| Explicit Congestion Notification (ECN) and Congestion Feedback | Explicit Congestion Notification (ECN) and Congestion Feedback | |||
| Using the Network Service Header (NSH) and IPFIX | Using the Network Service Header (NSH) and IPFIX | |||
| <draft-ietf-sfc-nsh-ecn-support-05.txt> | <draft-ietf-sfc-nsh-ecn-support-06.txt> | |||
| Abstract | Abstract | |||
| Explicit congestion notification (ECN) allows a forwarding element to | Explicit congestion notification (ECN) allows a forwarding element to | |||
| notify downstream devices of the onset of congestion without having | notify downstream devices of the onset of congestion without having | |||
| to drop packets. Coupled with a means to feed information about | to drop packets. Coupled with a means to feed information about | |||
| congestion back to upstream nodes, this can improve network | congestion back to upstream nodes, this can improve network | |||
| efficiency through better congestion control, frequently without | efficiency through better congestion control, frequently without | |||
| packet drops. This document specifies ECN and congestion feedback | packet drops. This document specifies ECN and congestion feedback | |||
| support within a Service Function Chaining (SFC) architecture domain | support within a Service Function Chaining (SFC) architecture domain | |||
| skipping to change at page 2, line 4 ¶ | skipping to change at page 2, line 4 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| other groups may also distribute working documents as Internet- | other groups may also distribute working documents as Internet- | |||
| Drafts. | Drafts. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/1id-abstracts.html. The list of Internet-Draft | https://www.ietf.org/1id-abstracts.html. The list of Internet-Draft | |||
| Shadow Directories can be accessed at | Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | https://www.ietf.org/shadow.html. | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction............................................4 | 1. Introduction............................................4 | |||
| 1.1 NSH Background.........................................4 | 1.1 NSH Background.........................................4 | |||
| 1.2 ECN Background.........................................6 | 1.2 ECN Background.........................................6 | |||
| 1.3 Tunnel Congestion Feedback Background..................6 | 1.3 Tunnel Congestion Feedback Background..................6 | |||
| 1.4 Conventions Used in This Document......................8 | 1.4 Conventions Used in This Document......................8 | |||
| 2. The NSH ECN Field......................................10 | 2. The NSH ECN Field......................................10 | |||
| skipping to change at page 4, line 5 ¶ | skipping to change at page 4, line 5 ¶ | |||
| 6.2 IPFIX Information Element IDs.........................27 | 6.2 IPFIX Information Element IDs.........................27 | |||
| 7. Security Considerations................................29 | 7. Security Considerations................................29 | |||
| 8. Acknowledgements.......................................29 | 8. Acknowledgements.......................................29 | |||
| Normative References......................................30 | Normative References......................................30 | |||
| Informative References....................................31 | Informative References....................................31 | |||
| Authors' Addresses........................................32 | Authors' Addresses........................................32 | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| 1. Introduction | 1. Introduction | |||
| Explicit Congestion Notification (ECN [RFC3168]) allows a forwarding | Explicit Congestion Notification (ECN [RFC3168]) allows a forwarding | |||
| element to notify downstream devices of the onset of congestion | element to notify downstream devices of the onset of congestion | |||
| without having to drop packets. Coupled with a means to feed | without having to drop packets. Coupled with a means to feed | |||
| information about congestion back to upstream nodes, this can improve | information about congestion back to upstream nodes, this can improve | |||
| network efficiency through better congestion control, frequently | network efficiency through better congestion control, frequently | |||
| without packet drops. This document specifies ECN and congestion | without packet drops. This document specifies ECN and congestion | |||
| feedback support within a Service Function Chaining (SFC [RFC7665]) | feedback support within a Service Function Chaining (SFC [RFC7665]) | |||
| architecture domain through use of the Network Service Header (NSH | architecture domain through use of the Network Service Header (NSH | |||
| skipping to change at page 5, line 5 ¶ | skipping to change at page 5, line 5 ¶ | |||
| The Service Function Chaining (SFC [RFC7665]) architecture calls for | The Service Function Chaining (SFC [RFC7665]) architecture calls for | |||
| the encapsulation of traffic within a service function chaining | the encapsulation of traffic within a service function chaining | |||
| domain with a Network Service Header (NSH [RFC8300]) added by the | domain with a Network Service Header (NSH [RFC8300]) added by the | |||
| "Classifier" (ingress node) on entry to the domain and the NSH being | "Classifier" (ingress node) on entry to the domain and the NSH being | |||
| removed on exit from the domain at the egress node. The NSH is used | removed on exit from the domain at the egress node. The NSH is used | |||
| to control the path of a packet in an SFC domain. The NSH is a | to control the path of a packet in an SFC domain. The NSH is a | |||
| natural place, in a domain where traffic is NSH encapsulated, to note | natural place, in a domain where traffic is NSH encapsulated, to note | |||
| congestion, avoiding possible confusion due, for example, to changes | congestion, avoiding possible confusion due, for example, to changes | |||
| in the outer transport header in different parts of the domain. | in the outer transport header in different parts of the domain. | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| | | | | |||
| v | v | |||
| +----------+ | +----------+ | |||
| . .|Classifier|. . . . . . . . . . . . . . | . .|Classifier|. . . . . . . . . . . . . . | |||
| . +----------+ . | . +----------+ . | |||
| . | +----+ . | . | +----+ . | |||
| . | --+ SF | Service . | . | --+ SF | Service . | |||
| . | / +----+ Function . | . | / +----+ Function . | |||
| . v --- Chaining . | . v --- Chaining . | |||
| . +-----+/ +----+ domain . | . +-----+/ +----+ domain . | |||
| skipping to change at page 6, line 4 ¶ | skipping to change at page 6, line 4 ¶ | |||
| of the NSH. Traffic passes through a sequence of Service Function | of the NSH. Traffic passes through a sequence of Service Function | |||
| Forwarders (SFFs) each of which sends the traffic to one or more | Forwarders (SFFs) each of which sends the traffic to one or more | |||
| Service Functions (SFs). Each SF performs some operation on the | Service Functions (SFs). Each SF performs some operation on the | |||
| traffic, for example firewall or Network Address Translation (NAT) or | traffic, for example firewall or Network Address Translation (NAT) or | |||
| load balancer, and then returns it to the SFF from which it was | load balancer, and then returns it to the SFF from which it was | |||
| received. | received. | |||
| Logically, during the transit of each SFF, the outer transport header | Logically, during the transit of each SFF, the outer transport header | |||
| that got the packet to the SFF is stripped (see Figure 3), the SFF | that got the packet to the SFF is stripped (see Figure 3), the SFF | |||
| decides on the next forwarding step, either adding a new transport | decides on the next forwarding step, either adding a new transport | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| header or, if the SFF is the exit/egress, removing the NSH header. | header or, if the SFF is the exit/egress, removing the NSH header. | |||
| The transport headers added may be different in different regions of | The transport headers added may be different in different regions of | |||
| the SFC domain. For example, IP could be used for some SFF-to-SFF | the SFC domain. For example, IP could be used for some SFF-to-SFF | |||
| communication and MPLS used for other such communication. | communication and MPLS used for other such communication. | |||
| 1.2 ECN Background | 1.2 ECN Background | |||
| Explicit congestion notification (ECN [RFC3168]) allows a forwarding | Explicit congestion notification (ECN [RFC3168]) allows a forwarding | |||
| element (such as a router or a Service Function Forwarder (SFF) or | element (such as a router or a Service Function Forwarder (SFF) or | |||
| Service Function (SF)) to notify downstream devices of the onset of | Service Function (SF)) to notify downstream devices of the onset of | |||
| skipping to change at page 7, line 5 ¶ | skipping to change at page 7, line 5 ¶ | |||
| first, otherwise the system could go unstable. For instance by the | first, otherwise the system could go unstable. For instance by the | |||
| ingress taking a smoothed average of the level of congestion signaled | ingress taking a smoothed average of the level of congestion signaled | |||
| by feedback from the tunnel egress or delaying any action for at | by feedback from the tunnel egress or delaying any action for at | |||
| least the worst case global round trip time (for example 100 | least the worst case global round trip time (for example 100 | |||
| milliseconds). | milliseconds). | |||
| (1) Traffic throttling (policing), where the downstream traffic | (1) Traffic throttling (policing), where the downstream traffic | |||
| flowing out of the ingress node is limited to reduce or eliminate | flowing out of the ingress node is limited to reduce or eliminate | |||
| congestion. | congestion. | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| (2) Upstream congestion feedback, where the ingress node sends | (2) Upstream congestion feedback, where the ingress node sends | |||
| messages upstream to or towards the ultimate traffic source, a | messages upstream to or towards the ultimate traffic source, a | |||
| function that can throttle traffic generation/transmission. | function that can throttle traffic generation/transmission. | |||
| (3) Traffic re-direction, where the ingress node configures the NSH | (3) Traffic re-direction, where the ingress node configures the NSH | |||
| of some future traffic so that it avoids congested paths. Great | of some future traffic so that it avoids congested paths. Great | |||
| care must be taken with this option to avoid (a) significant re- | care must be taken with this option to avoid (a) significant re- | |||
| ordering of traffic in flows that it is desirable to keep in | ordering of traffic in flows that it is desirable to keep in | |||
| order and (b) oscillation/instability in traffic paths due to | order and (b) oscillation/instability in traffic paths due to | |||
| alternate congestion of previously idle paths and the idling of | alternate congestion of previously idle paths and the idling of | |||
| skipping to change at page 8, line 5 ¶ | skipping to change at page 8, line 5 ¶ | |||
| (not shown) before entering the SFC domain and after leaving the SFC | (not shown) before entering the SFC domain and after leaving the SFC | |||
| domain. | domain. | |||
| The figure shows typical congestion feedback that would be expected | The figure shows typical congestion feedback that would be expected | |||
| from the final receiver to the origin sender, which controls the load | from the final receiver to the origin sender, which controls the load | |||
| the origin sender applies to all elements on the path. The figure | the origin sender applies to all elements on the path. The figure | |||
| also shows the congestion feedback from the egress to the ingress of | also shows the congestion feedback from the egress to the ingress of | |||
| the SFC domain that is described in this document, to control or | the SFC domain that is described in this document, to control or | |||
| balance load within the SFC domain. | balance load within the SFC domain. | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| .:= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = :. | .:= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = :. | |||
| _||_ End-to-End Congestion Feedback || | _||_ End-to-End Congestion Feedback || | |||
| \ / || | \ / || | |||
| \/ || | \/ || | |||
| __ Inner Transport Header and Payload __ | __ Inner Transport Header and Payload __ | |||
| | | ->- - - - - - - - - - - - - - ->- - - - - -- - - - - - ->- | | | | | ->- - - - - - - - - - - - - - ->- - - - - -- - - - - - ->- | | | |||
| | | | | | | | | | | |||
| | | .:= = = = = = = = = = = = = = = = = = = = = =:. | | | | | .:= = = = = = = = = = = = = = = = = = = = = =:. | | | |||
| | | _||_ Tunnel Congestion Feedback || | | | | | _||_ Tunnel Congestion Feedback || | | | |||
| | | \ / || | | | | | \ / || | | | |||
| skipping to change at page 9, line 4 ¶ | skipping to change at page 9, line 4 ¶ | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| Acronyms: | Acronyms: | |||
| AQM - Active Queue Management [RFC7567] | AQM - Active Queue Management [RFC7567] | |||
| CE - Congestion Experienced [RFC3168] | CE - Congestion Experienced [RFC3168] | |||
| downstream - The direction from ingress to egress | downstream - The direction from ingress to egress | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| ECN - Explicit Congestion Notification [RFC3168] | ECN - Explicit Congestion Notification [RFC3168] | |||
| ECT - ECN Capable Transport [RFC3168] | ECT - ECN Capable Transport [RFC3168] | |||
| IPFIX - IP Flow Information Export [RFC7011] | IPFIX - IP Flow Information Export [RFC7011] | |||
| Not-ECT - Not ECN-Capable Transport [RFC3168] | Not-ECT - Not ECN-Capable Transport [RFC3168] | |||
| NSH - Network Service Header [RFC8300] | NSH - Network Service Header [RFC8300] | |||
| skipping to change at page 10, line 5 ¶ | skipping to change at page 10, line 5 ¶ | |||
| SFC - Service Function Chaining [RFC7665] | SFC - Service Function Chaining [RFC7665] | |||
| SFF - Service Function Forwarder [RFC7665] - A type of node that | SFF - Service Function Forwarder [RFC7665] - A type of node that | |||
| forwards based on the NSH. | forwards based on the NSH. | |||
| TLV - Type Length Value | TLV - Type Length Value | |||
| upstream - The direction from egress to ingress | upstream - The direction from egress to ingress | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| 2. The NSH ECN Field | 2. The NSH ECN Field | |||
| The NSH header is used to encapsulate and control the subsequent path | The NSH header is used to encapsulate traffic and control its | |||
| of traffic (see Section 2 of [RFC8300]). The NSH also provides for | subsequent path (see Section 2 of [RFC8300]). The NSH also provides | |||
| optional metadata inclusion, as shown in Figure 3. | for optional metadata inclusion, as shown in Figure 3. | |||
| +-----------------------------------+ | +-----------------------------------+ | |||
| | Outer Transport Header | | | Outer Transport Header | | |||
| +-----------------------------------+ | +-----------------------------------+ | |||
| | Network Service Header (NSH) | | | Network Service Header (NSH) | | |||
| | +------------------------------+ | | | +------------------------------+ | | |||
| | | Base Header | | | | | Base Header | | | |||
| | +------------------------------+ | | | +------------------------------+ | | |||
| | | Service Path Header | | | | | Service Path Header | | | |||
| | +------------------------------+ | | | +------------------------------+ | | |||
| skipping to change at page 11, line 5 ¶ | skipping to change at page 11, line 5 ¶ | |||
| Figure 4. NSH Base Header | Figure 4. NSH Base Header | |||
| Note to RFC Editor: The above figure should be adjusted based on the | Note to RFC Editor: The above figure should be adjusted based on the | |||
| bits assigned by IANA (see Section 5) and this note deleted. | bits assigned by IANA (see Section 5) and this note deleted. | |||
| Table 1 shows the meaning of the code points in the NSH ECN field. | Table 1 shows the meaning of the code points in the NSH ECN field. | |||
| These have the same meaning as the ECN field code points in the IPv4 | These have the same meaning as the ECN field code points in the IPv4 | |||
| or IPv6 header as defined in [RFC3168]. | or IPv6 header as defined in [RFC3168]. | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| Binary Name Meaning | Binary Name Meaning | |||
| ------ ------- -------------------------------- | ------ ------- -------------------------------- | |||
| 00 Not-ECT Not ECN-Capable Transport | 00 Not-ECT Not ECN-Capable Transport | |||
| 01 ECT(1) ECN-Capable Transport | 01 ECT(1) ECN-Capable Transport | |||
| 10 ECT(0) ECN-Capable Transport | 10 ECT(0) ECN-Capable Transport | |||
| 11 CE Congestion Experienced | 11 CE Congestion Experienced | |||
| Table 1. ECN Field Code Points | Table 1. ECN Field Code Points | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| 3. ECN Support in the NSH | 3. ECN Support in the NSH | |||
| This section describes the required behavior to support ECN using the | This section describes the required behavior to support ECN using the | |||
| NSH. There are two aspects to ECN support: | NSH. There are two aspects to ECN support: | |||
| 1. ECN propagation during encapsulation or decapsulation | 1. ECN propagation during encapsulation or decapsulation | |||
| 2. ECN marking during congestion at bottlenecks. | 2. ECN marking during congestion at bottlenecks. | |||
| While this section covers all combinations of ECN-aware and ECN- | While this section covers all combinations of ECN-aware and ECN- | |||
| unaware, it is expected that in most cases the NSH domain will be | unaware, it is expected that in most cases the NSH domain will be | |||
| uniform so that, if this document is applicable, all SFFs will | uniform so that, if this document is applicable, all SFFs will | |||
| skipping to change at page 13, line 5 ¶ | skipping to change at page 13, line 5 ¶ | |||
| Detection of congestion will be most effective if ECN marking is | Detection of congestion will be most effective if ECN marking is | |||
| supported by all potential bottlenecks inside the domain in which | supported by all potential bottlenecks inside the domain in which | |||
| NSH is being used to route traffic as well as at the ingress and | NSH is being used to route traffic as well as at the ingress and | |||
| egress. Nodes that do not support ECN marking, or that support | egress. Nodes that do not support ECN marking, or that support | |||
| AQM but not ECN, will naturally use drop to relieve congestion. | AQM but not ECN, will naturally use drop to relieve congestion. | |||
| The gap in the end-to-end packet sequence will be detected as | The gap in the end-to-end packet sequence will be detected as | |||
| congestion by the final receiving endpoint, but not by the NSH | congestion by the final receiving endpoint, but not by the NSH | |||
| egress (see Figure 2). | egress (see Figure 2). | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| 3.1 At The Ingress | 3.1 At The Ingress | |||
| When the ingress/Classifier encapsulates an incoming IP packet with | When the ingress/Classifier encapsulates an incoming IP packet with | |||
| an NSH, it MUST set the NSH ECN field using the "Normal mode" | an NSH, it MUST set the NSH ECN field using the "Normal mode" | |||
| specified in [RFC6040] (i.e., copied from the incoming IP header). | specified in [RFC6040] (i.e., copied from the incoming IP header). | |||
| Then, if the resulting NSH ECN field is Not-ECT, the ingress SHOULD | Then, if the resulting NSH ECN field is Not-ECT, the ingress SHOULD | |||
| set it to ECT(0). This indicates that, even though the end-to-end | set it to ECT(0). This indicates that, even though the end-to-end | |||
| transport is not ECN-capable, the egress and ingress of the SFC | transport is not ECN-capable, the egress and ingress of the SFC | |||
| domain are acting as an ECN-capable transport. This approach will | domain are acting as an ECN-capable transport. This approach will | |||
| skipping to change at page 14, line 5 ¶ | skipping to change at page 14, line 5 ¶ | |||
| | ECT(0) | ECT(0) | | | ECT(0) | ECT(0) | | |||
| | ECT(1) | ECT(1) | | | ECT(1) | ECT(1) | | |||
| | CE | CE | | | CE | CE | | |||
| +-----------------+---------------+ | +-----------------+---------------+ | |||
| Table 2. Setting of ECN fields by an ingress/Classifier | Table 2. Setting of ECN fields by an ingress/Classifier | |||
| The requirements in this section apply to all ingress nodes for the | The requirements in this section apply to all ingress nodes for the | |||
| domain in which NSH is being used to route traffic. | domain in which NSH is being used to route traffic. | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| 3.2 At Transit Nodes | 3.2 At Transit Nodes | |||
| This section described behavior at nodes that forward based on the | This section described behavior at nodes that forward based on the | |||
| NSH such as SFF and other forwarding nodes such as IP routers. Figure | NSH such as SFF and other forwarding nodes such as IP routers. Figure | |||
| 5 shows a packet on the wire between forwarding nodes. | 5 shows a packet on the wire between forwarding nodes. | |||
| +-----------------+ | +-----------------+ | |||
| | Outer Header | | | Outer Header | | |||
| +-----------------+ | +-----------------+ | |||
| | NSH | | | NSH | | |||
| skipping to change at page 15, line 5 ¶ | skipping to change at page 15, line 5 ¶ | |||
| When the NSH encapsulated packet is further encapsulated for | When the NSH encapsulated packet is further encapsulated for | |||
| transmission to the next SFF or SF, ECN marking behavior depends on | transmission to the next SFF or SF, ECN marking behavior depends on | |||
| whether or not the node that will decapsulate the outer header | whether or not the node that will decapsulate the outer header | |||
| supports Compliant ECN Decapsulation (see Section 3). If it does, | supports Compliant ECN Decapsulation (see Section 3). If it does, | |||
| then the encapsulating node propagates the NSH ECN field to this | then the encapsulating node propagates the NSH ECN field to this | |||
| outer encapsulation using the "Normal Mode" of ECN encapsulation | outer encapsulation using the "Normal Mode" of ECN encapsulation | |||
| [RFC6040] (the ECN field is copied). If it does not, then the | [RFC6040] (the ECN field is copied). If it does not, then the | |||
| encapsulating node MUST clear ECN in the outer encapsulation to non- | encapsulating node MUST clear ECN in the outer encapsulation to non- | |||
| ECT (the "Compatibility Mode" of [RFC6040]). | ECT (the "Compatibility Mode" of [RFC6040]). | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| 3.2.2 At an SF/Proxy | 3.2.2 At an SF/Proxy | |||
| If the SF is NSH and ECN-aware, the processing is essentially the | If the SF is NSH and ECN-aware, the processing is essentially the | |||
| same at the SF as at an SFF as discussed in Section 3.2.1. | same at the SF as at an SFF as discussed in Section 3.2.1. | |||
| If the SF is NSH-aware but ECN-unaware, then the SFF transmitting the | If the SF is NSH-aware but ECN-unaware, then the SFF transmitting the | |||
| packet to the SF will use Compatibility Mode. Congestion encountered | packet to the SF will use Compatibility Mode. Congestion encountered | |||
| in the SFF to SF and SF to SFF paths will be unmanaged. | in the SFF to SF and SF to SFF paths will be unmanaged. | |||
| If the SF is not NSH-aware, then an NSH proxy will be between the SFF | If the SF is not NSH-aware, then an NSH proxy will be between the SFF | |||
| skipping to change at page 15, line 44 ¶ | skipping to change at page 15, line 42 ¶ | |||
| |Forwarder)| +-------+ |Function)| | |Forwarder)| +-------+ |Function)| | |||
| +----------+ +---------+ | +----------+ +---------+ | |||
| | | | | |||
| v | v | |||
| Figure 6. Proxy for NSH Un-aware SFF | Figure 6. Proxy for NSH Un-aware SFF | |||
| If the proxy is ECN-aware, the proxy uses an AQM to indicate | If the proxy is ECN-aware, the proxy uses an AQM to indicate | |||
| congestion within the proxy in the NSH that it returns to the SFF. | congestion within the proxy in the NSH that it returns to the SFF. | |||
| The outer header used for the proxy-to-SF path uses Normal Mode. | The outer header used for the proxy-to-SF path uses Normal Mode. | |||
| The outer head used for the proxy-to-SFF path uses Normal Mode | The outer header used for the proxy-to-SFF path uses Normal Mode | |||
| based copying of the NSH ECN field to the outer header. Thus | based copying of the NSH ECN field to the outer header. Thus | |||
| congestion in the proxy will be managed. Congestion in the SF will | congestion in the proxy will be managed. Congestion in the SF will | |||
| be managed only if the SF is ECN-aware and implements an AQM. | be managed only if the SF is ECN-aware and implements an AQM. | |||
| 3.2.3 At Other Forwarding Nodes | 3.2.3 At Other Forwarding Nodes | |||
| Other forwarding nodes, that is non-NSH forwarding nodes between NSH | Other forwarding nodes, that is non-NSH forwarding nodes between NSH | |||
| forwarding nodes, such as IP or label switched routers, might also | forwarding nodes, such as IP or label switched routers, might also | |||
| contain potential bottlenecks. If so, they SHOULD implement an AQM | contain potential bottlenecks. If so, they SHOULD implement an AQM | |||
| algorithm to update the ECN marking in the outer transport header as | algorithm to update the ECN marking in the outer transport header as | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| specified in [RFC3168]. | specified in [RFC3168]. | |||
| 3.3 At Exit/Egress | 3.3 At Exit/Egress | |||
| At the SFC domain egress node, first any actions are taken based on | At the SFC domain egress node, first any actions are taken based on | |||
| Congestion Experienced or other values of ECN marking, such as | Congestion Experienced or other values of ECN marking, such as | |||
| accumulating statistics to send back to the ingress (see Section 4) | accumulating statistics to send back to the ingress (see Section 4) | |||
| or for other uses. If the packet being carried inside the NSH is IP, | or for other uses. If the packet being carried inside the NSH is IP, | |||
| when the NSH is removed the NSH ECN field MUST be combined with the | when the NSH is removed the NSH ECN field MUST be combined with the | |||
| IP ECN field as specified in Table 3 that was extracted from | IP ECN field as specified in Table 3 that was extracted from | |||
| skipping to change at page 17, line 5 ¶ | skipping to change at page 17, line 5 ¶ | |||
| it receives. Such actions might appear to be packet loss due to | it receives. Such actions might appear to be packet loss due to | |||
| congestion or might mask the loss of packets by generating additional | congestion or might mask the loss of packets by generating additional | |||
| packets. | packets. | |||
| The tunnel congestion feedback approach (Section 4) detects loss by | The tunnel congestion feedback approach (Section 4) detects loss by | |||
| counting payload bytes in at the ingress and counting them out at the | counting payload bytes in at the ingress and counting them out at the | |||
| egress. This does not work unless nodes conserve the amount of | egress. This does not work unless nodes conserve the amount of | |||
| payload bytes. Therefore, it will not be possible to detect loss | payload bytes. Therefore, it will not be possible to detect loss | |||
| using this technique if they are not conserved. | using this technique if they are not conserved. | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| Nonetheless, if a bottleneck supports ECN marking, it will be | Nonetheless, if a bottleneck supports ECN marking, it will be | |||
| possible to detect the very high level of CE markings that are | possible to detect the very high level of CE markings that are | |||
| associated with congestion that is so excessive that it leads to | associated with congestion that is so excessive that it leads to | |||
| loss. However, it will not be possible for the tunnel congestion | loss. However, it will not be possible for the tunnel congestion | |||
| feedback approach to detect any congestion, whether slight or severe, | feedback approach to detect any congestion, whether slight or severe, | |||
| if it occurs at a bottleneck that does not support ECN marking. | if it occurs at a bottleneck that does not support ECN marking. | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| 4. Tunnel Congestion Feedback Support | 4. Tunnel Congestion Feedback Support | |||
| The collection and storage of congestion information at the egress | The collection and storage of congestion information at the egress | |||
| may be useful for later analysis but, unless it can be fed back to a | may be useful for later analysis but, unless it can be fed back to a | |||
| point which can take action to reduce congestion, it will not be | point which can take action to reduce congestion, it will not be | |||
| useful in real time. Such congestion feedback to the ingress enables | useful in real time. Such congestion feedback to the ingress enables | |||
| it to take actions such as those listed in Section 1.3. | it to take actions such as those listed in Section 1.3. | |||
| IP Flow Information Export (IPFIX [RFC7011]) provides a standard for | IP Flow Information Export (IPFIX [RFC7011]) provides a standard for | |||
| communicating traffic flow statistics. As extended by this document, | communicating traffic flow statistics. As extended by this document, | |||
| IPFIX messages from the egress to the ingress are used to communicate | IPFIX messages from the egress to the ingress are used to communicate | |||
| the extent of congestion between an ingress and egress based on ECN | the extent of congestion between an ingress and egress based on ECN | |||
| marking in the NSH. | marking in the NSH. | |||
| 4.1 Congestion Level Measurement | 4.1 Congestion Level Measurement | |||
| The congestion level measurement is based on ECN marking in the NSH | The congestion level measurement is based on ECN marking in the NSH | |||
| and packet drop, particularly the fraction of packets that are CE- | and packet drop. In particular the congestion information includes | |||
| marked packet and fraction that are dropped. If the congestion level | the ratio of CE-marked packets to all packets and the ratio of | |||
| is not high enough, the packets are marked as CE instead of being | dropped packets to all packets. | |||
| dropped, and then it is easy to calculate congestion level according | ||||
| to the ratio of CE-marked packets. If the congestion level is so high | If the congestion level is not high enough, the packets are marked as | |||
| that ECT packets will be dropped, then the packet loss ratio could be | CE instead of being dropped, and then it is easy to calculate | |||
| calculated by comparing total packets entering ingress and total | congestion level according to the ratio of CE-marked packets. If the | |||
| packets arriving at egress over the same span of packets. If packet | congestion level is so high that ECT packets will be dropped, then | |||
| loss is detected, it could be assumed that severe congestion has | the packet loss ratio could be calculated by comparing total packets | |||
| occurred in the tunnel. | entering ingress and total packets arriving at egress over the same | |||
| span of packets. If packet loss is detected, it can be assumed that | ||||
| severe congestion has occurred in the tunnel. | ||||
| The egress calculates the CE-marked packet ratio by counting packets | The egress calculates the CE-marked packet ratio by counting packets | |||
| with different ECN markings. The CE-marked packet ratio will be used | with different ECN markings. The CE-marked packet ratio will be used | |||
| as an indication of tunnel load level. It is assumed that nodes | as an indication of tunnel load level. It is assumed that nodes | |||
| between the ingress and egress will not drop packets biased towards | between the ingress and egress will not drop packets biased towards | |||
| certain ECN codepoints, so calculating of CE-marked packet ratio is | certain ECN codepoints, so calculating of CE-marked packet ratio is | |||
| not affect by packet drop. | not affect by packet drop. | |||
| The calculation of volumes of packet drop is by comparing the traffic | The calculation of volumes of packet drop is by comparing the traffic | |||
| volumes between ingress and egress. | volumes between ingress and egress. | |||
| Faked ECN-Capable Transport (ECT) is used at the ingress to defer | Faked ECN-Capable Transport (ECT) is used at the ingress to defer | |||
| packet loss to the egress. The basic idea of faked ECT is that, when | packet loss to the egress. The basic idea of faked ECT is that, when | |||
| encapsulating packets, the ingress first marks the tunnel outer | encapsulating packets, the ingress first marks the tunnel outer | |||
| header (NSH for an SFC domain) according to [RFC6040], and then | header (NSH for an SFC domain) according to [RFC6040], and then | |||
| remarks the outer header of Not-ECT packets as ECT. (ECT(0) and | remarks the outer header of Not-ECT packets as ECT. (ECT(0) and | |||
| ECT(1) are treated as the same.) Thus, as transmitted by the ingress | ECT(1) are treated as the same.) Thus, as transmitted by the ingress | |||
| node, there will be one of three combinations of outer header ECN | node, there will be one of three combinations of outer header ECN | |||
| field and inner header ECN field: CE|CE, ECT|N-ECT, and ECT|ECT (in | field and inner header ECN field as follows: CE|CE, ECT|N-ECT, and | |||
| the format of outer-ECN|inner-ECN); when decapsulating packets at the | ECT|ECT (in the format of outer-ECN|inner-ECN); when decapsulating | |||
| egress, [RFC6040] defined decapsulation behavior is used, and | packets at the egress, [RFC6040] defined decapsulation behavior is | |||
| used, and according to [RFC6040], the packets marked as CE|N-ECT will | ||||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | be dropped. Faked-ECT is used to shift some drops to the egress in | |||
| order to allow the egress to calculate the CE-marked packet ratio | ||||
| according to [RFC6040], the packets marked as CE|N-ECT will be | more precisely. | |||
| dropped. Faked-ECT is used to shift some drops to the egress in order | ||||
| to allow the egress to calculate the CE-marked packet ratio more | ||||
| precisely. | ||||
| The ingress encapsulates packets and marks their outer header | The ingress encapsulates packets and marks their outer header | |||
| according to faked ECT as described above. The ingress cumulatively | according to faked ECT as described above. The ingress cumulatively | |||
| counts packet bytes for three types of ECN combination (CE|CE, ECT|N- | counts packet bytes for three types of ECN combination (CE|CE, ECT|N- | |||
| ECT, and ECT|ECT) and then the ingress regularly sends cumulative | ECT, and ECT|ECT) and then the ingress regularly sends cumulative | |||
| bytes counts message of each type of ECN combination to the egress. | bytes counts message of each type of ECN combination to the egress. | |||
| When each message arrives at the egress, (1) egress calculates the | When each message arrives at the egress, (1) the egress calculates | |||
| ratio of CE-marked packet; (2) the egress cumulatively counts packet | the ratio of CE-marked packets; (2) the egress cumulatively counts | |||
| bytes coming from the ingress and adds its own bytes counts of each | packet bytes coming from the ingress and adds its own bytes counts of | |||
| type of ECN combination (CE|CE, ECT|N-ECT, CE|N-ECT, CE|ECT, and | each type of ECN combination (CE|CE, ECT|N-ECT, CE|N-ECT, CE|ECT, and | |||
| ECT|ECT) to the message for ingress to calculate packet loss. The | ECT|ECT) to the message for ingress to calculate packet loss. The | |||
| egress feeds back CE-marked packet ratio and bytes counts information | egress feeds back the CE-marked packet ratio and bytes counts | |||
| to the ingress for evaluating congestion level in the tunnel. | information to the ingress for evaluating congestion level in the | |||
| tunnel. | ||||
| The counting of bytes can be at the granularity of all traffic from | The counting of bytes can be at the granularity of all traffic from | |||
| the ingress to the egress to learn about the overall congestion | the ingress to the egress to learn about the overall congestion | |||
| status of the path between the ingress and the egress. The counting | status of the path between the ingress and the egress. The counting | |||
| can also be at the granularity of individual customer's traffic or a | can also be at the granularity of individual customer's traffic or a | |||
| specific set of flows to learn about their congestion contribution. | specific set of flows to learn about their congestion contribution. | |||
| For example, the tunnelEcnCEMarkedRatio field (specified below) | For example, the tunnelEcnCEMarkedRatio field (specified below) | |||
| indicates the fraction of traffic that has been marked in the ECN | indicates the fraction of traffic that has been marked in the ECN | |||
| field of the NSH as Congestion Experienced (CE). | field of the NSH as Congestion Experienced (CE). | |||
| 4.3 Congestion Information Delivery | 4.3 Congestion Information Delivery | |||
| As described above, the tunnel ingress needs to send a messages | As described above, the tunnel ingress needs to send a messages | |||
| containing cumulative bytes counts of packets of each type of ECN | containing cumulative bytes counts of packets of each type of ECN | |||
| combination to the tunnel egress, and the tunnel egress also needs to | combination to the tunnel egress, and the tunnel egress also needs to | |||
| feed back messages with cumulative bytes counts of packets of each | feed back messages with cumulative bytes counts of packets of each | |||
| type of ECN combination and CE-marked packet ratio to the ingress. | type of ECN combination and the CE-marked packet ratio to the | |||
| This section specifies how the messages should be conveyed. | ingress. This section specifies how the messages should be conveyed. | |||
| IPFIX recommends, but does not require, use of SCTP [RFC4960] in | IPFIX recommends, but does not require, use of SCTP [RFC4960] in | |||
| partial reliability mode [RFC3758] for the transport of its messages. | partial reliability mode [RFC3758] for the transport of its messages. | |||
| This mode allows loss of some packets, which is tolerable because | This mode allows loss of some packets, which is tolerable because | |||
| IPFIX communicates cumulative statistics. IPFIX over SCTP over IP | IPFIX communicates cumulative statistics. IPFIX over SCTP over IP | |||
| SHOULD be used directly where there is IP connectivity between the | SHOULD be used directly where there is IP connectivity between the | |||
| ingress and egress; however, there might be different transport | ingress and egress; however, there might be different transport | |||
| protocols or address spaces used in different regions of an SFC | protocols or address spaces used in different regions of an SFC | |||
| domain that make such direct IP connectivity problematic. The NSH | domain that make such direct IP connectivity problematic. The NSH | |||
| provides the general method of routing traffic within an SFC domain | provides the general method of routing traffic within an SFC domain | |||
| so the encapsulation of the required IPFIX traffic in NSH MUST be | so the encapsulation of the required IPFIX traffic in NSH MUST be | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| implemented and, when IP connectivity is not available, IPFIX over | implemented and, when IP connectivity is not available, IPFIX over | |||
| NSH SHOULD be used along with configuration of appropriate SFC paths | NSH SHOULD be used along with configuration of appropriate SFC paths | |||
| for the IPFIX over NSH traffic. | for the IPFIX over NSH traffic. | |||
| Typically IPFIX messages could travel along the same path as network | IPFIX messages could travel along the same path as network data | |||
| data traffic. In any case, an IPFIX message packet may get lost in | traffic. In any case, an IPFIX message packet may get lost in case of | |||
| case of network congestion. Even though the missing information could | network congestion. Even though the missing information could be | |||
| be recovered because of the use of cumulative counts, the message | recovered because of the use of cumulative counts, the message SHOULD | |||
| SHOULD be transmitted at a higher priority than users' traffic flows. | be transmitted at a higher priority than users' traffic flows. | |||
| The ingress node can do congestion management at different | The ingress node can do congestion management at different | |||
| granularity which means both the overall aggregated inner tunnel | granularity which means both the overall aggregated inner tunnel | |||
| congestion level and congestion level contributed by certain traffic | congestion level and congestion level contributed by certain traffic | |||
| flows could be measured for different congestion management purpose. | flows could be measured for different congestion management purpose. | |||
| For example, if the ingress only wants to limit congestion volume | For example, if the ingress only wants to limit congestion volume | |||
| caused by certain traffic flows, such as UDP-based traffic, then | caused by certain traffic flows, such as UDP-based traffic, then | |||
| congestion volume for that traffic will be fed back; or if the | congestion volume for that traffic will be fed back; or if the | |||
| ingress is doing overall congestion management, the aggregated | ingress is doing overall congestion management, the aggregated | |||
| congestion volume will be fed back. | congestion volume will be fed back. | |||
| skipping to change at page 20, line 37 ¶ | skipping to change at page 20, line 37 ¶ | |||
| When sending IPFIX messages from ingress to egress, the ingress acts | When sending IPFIX messages from ingress to egress, the ingress acts | |||
| as IPFIX exporter and egress acts as IPFIX collector; When feedback | as IPFIX exporter and egress acts as IPFIX collector; When feedback | |||
| congestion level information from egress to ingress, then the egress | congestion level information from egress to ingress, then the egress | |||
| acts as IPFIX exporter and ingress acts as IPFIX collector. | acts as IPFIX exporter and ingress acts as IPFIX collector. | |||
| The combination of congestion level measurement and congestion | The combination of congestion level measurement and congestion | |||
| information delivery procedures should be as following: | information delivery procedures should be as following: | |||
| o The ingress node determines the IPFIX template record to be used. | o The ingress node determines the IPFIX template record to be used. | |||
| The template record can be pre-configured or determined at | The template record can be pre-configured or determined at | |||
| runtime, the content of template record will be determined | runtime, the content of the template record will be determined | |||
| according to the granularity of congestion management; if the | according to the granularity of congestion management; if the | |||
| ingress wants to limit congestion volume contributed by specific | ingress wants to limit congestion volume contributed by specific | |||
| traffic flow then the elements such as source IP address, | traffic flows then the elements such as source IP address, | |||
| destination IP address, flow id and CE-marked packet volume of the | destination IP address, flow ID and CE-marked packet volume of the | |||
| flow, etc., will be included in the template record. | flows, etc., will be included in the template record. | |||
| o Metering on the ingress measures traffic volume according to | o Metering at the ingress measures traffic volume according to the | |||
| template record chosen and then the measurement records are sent | template record chosen and then the measurement records are sent | |||
| to the egress. | to the egress. | |||
| o Metering on the egress measures congestion level information | o Metering on the egress measures congestion level information | |||
| according to template record which should be the same as the | according to template record which SHOULD be the same as the | |||
| template record sent by the ingress. | template record sent by the ingress. | |||
| o The egress sends measurement records together with the measurement | o The egress sends its measurement records together with the | |||
| records of ingress back to the ingress. | measurement records of the ingress back to the ingress. | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| 4.3 IPFIX Extensions | 4.3 IPFIX Extensions | |||
| This section specifies new IPFIX Information Elements according to | This section specifies the new IPFIX Information Elements needed. It | |||
| [RFC7013]. | conforms to [RFC7013]. | |||
| 4.3.1 nshServicePathID | 4.3.1 nshServicePathID | |||
| In order to identify SFC flows, so that congestion can be measured | In order to identify SFC flows, so that congestion can be measured | |||
| and reported at that granularity, it is necessary for IPFIX to be | and reported at that granularity, it is necessary for IPFIX to be | |||
| able to classify traffic based on the Service Path Identifier field | able to classify traffic based on the Service Path Identifier field | |||
| of the NSH [RFC8300]. Thus an NSH Service Path Identifier | of the NSH [RFC8300]. Thus an NSH Service Path Identifier | |||
| (nshServicePathID) IPFIX Information Element [RFC7012] is specified. | (nshServicePathID) IPFIX Information Element [RFC7012] is specified. | |||
| Name: nshServicePathID | Name: nshServicePathID | |||
| skipping to change at page 21, line 37 ¶ | skipping to change at page 21, line 35 ¶ | |||
| Abstract Data Type: unsigned32 | Abstract Data Type: unsigned32 | |||
| Data Type Semantics: identifier | Data Type Semantics: identifier | |||
| ElementId: tbd0 | ElementId: tbd0 | |||
| Status: current | Status: current | |||
| 4.3.2 tunnelEcnCeCeByteTotalCount | 4.3.2 tunnelEcnCeCeByteTotalCount | |||
| Description: The total number of bytes of incoming packets with | Description: The total number of bytes of incoming packets withthe | |||
| CE|CE ECN marking combination at the Observation Point since | CE|CE ECN marking combination at the Observation Point since | |||
| the Metering Process (re-)initialization for this Observation | the Metering Process (re-)initialization for this Observation | |||
| Point. | Point. | |||
| Abstract Data Type: unsigned64 | Abstract Data Type: unsigned64 | |||
| Data Type Semantics: totalCounter | Data Type Semantics: totalCounter | |||
| ElementId: TBD1 | ElementId: TBD1 | |||
| Statues: current | Statues: current | |||
| Units: bytes | Units: bytes | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| 4.3.3 tunnelEcnEctNectBytetTotalCount | 4.3.3 tunnelEcnEctNectBytetTotalCount | |||
| Description: The total number of bytes of incoming packets with | Description: The total number of bytes of incoming packets with | |||
| ECT|N-ECT ECN marking combination (ECT(0) and ECT(1) are | the ECT|N-ECT ECN marking combination (ECT(0) and ECT(1) are | |||
| treated as the same) at the Observation Point since the | treated the same as each other) at the Observation Point since | |||
| Metering Process (re-)initialization for this Observation | the Metering Process (re-)initialization for this Observation | |||
| Point. | Point. | |||
| Abstract Data Type: unsigned64 | Abstract Data Type: unsigned64 | |||
| Data Type Semantics: totalCounter | Data Type Semantics: totalCounter | |||
| ElementId: TBD2 | ElementId: TBD2 | |||
| Statues: current | Statues: current | |||
| Units: bytes | Units: bytes | |||
| 4.3.4 tunnelEcnCeNectByteTotalCount | 4.3.4 tunnelEcnCeNectByteTotalCount | |||
| Description: The total number of bytes of incoming packets with | Description: The total number of bytes of incoming packets with | |||
| CE|N-ECT ECN marking combination at the Observation Point since | the CE|N-ECT ECN marking combination at the Observation Point | |||
| the Metering Process (re-)initialization for this Observation | since the Metering Process (re-)initialization for this | |||
| Point. | Observation Point. | |||
| Abstract Data Type: unsigned64 | Abstract Data Type: unsigned64 | |||
| Data Type Semantics: totalCounter | Data Type Semantics: totalCounter | |||
| ElementId: TBD3 | ElementId: TBD3 | |||
| Statues: current | Statues: current | |||
| Units: bytes | Units: bytes | |||
| 4.3.5 tunnelEcnCeEctByteTotalCount | 4.3.5 tunnelEcnCeEctByteTotalCount | |||
| Description: The total number of bytes of incoming packets with | Description: The total number of bytes of incoming packets with | |||
| CE|ECT ECN marking combination (ECT(0) and ECT(1) are treated | the CE|ECT ECN marking combination (ECT(0) and ECT(1) are | |||
| as the same) at the Observation Point since the Metering | treated the same as each other) at the Observation Point since | |||
| Process (re-)initialization for this Observation Point. | the Metering Process (re-)initialization for this Observation | |||
| Point. | ||||
| Abstract Data Type: unsigned64 | Abstract Data Type: unsigned64 | |||
| Data Type Semantics: totalCounter | Data Type Semantics: totalCounter | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| ElementId: TBD4 | ElementId: TBD4 | |||
| Statues: current | Statues: current | |||
| Units: bytes | Units: bytes | |||
| 4.3.6 tunnelEcnEctEctByteTotalCount | 4.3.6 tunnelEcnEctEctByteTotalCount | |||
| Description: The total number of bytes of incoming packets with | Description: The total number of bytes of incoming packets with | |||
| ECT|ECT ECN marking combination (ECT(0) and ECT(1) are treated | the ECT|ECT ECN marking combination (ECT(0) and ECT(1) are | |||
| as the same) at the Observation Point since the Metering | treated the same as each other) at the Observation Point since | |||
| Process (re-)initialization for this Observation Point. | the Metering Process (re-)initialization for this Observation | |||
| Point. | ||||
| Abstract Data Type: unsigned64 | Abstract Data Type: unsigned64 | |||
| Data Type Semantics: totalCounter | Data Type Semantics: totalCounter | |||
| ElementId: TBD5 | ElementId: TBD5 | |||
| Statues: current | Statues: current | |||
| Units: bytes | Units: bytes | |||
| 4.3.7 tunnelEcnCEMarkedRatio | 4.3.7 tunnelEcnCEMarkedRatio | |||
| Description: The ratio of CE-marked Packet at the Observation | Description: The ratio of CE-marked packets at the Observation | |||
| Point. | Point. | |||
| Abstract Data Type: float32 | Abstract Data Type: float32 | |||
| ElementId: TBD6 | ElementId: TBD6 | |||
| Statues: current | Statues: current | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| 5. Example of Use | 5. Example of Use | |||
| This subsection provides an example of how the solution described in | This subsection provides an example of how the solution described in | |||
| this document could work. | this document could work. | |||
| First of all, IPFIX template records are exchanged between ingress | First of all, IPFIX template records are exchanged between ingress | |||
| and egress to negotiate the format of data records. The example here | and egress to negotiate the format of data records. The example here | |||
| is to measure the congestion level for the overall tunnel caused by | is to measure the congestion level for the overall tunnel caused by | |||
| all the traffic. After the negotiation is finished, the ingress sends | all the traffic. After the negotiation is finished, the ingress sends | |||
| in-band messages to egress containing the number of each kind of ECN- | in-band messages to the egress containing the number of each kind of | |||
| marked packets (i.e.. CE|CE, ECT|N-ECT and ECT|ECT) received until it | ECN-marked packets (i.e., CE|CE, ECT|N-ECT and ECT|ECT) received | |||
| sent the message. | before it sent the message. | |||
| After the egress receives the message, the egress calculates the CE- | After the egress receives the message, the egress calculates the CE- | |||
| marked packet ratio and counts the number of different kinds of ECN- | marked packet ratio and counts the number of different kinds of ECN- | |||
| marking packets received until it received the message. Then the | marking packets received before it received the message. Then the | |||
| egress sends a feedback message containing the counts together with | egress sends a feedback message containing the counts together with | |||
| the information in the ingress's message back to the ingress. | the information in the ingress's message back to the ingress. | |||
| Figures 7 to 10 below show the example procedure between ingress and | Figures 7 to 10 below show the example procedure between ingress and | |||
| egress. | egress. | |||
| +---------------------------------+----------------------+ | +---------------------------------+----------------------+ | |||
| |Set ID=2 Length=40 | | |Set ID=2 Length=40 | | |||
| |---------------------------------|----------------------| | |---------------------------------|----------------------| | |||
| |Template ID=256 Field Count=8 | | |Template ID=256 Field Count=8 | | |||
| skipping to change at page 25, line 5 ¶ | skipping to change at page 25, line 5 ¶ | |||
| |---------------------------------|----------------------| | |---------------------------------|----------------------| | |||
| |tunnelEcnCeNectByteTotalCount Field Length=8 | | |tunnelEcnCeNectByteTotalCount Field Length=8 | | |||
| |---------------------------------|----------------------| | |---------------------------------|----------------------| | |||
| |tunnelEcnCeEctByteTotalCount Field Length=8 | | |tunnelEcnCeEctByteTotalCount Field Length=8 | | |||
| +---------------------------------|----------------------+ | +---------------------------------|----------------------+ | |||
| |tunnelEcnCEMarkedRatio Field Length=4 | | |tunnelEcnCEMarkedRatio Field Length=4 | | |||
| +---------------------------------+----------------------+ | +---------------------------------+----------------------+ | |||
| Figure 7. Template Record Sent From Egress to Ingress | Figure 7. Template Record Sent From Egress to Ingress | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| +---------------------------------+----------------------+ | +---------------------------------+----------------------+ | |||
| |Set ID=2 Length=28 | | |Set ID=2 Length=28 | | |||
| |---------------------------------|----------------------| | |---------------------------------|----------------------| | |||
| |Template ID=257 Field Count=3 | | |Template ID=257 Field Count=3 | | |||
| |---------------------------------|----------------------| | |---------------------------------|----------------------| | |||
| |tunnelEcnCeCeByteTotalCount Field Length=8 | | |tunnelEcnCeCeByteTotalCount Field Length=8 | | |||
| |---------------------------------|----------------------| | |---------------------------------|----------------------| | |||
| |tunnelEcnEctNectByteTotalCount Field Length=8 | | |tunnelEcnEctNectByteTotalCount Field Length=8 | | |||
| |---------------------------------|----------------------| | |---------------------------------|----------------------| | |||
| |tunnelEcnEctEctByteTotalCount Field Length=8 | | |tunnelEcnEctEctByteTotalCount Field Length=8 | | |||
| skipping to change at page 26, line 4 ¶ | skipping to change at page 26, line 4 ¶ | |||
| +-+ | +-+ | |||
| |M| : Message Packet | |M| : Message Packet | |||
| +-+ | +-+ | |||
| +-+ | +-+ | |||
| |P| : User Packet | |P| : User Packet | |||
| +-+ | +-+ | |||
| Figure 9. Traffic flow Between Ingress and Egress | Figure 9. Traffic flow Between Ingress and Egress | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| Set ID=257, Length=28 | Set ID=257, Length=28 | |||
| +------+ A1 +------+ | +------+ A1 +------+ | |||
| | | B1 | | | | | B1 | | | |||
| | | C1 | | | | | C1 | | | |||
| | | <----------------------------- | | | | | <----------------------------- | | | |||
| | | | | | | | | | | |||
| | | | | | | | | | | |||
| | | SetID=256, Length=72 | | | | | SetID=256, Length=72 | | | |||
| | | A1 | | | | | A1 | | | |||
| | | B1 | | | | | B1 | | | |||
| skipping to change at page 26, line 31 ¶ | skipping to change at page 26, line 28 ¶ | |||
| | | D | | | | | D | | | |||
| | | E | | | | | E | | | |||
| | | R | | | | | R | | | |||
| | | ----------------------------> | | | | | ----------------------------> | | | |||
| | | | | | | | | | | |||
| +------+ +------+ | +------+ +------+ | |||
| Figure 10. Messages Between Ingress and Egress | Figure 10. Messages Between Ingress and Egress | |||
| The following provides an example of how the tunnel congestion level | The following provides an example of how the tunnel congestion level | |||
| could be calculated: | can be calculated (see Figure 10): | |||
| The congestion Level could be divided into two categories: (1) | The congestion Level could be divided into two categories: (1) | |||
| slight congestion (no packets dropped); (2) serious congestion | slight congestion (no packets dropped); (2) serious congestion | |||
| (packets are being dropped). | (packets are being dropped). | |||
| For slight congestion, the congestion level is indicated as the | For slight congestion, the congestion level is indicated by the | |||
| ratio of CE-marked packet: | ratio of CE-marked packets: | |||
| ce_marked = R; | ce_marked = R; | |||
| For serious congestion, the congestion level is indicated as the | For serious congestion, the congestion level is indicated as the | |||
| number of volume loss: | number of volume loss: | |||
| total_ingress = (A1 + B1 + C1) | total_ingress = (A1 + B1 + C1) | |||
| total_egress = (A2 + B2 + C2 + D + E) | total_egress = (A2 + B2 + C2 + D + E) | |||
| volume_loss = (total_ingress - total_egress) | volume_loss = (total_ingress - total_egress) | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| 6. IANA Considerations | 6. IANA Considerations | |||
| The following subsections provide IANA assignment considerations. | The following subsections provide IANA assignment considerations. | |||
| 6.1 SFC NSH Header ECN Bits | 6.1 SFC NSH Header ECN Bits | |||
| IANA is requested to assign two contiguous bits in the NSH Base | IANA is requested to assign two contiguous bits in the NSH Base | |||
| Header Bits registry for ECN (bits 16 and 17 suggested) and note this | Header Bits registry for ECN (bits 16 and 17 suggested) and note this | |||
| assignment as follows: | assignment as follows: | |||
| skipping to change at page 27, line 39 ¶ | skipping to change at page 27, line 37 ¶ | |||
| Status: current | Status: current | |||
| Description: The Network Service Header [RFC8300] Service Path | Description: The Network Service Header [RFC8300] Service Path | |||
| Identifier. | Identifier. | |||
| ElementID: TBD1 | ElementID: TBD1 | |||
| Name: tunnelEcnCeCePacketTotalCount | Name: tunnelEcnCeCePacketTotalCount | |||
| Data Type: unsigned64 | Data Type: unsigned64 | |||
| Data Type Semantics: totalCounter | Data Type Semantics: totalCounter | |||
| Status: current | Status: current | |||
| Description: The total number of bytes of incoming packets with | Description: The total number of bytes of incoming packets with | |||
| CE|CE ECN marking combination at the Observation Point since | the CE|CE ECN marking combination at the Observation Point | |||
| the Metering Process (re-)initialization for this Observation | since the Metering Process (re-)initialization for this | |||
| Point. | Observation Point. | |||
| Units: octets | Units: octets | |||
| ElementID: TBD2 | ElementID: TBD2 | |||
| Name: tunnelEcnEctNectPacketTotalCount | Name: tunnelEcnEctNectPacketTotalCount | |||
| Data Type: unsigned64 | Data Type: unsigned64 | |||
| Data Type Semantics: totalCounter | Data Type Semantics: totalCounter | |||
| Status: current | Status: current | |||
| Description: The total number of bytes of incoming packets with | Description: The total number of bytes of incoming packets with | |||
| ECT|N-ECT ECN marking combination at the Observation Point | the ECT|N-ECT ECN marking combination at the Observation Point | |||
| since the Metering Process (re-)initialization for this | since the Metering Process (re-)initialization for this | |||
| Observation Point. | Observation Point. | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| Units: octets | Units: octets | |||
| ElementID: TBD3 | ElementID: TBD3 | |||
| Name: tunnelEcnCeNectPacketTotalCount | Name: tunnelEcnCeNectPacketTotalCount | |||
| Data Type: unsigned64 | Data Type: unsigned64 | |||
| Data Type Semantics: totalCounter | Data Type Semantics: totalCounter | |||
| Status: current | Status: current | |||
| Description: The total number of bytes of incoming packets with | Description: The total number of bytes of incoming packets with | |||
| CE|N-ECT ECN marking combination at the Observation Point since | the CE|N-ECT ECN marking combination at the Observation Point | |||
| the Metering Process (re-)initialization for this Observation | since the Metering Process (re-)initialization for this | |||
| Point. | Observation Point. | |||
| Units: octets | Units: octets | |||
| ElementID: TBD4 | ElementID: TBD4 | |||
| Name: tunnelEcnCeEctPacketTotalCount | Name: tunnelEcnCeEctPacketTotalCount | |||
| Data Type: unsigned64 | Data Type: unsigned64 | |||
| Data Type Semantics: totalCounter | Data Type Semantics: totalCounter | |||
| Status: current | Status: current | |||
| Description: The total number of bytes of incoming packets with | Description: The total number of bytes of incoming packets with | |||
| CE|ECT ECN marking combination at the Observation Point since | the CE|ECT ECN marking combination at the Observation Point | |||
| the Metering Process (re-)initialization for this Observation | since the Metering Process (re-)initialization for this | |||
| Point. | Observation Point. | |||
| Units: octets | Units: octets | |||
| ElementID: TBD5 | ElementID: TBD5 | |||
| Name: tunnelEcnEctEctPacketTotalCount | Name: tunnelEcnEctEctPacketTotalCount | |||
| Data Type: unsigned64 | Data Type: unsigned64 | |||
| Data Type Semantics: totalCounter | Data Type Semantics: totalCounter | |||
| Status: current | Status: current | |||
| Description: The total number of bytes of incoming packets with | Description: The total number of bytes of incoming packets with | |||
| CE|ECT(0) ECN marking combination at the Observation Point | the CE|ECT(0) ECN marking combination at the Observation Point | |||
| since the Metering Process (re-)initialization for this | since the Metering Process (re-)initialization for this | |||
| Observation Point. | Observation Point. | |||
| Units: octets | Units: octets | |||
| ElementID: TBD6 | ElementID: TBD6 | |||
| Name: tunnelEcnCEMarkedRatio | Name: tunnelEcnCEMarkedRatio | |||
| Data Type: float32 | Data Type: float32 | |||
| Status: current | Status: current | |||
| Description: The ratio of CE-marked Packet at the Observation | Description: The ratio of CE-marked Packet at the Observation | |||
| Point. | Point. | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| 7. Security Considerations | 7. Security Considerations | |||
| For general NSH security considerations, see [RFC8300]. | For general NSH security considerations, see [RFC8300]. | |||
| For security considerations concerning tampering with ECN signaling, | For security considerations concerning tampering with ECN signaling, | |||
| see [RFC3168]. For security considerations concerning ECN and | see [RFC3168]. For security considerations concerning ECN and | |||
| encapsulation, see [RFC6040]. | encapsulation, see [RFC6040]. | |||
| For general IPFIX security considerations, see [RFC7011]. If deployed | For general IPFIX security considerations, see [RFC7011]. If deployed | |||
| in an untrusted environment, the signaling traffic between ingress | in an untrusted environment, the signaling traffic between ingress | |||
| and egress can be protected utilizing the security mechanisms | and egress can be protected utilizing the security mechanisms | |||
| provided by IPFIX (see Section 11 in [RFC7011]). | provided by IPFIX (see Section 11 in [RFC7011]). The tunnel | |||
| endpoints (the ingress and egress for an SFC domain) are assumed to | ||||
| The tunnel endpoints (the ingress and egress for an SFC domain) are | be in the same administrative domain, so they will trust each other. | |||
| assumed to be in the same administrative domain, so they will trust | ||||
| each other. | ||||
| The solution in this document does not introduce any greater | The solution in this document does not introduce any greater | |||
| potential to invade privacy than would have been available without | potential to invade privacy than would have been available without | |||
| the solution. | the solution. | |||
| 8. Acknowledgements | 8. Acknowledgements | |||
| Most of the material on Tunnel Congestion Feedback was originally in | Most of the material on Tunnel Congestion Feedback was originally in | |||
| draft-ietf-twvwg-tunnel-congestion-feedback. After discussion with | draft-ietf-tsvwg-tunnel-congestion-feedback. After discussion with | |||
| the authors of that draft, the authors of this draft, and the Chairs | the authors of that draft, the authors of this draft, and the Chairs | |||
| of the TSVWG and SFC Working Groups, the Tunnel Congestion Feedback | of the TSVWG and SFC Working Groups, the Tunnel Congestion Feedback | |||
| draft was merged into this draft. | draft was merged into this draft. | |||
| The authors wish to thank the following for their comments, | The authors wish to thank the following for their comments, | |||
| suggestions, and reviews: | suggestions, and reviews: | |||
| David Black, Sami Boutros, Anthony Chan, Lingli Deng, Liang Geng, | David Black, Sami Boutros, Anthony Chan, Lingli Deng, Liang Geng, | |||
| Joel Halpern, Jake Holland, John Kaippallimalil, Tal Mizrahi, | Joel Halpern, Jake Holland, John Kaippallimalil, Tal Mizrahi, | |||
| Vincent Roca, Lei Zhu | Vincent Roca, Lei Zhu | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| Normative References | Normative References | |||
| [RFC2119] - Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] - Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, | Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, | |||
| March 1997, <http://www.rfc-editor.org/info/rfc2119>. | March 1997, <http://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3168] - Ramakrishnan, K., Floyd, S., and D. Black, "The Addition | [RFC3168] - Ramakrishnan, K., Floyd, S., and D. Black, "The Addition | |||
| of Explicit Congestion Notification (ECN) to IP", RFC 3168, DOI | of Explicit Congestion Notification (ECN) to IP", RFC 3168, DOI | |||
| 10.17487/RFC3168, September 2001, <http://www.rfc- | 10.17487/RFC3168, September 2001, <http://www.rfc- | |||
| editor.org/info/rfc3168>. | editor.org/info/rfc3168>. | |||
| skipping to change at page 31, line 5 ¶ | skipping to change at page 31, line 5 ¶ | |||
| editor.org/info/rfc7567>. | editor.org/info/rfc7567>. | |||
| [RFC8174] - Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] - Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May | |||
| 2017, <http://www.rfc-editor.org/info/rfc8174> | 2017, <http://www.rfc-editor.org/info/rfc8174> | |||
| [RFC8300] - Quinn, P., Ed., Elzur, U., Ed., and C. Pignataro, Ed., | [RFC8300] - Quinn, P., Ed., Elzur, U., Ed., and C. Pignataro, Ed., | |||
| "Network Service Header (NSH)", RFC 8300, DOI 10.17487/RFC8300, | "Network Service Header (NSH)", RFC 8300, DOI 10.17487/RFC8300, | |||
| January 2018, <https://www.rfc-editor.org/info/rfc8300>. | January 2018, <https://www.rfc-editor.org/info/rfc8300>. | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| Informative References | Informative References | |||
| [RFC4301] - Kent, S. and K. Seo, "Security Architecture for the | [RFC4301] - Kent, S. and K. Seo, "Security Architecture for the | |||
| Internet Protocol", RFC 4301, DOI 10.17487/RFC4301, December | Internet Protocol", RFC 4301, DOI 10.17487/RFC4301, December | |||
| 2005, <https://www.rfc-editor.org/info/rfc4301>. | 2005, <https://www.rfc-editor.org/info/rfc4301>. | |||
| [RFC4960] - Stewart, R., Ed., "Stream Control Transmission Protocol", | [RFC4960] - Stewart, R., Ed., "Stream Control Transmission Protocol", | |||
| RFC 4960, DOI 10.17487/RFC4960, September 2007, | RFC 4960, DOI 10.17487/RFC4960, September 2007, | |||
| <https://www.rfc-editor.org/info/rfc4960>. | <https://www.rfc-editor.org/info/rfc4960>. | |||
| skipping to change at page 32, line 5 ¶ | skipping to change at page 32, line 5 ¶ | |||
| [RFC8311] - Black, D., "Relaxing Restrictions on Explicit Congestion | [RFC8311] - Black, D., "Relaxing Restrictions on Explicit Congestion | |||
| Notification (ECN) Experimentation", RFC 8311, DOI | Notification (ECN) Experimentation", RFC 8311, DOI | |||
| 10.17487/RFC8311, January 2018, <https://www.rfc- | 10.17487/RFC8311, January 2018, <https://www.rfc- | |||
| editor.org/info/rfc8311>. | editor.org/info/rfc8311>. | |||
| [ecnL4S] - De Schepper, K., and B. Briscoe, "Identifying Modified | [ecnL4S] - De Schepper, K., and B. Briscoe, "Identifying Modified | |||
| Explicit Congestion Notification (ECN) Semantics for Ultra-Low | Explicit Congestion Notification (ECN) Semantics for Ultra-Low | |||
| Queuing Delay (L4S)", draft-ietf-tsvwg-ecn-l4s-id, work in | Queuing Delay (L4S)", draft-ietf-tsvwg-ecn-l4s-id, work in | |||
| progress. | progress. | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| Authors' Addresses | Authors' Addresses | |||
| Donald E. Eastlake, 3rd | Donald E. Eastlake, 3rd | |||
| Futurewei Technologies | Futurewei Technologies | |||
| 2386 Panoramic Circle | 2386 Panoramic Circle | |||
| Apopka, FL 32703 USA | Apopka, FL 32703 USA | |||
| Tel: +1-508-333-2270 | Tel: +1-508-333-2270 | |||
| Email: d3e3e3@gmail.com | Email: d3e3e3@gmail.com | |||
| skipping to change at page 33, line 5 ¶ | skipping to change at page 33, line 5 ¶ | |||
| Email: agmalis@gmail.com | Email: agmalis@gmail.com | |||
| Xinpeng Wei | Xinpeng Wei | |||
| Huawei Technologies | Huawei Technologies | |||
| Beiqing Rd. Z-park No.156, Haidian District, | Beiqing Rd. Z-park No.156, Haidian District, | |||
| Beijing, 100095, P. R. China | Beijing, 100095, P. R. China | |||
| EMail: weixinpeng@huawei.com | EMail: weixinpeng@huawei.com | |||
| INTERNET-DRAFT NSH ECN & Congestion Feedback | ||||
| Copyright and IPR Provisions | Copyright and IPR Provisions | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| End of changes. 65 change blocks. | ||||
| 159 lines changed or deleted | 90 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||