| < draft-briscoe-docsis-q-protection-03.txt | draft-briscoe-docsis-q-protection-04.txt > | |||
|---|---|---|---|---|
| Network Working Group B. Briscoe, Ed. | Network Working Group B. Briscoe, Ed. | |||
| Internet-Draft Independent | Internet-Draft Independent | |||
| Intended status: Informational G. White | Intended status: Informational G. White | |||
| Expires: 8 September 2022 CableLabs | Expires: 11 November 2022 CableLabs | |||
| 7 March 2022 | 10 May 2022 | |||
| The DOCSIS® Queue Protection Algorithm to Preserve Low Latency | The DOCSIS® Queue Protection Algorithm to Preserve Low Latency | |||
| draft-briscoe-docsis-q-protection-03 | draft-briscoe-docsis-q-protection-04 | |||
| Abstract | Abstract | |||
| This informational document explains the specification of the queue | This informational document explains the specification of the queue | |||
| protection algorithm used in DOCSIS technology since version 3.1. A | protection algorithm used in DOCSIS technology since version 3.1. A | |||
| shared low latency queue relies on the non-queue-building behaviour | shared low latency queue relies on the non-queue-building behaviour | |||
| of every traffic flow using it. However, some flows might not take | of every traffic flow using it. However, some flows might not take | |||
| such care, either accidentally or maliciously. If a queue is about | such care, either accidentally or maliciously. If a queue is about | |||
| to exceed a threshold level of delay, the queue protection algorithm | to exceed a threshold level of delay, the queue protection algorithm | |||
| can rapidly detect the flows most likely to be responsible. It can | can rapidly detect the flows most likely to be responsible. It can | |||
| then prevent harm to other traffic in the low latency queue by | then prevent harm to other traffic in the low latency queue by | |||
| ejecting selected packets (or all packets) of these flows. The | ejecting selected packets (or all packets) of these flows. The | |||
| document is designed for four types of audience: a) congestion | document is designed for four types of audience: a) congestion | |||
| control designers who need to understand how to keep on the 'good' | control designers who need to understand how to keep on the 'good' | |||
| side of the algorithm; b) implementers of the algorithm who want to | side of the algorithm; b) implementers of the algorithm who want to | |||
| understand it in more depth; and c) designers of algorithms with | understand it in more depth; c) designers of algorithms with similar | |||
| similar goals, perhaps for non-DOCSIS scenarios; d) researchers | goals, perhaps for non-DOCSIS scenarios; and d) researchers | |||
| interested in evaluating the algorithm. | interested in evaluating the algorithm. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on 8 September 2022. | This Internet-Draft will expire on 11 November 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2022 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
| Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
| skipping to change at page 2, line 32 ¶ | skipping to change at page 2, line 32 ¶ | |||
| 1.1. Document Roadmap . . . . . . . . . . . . . . . . . . . . 4 | 1.1. Document Roadmap . . . . . . . . . . . . . . . . . . . . 4 | |||
| 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 | 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 1.3. Copyright Material . . . . . . . . . . . . . . . . . . . 5 | 1.3. Copyright Material . . . . . . . . . . . . . . . . . . . 5 | |||
| 2. Approach - In Brief . . . . . . . . . . . . . . . . . . . . . 5 | 2. Approach - In Brief . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2.1. Mechanism . . . . . . . . . . . . . . . . . . . . . . . . 6 | 2.1. Mechanism . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 2.2. Policy . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 2.2. Policy . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 2.2.1. Policy Conditions . . . . . . . . . . . . . . . . . . 7 | 2.2.1. Policy Conditions . . . . . . . . . . . . . . . . . . 7 | |||
| 2.2.2. Policy Action . . . . . . . . . . . . . . . . . . . . 7 | 2.2.2. Policy Action . . . . . . . . . . . . . . . . . . . . 7 | |||
| 3. Necessary Flow Behaviour . . . . . . . . . . . . . . . . . . 7 | 3. Necessary Flow Behaviour . . . . . . . . . . . . . . . . . . 7 | |||
| 4. Pseudocode Walk-Through . . . . . . . . . . . . . . . . . . . 8 | 4. Pseudocode Walk-Through . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.1. Input Parameters, Constants and Variables . . . . . . . . 8 | 4.1. Input Parameters, Constants and Variables . . . . . . . . 9 | |||
| 4.2. Queue Protection Data Path . . . . . . . . . . . . . . . 12 | 4.2. Queue Protection Data Path . . . . . . . . . . . . . . . 12 | |||
| 4.2.1. The qprotect() function . . . . . . . . . . . . . . . 13 | 4.2.1. The qprotect() function . . . . . . . . . . . . . . . 13 | |||
| 4.2.2. The pick_bucket() function . . . . . . . . . . . . . 14 | 4.2.2. The pick_bucket() function . . . . . . . . . . . . . 14 | |||
| 4.2.3. The fill_bucket() function . . . . . . . . . . . . . 17 | 4.2.3. The fill_bucket() function . . . . . . . . . . . . . 17 | |||
| 4.2.4. The calcProbNative() function . . . . . . . . . . . . 17 | 4.2.4. The calcProbNative() function . . . . . . . . . . . . 17 | |||
| 5. Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 5. Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 5.1. Rationale: Blame for Queuing, not for Rate in Itself . . 18 | 5.1. Rationale: Blame for Queuing, not for Rate in Itself . . 18 | |||
| 5.2. Rationale for Aging the Queuing Score . . . . . . . . . . 20 | 5.2. Rationale for Aging the Queuing Score . . . . . . . . . . 20 | |||
| 5.3. Rationale for Transformed Queuing Score . . . . . . . . . 21 | 5.3. Rationale for Transformed Queuing Score . . . . . . . . . 21 | |||
| 5.4. Rationale for Policy Conditions . . . . . . . . . . . . . 22 | 5.4. Rationale for Policy Conditions . . . . . . . . . . . . . 22 | |||
| skipping to change at page 5, line 18 ¶ | skipping to change at page 5, line 18 ¶ | |||
| DOCSIS specs [DOCSIS], [DOCSIS-CM-OSS], [DOCSIS-CCAP-OSS] not in this | DOCSIS specs [DOCSIS], [DOCSIS-CM-OSS], [DOCSIS-CCAP-OSS] not in this | |||
| informational guide. If there is any inconsistency, the DOCSIS specs | informational guide. If there is any inconsistency, the DOCSIS specs | |||
| take precedence. | take precedence. | |||
| The following terms and abbreviations are used: | The following terms and abbreviations are used: | |||
| CM: Cable Modem | CM: Cable Modem | |||
| CMTS: CM Termination System | CMTS: CM Termination System | |||
| Congestion-rate: The rate at which a flow induces ECN-marked (or | Congestion-rate: The transmission rate of bits or bytes contained | |||
| dropped) bytes, where an ECN-mark on a packet is defined as | within packets of a flow that have the CE codepoint set in the IP- | |||
| marking all the packet's bytes. Congestion-bit-rate and | ECN field [RFC3168] (including IP headers unless specified | |||
| congestion-volume were introduced in [RFC7713] and [RFC6789]. | otherwise). Congestion-bit-rate and congestion-volume were | |||
| introduced in [RFC7713] and [RFC6789]. | ||||
| DOCSIS: Data Over Cable System Interface Specification. "DOCSIS" is | DOCSIS: Data Over Cable System Interface Specification. "DOCSIS" is | |||
| a registered trademark of Cable Television Laboratories, Inc. | a registered trademark of Cable Television Laboratories, Inc. | |||
| ("CableLabs"). | ("CableLabs"). | |||
| Non-queue-building: A flow that tends not to build a queue | Non-queue-building: A flow that tends not to build a queue | |||
| Queue-building: A flow that builds a queue. If it is classified | Queue-building: A flow that builds a queue. If it is classified | |||
| into the Low Latency queue, it is therefore a candidate for the | into the Low Latency queue, it is therefore a candidate for the | |||
| queue protection algorithm to detect and sanction. | queue protection algorithm to detect and sanction. | |||
| skipping to change at page 30, line 33 ¶ | skipping to change at page 30, line 33 ¶ | |||
| CableLabs, "Cable Modem Operations Support System | CableLabs, "Cable Modem Operations Support System | |||
| Interface Spec", Data-Over-Cable Service Interface | Interface Spec", Data-Over-Cable Service Interface | |||
| Specifications DOCSIS® 3.1 Version I14 or later, 21 | Specifications DOCSIS® 3.1 Version I14 or later, 21 | |||
| January 2019, <https://specification-search.cablelabs.com/ | January 2019, <https://specification-search.cablelabs.com/ | |||
| CM-SP-CM-OSSIv3.1>. | CM-SP-CM-OSSIv3.1>. | |||
| [I-D.ietf-tsvwg-ecn-l4s-id] | [I-D.ietf-tsvwg-ecn-l4s-id] | |||
| Schepper, K. D. and B. Briscoe, "Explicit Congestion | Schepper, K. D. and B. Briscoe, "Explicit Congestion | |||
| Notification (ECN) Protocol for Very Low Queuing Delay | Notification (ECN) Protocol for Very Low Queuing Delay | |||
| (L4S)", Work in Progress, Internet-Draft, draft-ietf- | (L4S)", Work in Progress, Internet-Draft, draft-ietf- | |||
| tsvwg-ecn-l4s-id-24, 1 February 2022, | tsvwg-ecn-l4s-id-25, 4 March 2022, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg- | <https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg- | |||
| ecn-l4s-id-24>. | ecn-l4s-id-25>. | |||
| [I-D.ietf-tsvwg-nqb] | [I-D.ietf-tsvwg-nqb] | |||
| White, G. and T. Fossati, "A Non-Queue-Building Per-Hop | White, G. and T. Fossati, "A Non-Queue-Building Per-Hop | |||
| Behavior (NQB PHB) for Differentiated Services", Work in | Behavior (NQB PHB) for Differentiated Services", Work in | |||
| Progress, Internet-Draft, draft-ietf-tsvwg-nqb-10, 4 March | Progress, Internet-Draft, draft-ietf-tsvwg-nqb-10, 4 March | |||
| 2022, <https://datatracker.ietf.org/doc/html/draft-ietf- | 2022, <https://datatracker.ietf.org/doc/html/draft-ietf- | |||
| tsvwg-nqb-10>. | tsvwg-nqb-10>. | |||
| [RFC8311] Black, D., "Relaxing Restrictions on Explicit Congestion | [RFC8311] Black, D., "Relaxing Restrictions on Explicit Congestion | |||
| Notification (ECN) Experimentation", RFC 8311, | Notification (ECN) Experimentation", RFC 8311, | |||
| skipping to change at page 31, line 20 ¶ | skipping to change at page 31, line 20 ¶ | |||
| Schepper, K. D., Tilmans, O., and B. Briscoe, "Prague | Schepper, K. D., Tilmans, O., and B. Briscoe, "Prague | |||
| Congestion Control", Work in Progress, Internet-Draft, | Congestion Control", Work in Progress, Internet-Draft, | |||
| draft-briscoe-iccrg-prague-congestion-control-00, 9 March | draft-briscoe-iccrg-prague-congestion-control-00, 9 March | |||
| 2021, <https://datatracker.ietf.org/doc/html/draft- | 2021, <https://datatracker.ietf.org/doc/html/draft- | |||
| briscoe-iccrg-prague-congestion-control-00>. | briscoe-iccrg-prague-congestion-control-00>. | |||
| [I-D.ietf-tsvwg-aqm-dualq-coupled] | [I-D.ietf-tsvwg-aqm-dualq-coupled] | |||
| Schepper, K. D., Briscoe, B., and G. White, "DualQ Coupled | Schepper, K. D., Briscoe, B., and G. White, "DualQ Coupled | |||
| AQMs for Low Latency, Low Loss and Scalable Throughput | AQMs for Low Latency, Low Loss and Scalable Throughput | |||
| (L4S)", Work in Progress, Internet-Draft, draft-ietf- | (L4S)", Work in Progress, Internet-Draft, draft-ietf- | |||
| tsvwg-aqm-dualq-coupled-22, 4 March 2022, | tsvwg-aqm-dualq-coupled-23, 4 May 2022, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg- | <https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg- | |||
| aqm-dualq-coupled-22>. | aqm-dualq-coupled-23>. | |||
| [I-D.ietf-tsvwg-l4s-arch] | [I-D.ietf-tsvwg-l4s-arch] | |||
| Briscoe, B., Schepper, K. D., Bagnulo, M., and G. White, | Briscoe, B., Schepper, K. D., Bagnulo, M., and G. White, | |||
| "Low Latency, Low Loss, Scalable Throughput (L4S) Internet | "Low Latency, Low Loss, Scalable Throughput (L4S) Internet | |||
| Service: Architecture", Work in Progress, Internet-Draft, | Service: Architecture", Work in Progress, Internet-Draft, | |||
| draft-ietf-tsvwg-l4s-arch-16, 1 February 2022, | draft-ietf-tsvwg-l4s-arch-17, 4 March 2022, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg- | <https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg- | |||
| l4s-arch-16>. | l4s-arch-17>. | |||
| [LLD] White, G., Sundaresan, K., and B. Briscoe, "Low Latency | [LLD] White, G., Sundaresan, K., and B. Briscoe, "Low Latency | |||
| DOCSIS: Technology Overview", CableLabs White Paper , | DOCSIS: Technology Overview", CableLabs White Paper , | |||
| February 2019, <https://cablela.bs/low-latency-docsis- | February 2019, <https://cablela.bs/low-latency-docsis- | |||
| technology-overview-february-2019>. | technology-overview-february-2019>. | |||
| [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition | ||||
| of Explicit Congestion Notification (ECN) to IP", | ||||
| RFC 3168, DOI 10.17487/RFC3168, September 2001, | ||||
| <https://www.rfc-editor.org/info/rfc3168>. | ||||
| [RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", | [RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", | |||
| RFC 4303, DOI 10.17487/RFC4303, December 2005, | RFC 4303, DOI 10.17487/RFC4303, December 2005, | |||
| <https://www.rfc-editor.org/info/rfc4303>. | <https://www.rfc-editor.org/info/rfc4303>. | |||
| [RFC6789] Briscoe, B., Ed., Woundy, R., Ed., and A. Cooper, Ed., | [RFC6789] Briscoe, B., Ed., Woundy, R., Ed., and A. Cooper, Ed., | |||
| "Congestion Exposure (ConEx) Concepts and Use Cases", | "Congestion Exposure (ConEx) Concepts and Use Cases", | |||
| RFC 6789, DOI 10.17487/RFC6789, December 2012, | RFC 6789, DOI 10.17487/RFC6789, December 2012, | |||
| <https://www.rfc-editor.org/info/rfc6789>. | <https://www.rfc-editor.org/info/rfc6789>. | |||
| [RFC7713] Mathis, M. and B. Briscoe, "Congestion Exposure (ConEx) | [RFC7713] Mathis, M. and B. Briscoe, "Congestion Exposure (ConEx) | |||
| End of changes. 13 change blocks. | ||||
| 17 lines changed or deleted | 23 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/ | ||||