| rfc9893.original | rfc9893.txt | |||
|---|---|---|---|---|
| Network Working Group B. Cheng | Internet Engineering Task Force (IETF) B. Cheng | |||
| Internet-Draft MIT Lincoln Laboratory | Request for Comments: 9893 MIT Lincoln Laboratory | |||
| Intended status: Standards Track D. Wiggins | Category: Standards Track D. Wiggins | |||
| Expires: 26 September 2025 | ISSN: 2070-1721 | |||
| S. Ratliff | S. Ratliff | |||
| L. Berger | L. Berger | |||
| E. Kinzie, Ed. | E. Kinzie, Ed. | |||
| LabN Consulting, L.L.C. | LabN Consulting, L.L.C. | |||
| 25 March 2025 | November 2025 | |||
| Dynamic Link Exchange Protocol (DLEP) Credit-Based Flow Control Messages | Dynamic Link Exchange Protocol (DLEP) Credit-Based Flow Control Messages | |||
| and Data Items | and Data Items | |||
| draft-ietf-manet-dlep-credit-flow-control-19 | ||||
| Abstract | Abstract | |||
| This document defines new Dynamic Link Exchange Protocol (DLEP) Data | This document defines new Dynamic Link Exchange Protocol (DLEP) Data | |||
| Items that are used to support credit-based flow control. Credit | Items that are used to support credit-based flow control. Credit | |||
| window control is used to regulate when data may be sent to an | window control is used to regulate when data may be sent to an | |||
| associated virtual or physical queue. The Data Items are extensible | associated virtual or physical queue. These Data Items are | |||
| and reusable. | extensible and reusable. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 26 September 2025. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9893. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2025 IETF Trust and the persons identified as the | Copyright (c) 2025 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 1.1. Key Words . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.1. Key Words | |||
| 2. Credit Window Control . . . . . . . . . . . . . . . . . . . . 4 | 2. Credit Window Control | |||
| 2.1. Data Plane Considerations . . . . . . . . . . . . . . . . 6 | 2.1. Data Plane Considerations | |||
| 2.2. Credit Window Messages . . . . . . . . . . . . . . . . . 6 | 2.2. Credit Window Messages | |||
| 2.2.1. Credit Control Message . . . . . . . . . . . . . . . 7 | 2.2.1. Credit Control Message | |||
| 2.2.2. Credit Control Response Message . . . . . . . . . . . 7 | 2.2.2. Credit Control Response Message | |||
| 2.3. Credit Window Control Data Items . . . . . . . . . . . . 8 | 2.3. Credit Window Control Data Items | |||
| 2.3.1. Credit Window Initialization . . . . . . . . . . . . 8 | 2.3.1. Credit Window Initialization | |||
| 2.3.2. Credit Window Association . . . . . . . . . . . . . . 11 | 2.3.2. Credit Window Association | |||
| 2.3.3. Credit Window Grant . . . . . . . . . . . . . . . . . 12 | 2.3.3. Credit Window Grant | |||
| 2.3.4. Credit Window Status . . . . . . . . . . . . . . . . 13 | 2.3.4. Credit Window Status | |||
| 2.3.5. Credit Window Request . . . . . . . . . . . . . . . . 15 | 2.3.5. Credit Window Request | |||
| 2.4. Management Considerations . . . . . . . . . . . . . . . . 16 | 2.4. Management Considerations | |||
| 3. Compatibility . . . . . . . . . . . . . . . . . . . . . . . . 17 | 3. Compatibility | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 4. Security Considerations | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | 5. IANA Considerations | |||
| 5.1. Message Type Values . . . . . . . . . . . . . . . . . . . 17 | 5.1. Message Type Values | |||
| 5.2. Data Item Values . . . . . . . . . . . . . . . . . . . . 18 | 5.2. Data Item Values | |||
| 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 6. References | |||
| 6.1. Normative References . . . . . . . . . . . . . . . . . . 18 | 6.1. Normative References | |||
| 6.2. Informative References . . . . . . . . . . . . . . . . . 19 | 6.2. Informative References | |||
| Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 20 | Appendix A. Example DLEP Credit Flow Control and Traffic | |||
| Appendix B. Example DLEP Credit Flow Control and Traffic | Classification Data Item Exchange | |||
| Classification Data Item Exchange . . . . . . . . . . . . 21 | Acknowledgments | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| The Dynamic Link Exchange Protocol (DLEP), defined in [RFC8175], | The Dynamic Link Exchange Protocol (DLEP), defined in [RFC8175], | |||
| provides the exchange of link related control information between | provides the exchange of link-related control information between | |||
| DLEP peers. DLEP peers are comprised of a modem and a router. DLEP | DLEP peers. DLEP peers are comprised of a modem and a router. DLEP | |||
| defines a base set of mechanisms as well as support for future | defines a base set of mechanisms as well as support for future | |||
| extensions. DLEP defines Data Items which are sets of information | extensions. DLEP defines Data Items, which are sets of information | |||
| that can be reused in DLEP messaging. The DLEP specification does | that can be reused in DLEP messaging. The DLEP specification does | |||
| not include any flow identification beyond DLEP endpoints nor flow | not include any flow identification beyond DLEP endpoints, nor does | |||
| control capability. There are various flow control techniques | it address flow control capability. Various flow control techniques | |||
| theoretically possible with DLEP. For example, a credit-window | are theoretically possible with DLEP. For example, a credit-window | |||
| scheme for destination-specific flow control which provides aggregate | scheme for destination-specific flow control that provides aggregate | |||
| flow control for both modem and routers has been proposed in | flow control for both modems and routers has been proposed in | |||
| [I-D.ietf-manet-credit-window], and a control plane pause based | [Credit-Window-Extension], and a mechanism referred to as the | |||
| mechanism is defined in [RFC8651]. The use of other flow control | Control-Plane-Based Pause Extension is defined in [RFC8651]. The use | |||
| mechanisms simultaneously with Credit-Based Flow Control is not | of other flow control mechanisms simultaneously with credit-based | |||
| within the scope of this document. | flow control is not within the scope of this document. | |||
| Credit-Based Flow Control, as a result of its proactive nature, may | Credit-based flow control, as a result of its proactive nature, may | |||
| offer some advantages over a pause mechanism. Packet loss resulting | offer some advantages over a pause mechanism. Packet loss resulting | |||
| from insufficient buffer space is less likely, as a transmitter does | from insufficient buffer space is less likely, as a transmitter does | |||
| not send packets until the receiver has indicated that there is | not send packets until the receiver has indicated that there is | |||
| sufficient buffer available. | sufficient buffer space available. | |||
| Figure 1 illustrates a local node consisting of a router and a modem | Figure 1 illustrates a local node consisting of a router and a modem | |||
| with a DLEP. DLEP messages optionally contain a number of Data Items | implementing DLEP. DLEP messages optionally contain a number of Data | |||
| and Sub-data Items. Traffic flow classification Data Items provided | Items and Sub-Data Items. Traffic Classification Data Items provided | |||
| by the modem, are defined in | by the modem are defined in [RFC9892]. In this case, a flow is | |||
| [I-D.ietf-manet-dlep-traffic-classification]. In this case, a flow | identified based on information found in a data plane header, and one | |||
| is identified based on information found in a data plane header and | or more matches are associated with a single flow. Refer to | |||
| one or more matches are associated with a single flow. Refer to | ||||
| Section 2.3 of [RFC2475] for general background on traffic | Section 2.3 of [RFC2475] for general background on traffic | |||
| classification. | classification. | |||
| |--------------------Local Node--------------------| | |--------------------Local Node--------------------| | |||
| | | | | | | |||
| +-----------------------------+ +-------+ | +-----------------------------+ +-------+ | |||
| | Router | |Modem | | | Router | |Modem | | |||
| | | |Device |{~~~~~~~~} Remote | | | |Device |{~~~~~~~~} Remote | |||
| | | | | Link Nodes | | | | | Link Nodes | |||
| | Traffic Classification: | | | Protocol | | Traffic Classification: | | | Protocol | |||
| | Per TID: | | | (e.g., | | Per TID: | | | (e.g., | |||
| | DSCPs to FID / PCPs to FID | | | 802.11) | | DSCPs to FID / PCPs to FID | | | 802.11) | |||
| | | Data Items | | | | | Data Items | | | |||
| | Per Modem: (list of TIDs) |<---------->| | | | Per Modem: (list of TIDs) |<---------->| | | |||
| | FID to Credit Window Queues |============| | | | FID to Credit Window Queues |============| | | |||
| | | | | | | | | | | |||
| +-----------------------------+ +-------+ | +-----------------------------+ +-------+ | |||
| | | | | | | |||
| |----DLEP--- | | |----DLEP--- | | |||
| DSCP: Differentiated Services Code Point | ||||
| FID: Flow Identifier | ||||
| PCP: Priority Code Point | ||||
| TID: Traffic Classification Identifier | ||||
| Figure 1: Router and Modem DLEP Exchange | Figure 1: Router and Modem DLEP Exchange | |||
| This document defines DLEP Data Items which provide a flow control | This document defines DLEP Data Items that provide a flow control | |||
| mechanism for traffic sent from a router to a modem. Flow control is | mechanism for traffic sent from a router to a modem. Flow control is | |||
| provided using one or more logical "Credit Windows", each of which | provided using one or more logical "Credit Windows", each of which | |||
| will typically be supported by an associated virtual or physical | will typically be supported by an associated virtual or physical | |||
| queue. Credit windows may be shared or dedicated on a per flow | queue. Credit windows may be shared or dedicated on a per-flow | |||
| basis. The Data Items are structured to allow for reuse of the | basis. The Data Items are structured to allow for the reuse of the | |||
| defined credit window based flow control with different traffic | defined credit-window-based flow control with different traffic | |||
| classification techniques. A router logically consumes credits for | classification techniques. A router logically consumes credits for | |||
| each credit window matching packet sent. | each credit window matching packet sent. | |||
| Note that this document defines common Messages, Data Items and | Note that this document defines common messages, Data Items, and | |||
| mechanisms that are reusable. They are expected to be required by | mechanisms that are reusable. They are expected to be required by | |||
| DLEP extensions defined in other documents such as found in | DLEP extensions defined in other documents, such as the extension | |||
| [I-D.ietf-manet-dlep-da-credit-extension]. | defined in [RFC9894]. | |||
| This document introduces support for credit window control by | This document introduces support for credit window control by | |||
| defining two new DLEP messages in Section 2.2, and five new DLEP Data | defining two new DLEP messages (Section 2.2) and five new DLEP Data | |||
| Items in Section 2.3. | Items (Section 2.3). | |||
| Various conditions described in this document cause a message to be | Various conditions described in this document cause a message to be | |||
| logged. In all cases, the log message results from the contents of a | logged. In all cases, the log message results from the contents of a | |||
| received Data Item defined here. No messages are logged in response | received Data Item defined here. No messages are logged in response | |||
| to activity in the data plane. | to activity in the data plane. | |||
| 1.1. Key Words | 1.1. Key Words | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 2. Credit Window Control | 2. Credit Window Control | |||
| This section defines additions to DLEP used in credit based flow | This section defines additions to DLEP used in credit-based flow | |||
| control. The use of credit window control impacts the data plane. | control. The use of credit window control impacts the data plane. | |||
| The credit window control mechanisms defined in this document support | The credit window control mechanisms defined in this document support | |||
| credit based flow control of traffic sent from a router to a modem. | credit-based flow control of traffic sent from a router to a modem. | |||
| The mapping of specific flows to a particular credit window is based | The mapping of specific flows to a particular credit window is based | |||
| on the Traffic Classification Data Item defined in | on the Traffic Classification Data Item defined in [RFC9892]. Both | |||
| [I-D.ietf-manet-dlep-traffic-classification]. Both types of DLEP | types of DLEP peers -- router and modem -- negotiate the use of an | |||
| peers, router and modem, negotiate the use of an extension employing | extension employing this mechanism during session initialization as | |||
| this mechanism during session initialization as required, for | required; for example, see [RFC9894]. When using credit windows, | |||
| example, by [I-D.ietf-manet-dlep-da-credit-extension]. When using | data traffic is only allowed to be sent by the router to the modem | |||
| credit windows, data traffic is only allowed to be sent by the router | when there are credits available. | |||
| to the modem when there are credits available. | ||||
| Credits are managed on a per logical "Credit Window" basis. Each | Credits are managed on a 'per logical "Credit Window"' basis. Each | |||
| credit window can be thought of as corresponding to a queue within a | credit window can be thought of as corresponding to a queue within a | |||
| modem. Credit windows may be shared across, or dedicated to, | modem. Credit windows may be shared across, or dedicated to, | |||
| destinations and data plane identifiers, for example, DSCPs, at a | destinations and data plane identifiers -- for example, DSCPs -- at a | |||
| granularity that is appropriate for a modem's implementation and its | granularity that is appropriate for a modem's implementation and its | |||
| attached transmission technology. As defined below in Section 2.3.1, | attached transmission technology. As specified in Section 2.3.1, | |||
| there is a direct one-for-one mapping of credit windows to flows as | there is a direct one-to-one mapping of credit windows to flows as | |||
| identified by Flow Identifiers (FIDs) carried within the Traffic | identified by Flow Identifiers (FIDs) carried within the Traffic | |||
| Classification Data Item. Modems pass to the router information on | Classification Data Item. Modems pass to the router information on | |||
| their credit windows and FIDs prior to a router being able to send | their credit windows and FIDs prior to a router being able to send | |||
| data when an extension requiring the use of credit window control is | data when an extension requiring the use of credit window control is | |||
| used. Note that TID and FID values are significant only to the | used. Note that Traffic Classification Identifier (TID) values and | |||
| issuing modem. There is no relationship implied by the same TID or | FID values are significant only to the issuing modem. There is no | |||
| FID value being issued by more than one modem. In addition to the | relationship implied by the same TID or FID value being issued by | |||
| traffic classification information associated with a FID, modems | more than one modem. In addition to the traffic classification | |||
| provide an initial credit window size, as well as the maximum size of | information associated with a FID, modems provide an initial credit | |||
| the logical queue associated with each credit window. The maximum | window size, as well as the maximum size of the logical queue | |||
| size is included for informative and potential future uses. | associated with each credit window. The maximum size is included for | |||
| informative and potential future uses. | ||||
| Modems provide an initial credit window size at the time of "Credit | Modems provide an initial credit window size at the time of "Credit | |||
| Window Initialization". Such initialization can take place during | Window Initialization". Such initialization can take place during | |||
| session initiation or any point thereafter. It can also take place | session initiation or any point thereafter. It can also take place | |||
| when rate information changes. An increment to a Credit Window size, | when rate information changes. An increment to a credit window size, | |||
| specified in a Credit Grant Data Item, is provided in a Destination | specified in a Credit Grant Data Item, is provided in a Destination | |||
| Up or the new "Credit Control" Message. A router provides its view | Up Message (Section 2.3.2) or Credit Control Message (Section 2.2.1). | |||
| of the Credit Window, which is known as "Status", in Destination Up | A router provides its view of the Credit Window, which is known as | |||
| Response and the new "Credit Control Response" Messages. Routers can | "Status", in Destination Up Response Messages (Section 2.3.3) and | |||
| also request credits using the new "Credit Control" Message. | Credit Control Response Messages (Section 2.2.2). Routers can also | |||
| request credits using the Credit Control Message. | ||||
| When modems provide credits to a router, they will need to take into | When modems provide credits to a router, they will need to take into | |||
| account any overhead of their attached transmission technology and | account any overhead of their attached transmission technology and | |||
| map it into the credit semantics defined in this document. In | map it into the credit semantics defined in this document. In | |||
| particular, the credit window is defined below to include per frame | particular, the credit window is defined below to include per-frame | |||
| (packet) MAC headers, and this may not match the actual overhead of | (per-packet) Media Access Control (MAC) headers, and this may not | |||
| the modem attached transmission technology. In that case a direct | match the actual overhead of the modems' attached transmission | |||
| mapping, or an approximation will need to be made by the modem to | technology. In that case, a direct mapping or an approximation will | |||
| provide appropriate credit values. | need to be made by the modem to provide appropriate credit values. | |||
| Actual flows of traffic are mapped to credit windows based on flow | Actual flows of traffic are mapped to credit windows based on flow | |||
| identification information provided by modems in the Traffic | identification information provided by modems in the Traffic | |||
| Classification Data Item defined in | Classification Data Item defined in [RFC9892]. This Data Item | |||
| [I-D.ietf-manet-dlep-traffic-classification]. This data item | supports traffic classification on a per-destination or more fine- | |||
| supports traffic classification on a per destination or more fine | grained level. Routers use the combination of the DLEP-identified | |||
| grain level. Routers use the combination of the DLEP identified | ||||
| destination and flow information associated with a credit window in | destination and flow information associated with a credit window in | |||
| order to match traffic they send to specific credit windows. In some | order to match traffic they send to specific credit windows. In some | |||
| cases, the Traffic Classification Data Item allows the modem to | cases, the Traffic Classification Data Item allows the modem to | |||
| specify a wildcard to match any packets that do not match other data | specify a wildcard to match any packets that do not match other Data | |||
| items, for example see [I-D.ietf-manet-dlep-ether-credit-extension]. | Items; for example, see [RFC9895]. In the absence of a wildcard, a | |||
| In the absence of a wildcard, a packet may not match any of the data | packet may not match any of the Data Items and, in this case, MUST be | |||
| items and, in this case, MUST be dropped by the router. | dropped by the router. | |||
| When a destination becomes reachable, a modem "associates" | When a destination becomes reachable, a modem "associates" | |||
| (identifies) the appropriate traffic classification information via | (identifies) the appropriate traffic classification information via | |||
| the Traffic Class Identifier (TID) to be used for traffic sent by the | the TID to be used for traffic sent by the router to that | |||
| router to that destination. This is supported by the Credit Window | destination. This is supported by the Credit Window Association Data | |||
| Association Data Item which is carried in Destination Up and Update | Item, which is carried in Destination Up and Destination Update | |||
| messages, see Section 2.3.2. The TID provides the information to | Messages; see Section 2.3.2. The TID provides the information to | |||
| support router traffic classification, based on the FIDs contained in | support router traffic classification, based on the FIDs contained in | |||
| the TID, see [I-D.ietf-manet-dlep-traffic-classification]. As | the TID; see [RFC9892]. As defined, each credit window has a | |||
| defined, each credit window has a corresponding FID, so traffic is | corresponding FID, so traffic is mapped to a credit window by | |||
| mapped to a credit window by locating a matching FID that is | locating a matching FID that is contained in the TID that is | |||
| contained in the TID that is associated with the traffic's | associated with the traffic's destination. This means that the use | |||
| destination. This means that the use of FIDs, TIDs and the | of FIDs and TIDs, and the association of a TID to a DLEP destination, | |||
| association of a TID to a DLEP destination enables a modem to share | enable a modem to share or dedicate resources as needed to match the | |||
| or dedicate resources as needed to match the specifics of its | specifics of its implementation and its attached transmission | |||
| implementation and its attached transmission technology. | technology. | |||
| The defined credit window control has similar objectives as the | Credit window control as defined in this document has objectives | |||
| control found in [I-D.ietf-manet-credit-window]. One notable | similar to the control technique described in | |||
| difference from that credit control is that in this document, credits | [Credit-Window-Extension]. One notable difference from that type of | |||
| are never provided by the router to the modem. | credit control is that in this document, credits are never provided | |||
| by the router to the modem. | ||||
| 2.1. Data Plane Considerations | 2.1. Data Plane Considerations | |||
| When credit windowing is used, a router MUST NOT send data traffic to | When credit windowing is used, a router MUST NOT send data traffic to | |||
| a modem for forwarding if there is no matching classifier. If a | a modem for forwarding if there is no matching classifier. If a | |||
| matching classifier is found, a router MUST NOT send data traffic to | matching classifier is found, a router MUST NOT send data traffic to | |||
| a modem when there are no credits available in the associated Credit | a modem when there are no credits available in the associated Credit | |||
| Window. Section 2 describes how classifiers are associated with | Window. Section 2 describes how classifiers are associated with | |||
| destinations and how credit windows are associated with classifiers. | destinations and how credit windows are associated with classifiers. | |||
| Additionally, a router MUST ensure sufficient credits are available | Additionally, a router MUST ensure that sufficient credits are | |||
| in the associated Credit Window for the current data packet before | available in the associated Credit Window for the current data packet | |||
| sending that data packet to the modem. The count of octets in the | before sending that data packet to the modem. The count of octets in | |||
| packet includes MAC overhead. In the example of Ethernet, framing, | the packet includes MAC overhead. Taking Ethernet as an example, | |||
| header and trailer are all included in this count. This document | framing, header, and trailer are all included in this count. This | |||
| defines credit windows in octets and the credit window is decremented | document defines credit windows in octets, and the credit window is | |||
| by the number of sent octets. | decremented by the number of sent octets. | |||
| A router MUST identify the credit window associated with traffic to | A router MUST identify the credit window associated with traffic to | |||
| be sent to a modem based on the traffic classification information | be sent to a modem based on the traffic classification information | |||
| provided in the Data Items defined in this document. | provided in the Data Items defined in this document. | |||
| 2.2. Credit Window Messages | 2.2. Credit Window Messages | |||
| Two new messages are defined in support for credit window control: | This document defines two new messages that support credit window | |||
| the Credit Control and the Credit Control Response Messages. Sending | control: Credit Control Messages and Credit Control Response | |||
| and receiving both message types is REQUIRED to support the credit | Messages. Sending and receiving both message types is REQUIRED to | |||
| window control defined in this document. | support the credit window control mechanisms defined in this | |||
| document. | ||||
| 2.2.1. Credit Control Message | 2.2.1. Credit Control Message | |||
| Credit Control Messages are sent by modems and routers. Each sender | Credit Control Messages are sent by modems and routers. Each sender | |||
| is only permitted to have one message outstanding at one time. That | is only permitted to have one message outstanding at one time. That | |||
| is, a sender (either modem or router) MUST NOT send any subsequent | is, a sender (either modem or router) MUST NOT send a subsequent | |||
| Credit Control Message until a Credit Control Response Message is | Credit Control Message until a Credit Control Response Message has | |||
| received from its peer. | been received from its peer. | |||
| Credit Control Messages are sent by modems to provide credit window | Credit Control Messages are sent by modems to provide credit window | |||
| increases. Modems send credit increases when there is transmission | increases. Modems send credit increases when their transmission or | |||
| or local queue availability that exceeds the credit window value | local queue availability exceeds the credit window value previously | |||
| previously provided to the router. Modems will need to balance the | provided to the router. Modems will need to balance the load | |||
| load generated by sending and processing credit window increases | generated by sending and processing credit window increases against a | |||
| against a router having data traffic available to send, but no | router having data traffic available to send, but no credits | |||
| credits available. | available. | |||
| Credit Control Messages MAY be sent by routers to request credits and | Credit Control Messages MAY be sent by routers to request credits and | |||
| provide window status. Routers will need to balance the load | provide window status. Routers will need to balance the load | |||
| generated by sending and processing credit window requests against | generated by sending and processing credit window requests against | |||
| having data traffic available to send, but no credits available. | having data traffic available to send, but no credits available. | |||
| The Message Type value in the DLEP Message Header is set to TBA2. | The Message Type value in the DLEP Message Header is set to 17. | |||
| A Credit Control message sent by a modem, MUST contain one or more | A Credit Control Message sent by a modem MUST contain one or more | |||
| Credit Window Grant Data Items as defined in Section 2.3.3. A router | Credit Window Grant Data Items as defined in Section 2.3.3. A router | |||
| receiving this message MUST respond with a Credit Control Response | receiving this message MUST respond with a Credit Control Response | |||
| Message. | Message. | |||
| A Credit Control message sent by a router, MUST contain one or more | A Credit Control Message sent by a router MUST contain one or more | |||
| Credit Window Request Data Items defined in Section 2.3.5 and SHOULD | Credit Window Request Data Items as defined in Section 2.3.5 and | |||
| contain a Credit Window Status Data Item, defined in Section 2.3.4, | SHOULD contain a Credit Window Status Data Item, defined in | |||
| corresponding to each credit window request. A modem receiving this | Section 2.3.4, corresponding to each credit window request. A modem | |||
| message MUST respond with a Credit Control Response Message based on | receiving this message MUST respond with a Credit Control Response | |||
| the received message and Data Item and the processing defined in | Message based on the received message and Data Item and the | |||
| Section 2.2.2, which will typically result in credit window | processing defined in Section 2.2.2, which will typically result in | |||
| increments being provided. | credit window increments being provided. | |||
| Specific processing associated with each Credit Data Item is provided | Specific processing associated with each Credit Data Item is provided | |||
| in Section 2.3. | in Section 2.3. | |||
| 2.2.2. Credit Control Response Message | 2.2.2. Credit Control Response Message | |||
| Credit Control Response Messages are sent by routers to report the | Credit Control Response Messages are sent by routers to report the | |||
| current Credit Window for a destination. A Credit Control Response | current Credit Window for a destination. A Credit Control Response | |||
| message sent by a router, MUST contain one or more Credit Window | Message sent by a router MUST contain one or more Credit Window | |||
| Status Data Items as defined below in Section 2.3.4. Specific | Status Data Items as defined in Section 2.3.4. Specific receive | |||
| receive processing associated with the Credit Window Status Data Item | processing associated with the Credit Window Status Data Item is | |||
| is provided in Section 2.3.4. | provided in Section 2.3.4. | |||
| Credit Control Response Messages sent by modems MUST contain one or | Credit Control Response Messages sent by modems MUST contain one or | |||
| more Credit Window Grant Data Items. A Data Item for every Credit | more Credit Window Grant Data Items. A Data Item for every Credit | |||
| Window Request Data Item contained in the corresponding Credit | Window Request Data Item contained in the corresponding Credit | |||
| Control Message received by the modem MUST be included. Each Credit | Control Message received by the modem MUST be included. Each Credit | |||
| Grant Data Item MAY provide zero or more additional credits based on | Grant Data Item MAY provide zero or more additional credits based on | |||
| the modem's transmission or local queue availability. Specific | the modem's transmission or local queue availability. Specific | |||
| receive processing associated with each Grant Data Item is provided | receive processing associated with each Grant Data Item is provided | |||
| in Section 2.3.3. | in Section 2.3.3. | |||
| The Message Type value in the DLEP Message Header is set to TBA3. | The Message Type value in the DLEP Message Header is set to 18. | |||
| 2.3. Credit Window Control Data Items | 2.3. Credit Window Control Data Items | |||
| Five new Data Items are defined to support credit window control. | Five new Data Items are defined to support credit window control: | |||
| The Credit Window Initialization Data Item is used by a modem to | ||||
| identify a credit window and set its size. The Credit Window | * The Credit Window Initialization Data Item (Section 2.3.1) is used | |||
| Association Data Item is used by a modem to identify which traffic | by a modem to identify a credit window and set its size. | |||
| classification identifiers (flows) should be used when sending | ||||
| traffic to a particular DLEP identified destination. The Credit | * The Credit Window Association Data Item (Section 2.3.2) is used by | |||
| Window Grant Data Item is used by a modem to provide additional | a modem to identify which TIDs (flows) should be used when sending | |||
| credits to a router. The Credit Window Request Data Item is used by | traffic to a particular DLEP-identified destination. | |||
| a router to request additional credits. The Credit Window Status | ||||
| Data Item is used to advertise the sender's view of number of | * The Credit Window Grant Data Item (Section 2.3.3) is used by a | |||
| available credits for state synchronization purposes. | modem to provide additional credits to a router. | |||
| * The Credit Window Status Data Item (Section 2.3.4) is used to | ||||
| advertise the sender's view of the number of available credits for | ||||
| state synchronization purposes. | ||||
| * The Credit Window Request Data Item (Section 2.3.5) is used by a | ||||
| router to request additional credits. | ||||
| Any errors or inconsistencies encountered in parsing Data Items are | Any errors or inconsistencies encountered in parsing Data Items are | |||
| handled in the same fashion as any other data item parsing error | handled in the same fashion as any other Data Item parsing error | |||
| encountered in DLEP, see [RFC8175]. In particular, the node parsing | encountered in DLEP; see [RFC8175]. In particular, the node parsing | |||
| the Data Item MUST terminate the session with a Status Data Item | the Data Item MUST terminate the session with a Status Data Item | |||
| indicating Invalid Data. | indicating "Invalid Data". | |||
| 2.3.1. Credit Window Initialization | 2.3.1. Credit Window Initialization | |||
| The Credit Window Initialization Data Item is used by a modem to | As noted above, the Credit Window Initialization Data Item is used by | |||
| identify a credit window and set its size. In order to avoid errors | a modem to identify a credit window and set its size. In order to | |||
| caused by the use of undefined FIDs or uninitialized credit windows, | avoid errors caused by the use of undefined FIDs or uninitialized | |||
| this Data Item SHOULD be included in any Session Initialization | credit windows, this Data Item SHOULD be included in any Session | |||
| Response Message that indicates support for any such extension. | Initialization Response Message that indicates support for any such | |||
| Updates to previously identified credit windows or new credit windows | extension. Updates to previously identified credit windows or new | |||
| MAY be sent by a modem by including the Data Item in Session Update | credit windows MAY be sent by a modem by including the Data Item in | |||
| Messages. More than one data item MAY be included in a message to | Session Update Messages. More than one Data Item MAY be included in | |||
| provide information on multiple credit windows. | a message to provide information on multiple credit windows. | |||
| The Credit Window Initialization Data Item identifies a credit window | The Credit Window Initialization Data Item identifies a credit window | |||
| using a Flow Identifier, or FID. It also provides the size of the | using a FID. It also provides the size of the identified credit | |||
| identified credit window. To be used, a FID must be defined within a | window. To be used, a FID must be defined within a Traffic | |||
| Traffic Classification Data Item and the associated TID must be | Classification Data Item, and the associated TID must be provided via | |||
| provided via a Credit Window Association Data Item. | a Credit Window Association Data Item. | |||
| The format of the Credit Window Initialization Data Item is: | The format of the Credit Window Initialization Data Item is as | |||
| follows: | ||||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Data Item Type | Length (16) | | | Data Item Type | Length (16) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flow Identifier (FID) | Reserved | | | Flow Identifier (FID) | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Credit Value | | | Credit Value | | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Scale | Credit Window Max Size | | | Scale | Credit Window Max Size | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Data Item Type: | Data Item Type: | |||
| Data Item Type (TBA4) | 30 | |||
| Length: | Length: | |||
| 16 | 16 | |||
| As specified in [RFC8175], Length is the number of octets in the | As specified in [RFC8175], Length is the number of octets in the | |||
| Data Item. It MUST be equal to sixteen (16). If it is some other | Data Item. It MUST be equal to sixteen (16). If it is some other | |||
| value, the Data Item is corrupt so the message in which it appears | value, the Data Item is corrupt, so the message in which it | |||
| cannot be reliably parsed and is ignored. | appears cannot be reliably parsed and is ignored. | |||
| Flow Identifier (FID): | Flow Identifier (FID): | |||
| A two-octet flow identifier as defined by the Traffic | A 2-octet flow identifier as defined by the Traffic Classification | |||
| Classification Data Item | Data Item [RFC9892]. The FID also uniquely identifies a credit | |||
| [I-D.ietf-manet-dlep-traffic-classification]. The FID also | window for a specific DLEP session. | |||
| uniquely identifies a credit window for a specific DLEP session. | ||||
| Reserved: | Reserved: | |||
| For the Credit Window Initialization Data Item this reserved field | For the Credit Window Initialization Data Item, this reserved | |||
| is currently unused. It MUST set to all zeros for this version of | field is currently unused. It MUST be set to all zeros for this | |||
| the Data Item and it is currently ignored on reception. This | version of the Data Item and is currently ignored on reception. | |||
| allows for future extensions of the Data Item if needed. | This allows for future extensions of the Data Item if needed. | |||
| Credit Value: | Credit Value: | |||
| A 64-bit unsigned integer representing the credits, in octets, to | A 64-bit unsigned integer representing the credits, in octets, to | |||
| be added to the Credit Window. This value includes MAC headers as | be added to the Credit Window. This value includes MAC headers as | |||
| seen on the link between the modem and router. | seen on the link between the modem and router. | |||
| Scale: | Scale: | |||
| An 8-bit unsigned integer indicating the scale used in the Credit | An 8-bit unsigned integer indicating the scale used in the Credit | |||
| Window Max Size field. The valid values are: | Window Max Size field. The valid values are as follows: | |||
| Value Scale | +=======+=========================+ | |||
| ------------ | | Value | Scale | | |||
| 0 B - Bytes (Octets) | +=======+=========================+ | |||
| 1 KB - Kilobytes (B/1024) | | 0 | B: Bytes (Octets) | | |||
| 2 MB - Megabytes (KB/1024) | +-------+-------------------------+ | |||
| 3 GB - Gigabytes (MB/1024) | | 1 | KB: Kilobytes (B/1024) | | |||
| +-------+-------------------------+ | ||||
| | 2 | MB: Megabytes (KB/1024) | | ||||
| +-------+-------------------------+ | ||||
| | 3 | GB: Gigabytes (MB/1024) | | ||||
| +-------+-------------------------+ | ||||
| Table 1: Valid Scale Field Values | ||||
| Credit Window Max Size: | Credit Window Max Size: | |||
| A 24-bit unsigned integer representing the maximum size, in the | A 24-bit unsigned integer representing the maximum size, in the | |||
| octet scale indicated by the Scale field, of the associated credit | octet scale indicated by the Scale field, of the associated credit | |||
| window. | window. | |||
| A router that receives a Credit Window Initialization Data Item MUST | A router that receives a Credit Window Initialization Data Item MUST | |||
| ensure that the FID field value has been provided by the modem in a | ensure that the FID field value has been provided by the modem in a | |||
| Traffic Classification Data Item carried in either the current or a | Traffic Classification Data Item carried in either the current | |||
| previous message. If the FID cannot be found the router SHOULD log | message or a previous message. If the FID cannot be found, the | |||
| this information. The method of logging is left to the router | router SHOULD log this information. The method of logging is left to | |||
| implementation. Note that no traffic will be associated with the | the router implementation. Note that no traffic will be associated | |||
| credit window in this case. After FID validation, the router MUST | with the credit window in this case. After FID validation, the | |||
| locate the credit window that is associated with the FID indicated in | router MUST locate the credit window that is associated with the FID | |||
| each received Data Item. If no associated credit window is found, | indicated in each received Data Item. If no associated credit window | |||
| the router MUST initialize a new credit window using the values | is found, the router MUST initialize a new credit window using the | |||
| carried in the Data Item. When an associated credit window is found, | values carried in the Data Item. When an associated credit window is | |||
| the router MUST update the credit window and associated data plane | found, the router MUST update the credit window and associated data | |||
| state using the values carried in the Data Item. If the resulting | plane state using the values carried in the Data Item. If the | |||
| Credit Value results in the credit window exceeding the represented | resultant Credit Value in turn results in the credit window exceeding | |||
| Credit Window Max Size, the Credit Window Max Size field value is | the represented Credit Window Max Size, the Credit Window Max Size | |||
| used as the new credit window size. | field value is used as the new credit window size. | |||
| It is worth noting, that such updates can result in a credit window | It is worth noting that such updates can result in a credit window | |||
| size being reduced, for example, due to a transmission rate change on | size being reduced -- for example, due to a transmission rate change | |||
| the modem. After sending the Session Update Message with one or more | on the modem. After sending the Session Update Message with one or | |||
| Credit Window Initialization Data Items that decrease the Credit | more Credit Window Initialization Data Items that decrease the Credit | |||
| Window Max Size, the modem SHOULD continue processing received | Window Max Size, the modem SHOULD continue processing received | |||
| packets that match the indicated FIDs, fit within the window for the | packets that match the indicated FIDs, fit within the window for the | |||
| unmodified Credit Window Max Size and arrive before the modem | unmodified Credit Window Max Size, and arrive before the modem | |||
| receives the corresponding Session Update Response Message. The | receives the corresponding Session Update Response Message. The | |||
| modem SHOULD NOT issue additional credits for any affected FID until | modem SHOULD NOT issue additional credits for any affected FID until | |||
| that FID's associated Window has drained to be less than the new | that FID's associated window has drained to be less than the new | |||
| Credit Window Max Size, regardless of when the corresponding Session | Credit Window Max Size, regardless of when the corresponding Session | |||
| Update Response Message is received. | Update Response Message is received. | |||
| 2.3.2. Credit Window Association | 2.3.2. Credit Window Association | |||
| The Credit Window Association Data Item is used by a modem to | The Credit Window Association Data Item is used by a modem to | |||
| associate traffic classification information with a destination. The | associate traffic classification information with a destination. The | |||
| traffic classification information is identified using a TID value | traffic classification information is identified using a TID value | |||
| that has previously been sent by the modem or is listed in a Traffic | that has been previously sent by the modem or is listed in a Traffic | |||
| Classification Data Item carried in the same message as the Credit | Classification Data Item carried in the same message as the Credit | |||
| Window Association Data Item. TIDs in different Credit windows must | Window Association Data Item. TIDs in different credit windows must | |||
| not overlap. | not overlap. | |||
| A single Credit Window Association Data Item MUST be included in | A single Credit Window Association Data Item MUST be included in | |||
| every Destination Up and Destination Update Message sent by a modem | every Destination Up and Destination Update Message sent by a modem | |||
| when the credit window control defined in this document is used. | when a credit window control mechanism defined in this document is | |||
| Note that a TID will not be used unless it is listed in a Credit | used. Note that a TID will not be used unless it is listed in a | |||
| Window Association Data Item. | Credit Window Association Data Item. | |||
| The format of the Credit Window Association Data Item is: | The format of the Credit Window Association Data Item is as follows: | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Data Item Type | Length (2) | | | Data Item Type | Length (2) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| |Traffic Class. Identifier (TID)| | |Traffic Class. Identifier (TID)| | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Data Item Type: | Data Item Type: | |||
| Data Item Type (TBA5) | 31 | |||
| Length: | Length: | |||
| 2 | 2 | |||
| As specified in [RFC8175], Length is the number of octets in the | As specified in [RFC8175], Length is the number of octets in the | |||
| Data Item. It MUST be equal to two (2). If it is some other | Data Item. It MUST be equal to two (2). If it is some other | |||
| value, the Data Item is corrupt so the message in which it appears | value, the Data Item is corrupt, so the message in which it | |||
| cannot be reliably parsed and is ignored. | appears cannot be reliably parsed and is ignored. | |||
| Traffic Classification Identifier (TID): | Traffic Classification Identifier (TID): | |||
| A 16-bit unsigned integer identifying a traffic classification set | A 16-bit unsigned integer identifying a traffic classification set | |||
| that has been identified in a Traffic Classification Data Item, | that has been identified in a Traffic Classification Data Item; | |||
| see [I-D.ietf-manet-dlep-traffic-classification]. | see [RFC9892]. | |||
| A router that receives a Credit Window Association Data Item MUST | A router that receives a Credit Window Association Data Item MUST | |||
| locate the traffic classification information indicated by the | locate the traffic classification information indicated by the | |||
| received TID. If no corresponding information is found, the Credit | received TID. If no corresponding information is found, the Credit | |||
| Window Association Data Item MUST be treated as an error as described | Window Association Data Item MUST be treated as an error as described | |||
| above. If the traffic classification information is located, the | above. If the traffic classification information is located, the | |||
| router MUST ensure that any data plane state that is associated with | router MUST ensure that any data plane state that is associated with | |||
| the TID and its corresponding FIDs are updated as needed (per | the TID and its corresponding FIDs is updated as needed (per | |||
| Section 2.1). If a router determines that a newly received Data Item | Section 2.1). If a router determines that a newly received Data Item | |||
| results in credit windows with overlapping TIDs, the Data Item MUST | results in credit windows with overlapping TIDs, the Data Item MUST | |||
| be treated as an error as described above. | be treated as an error as described above. | |||
| 2.3.3. Credit Window Grant | 2.3.3. Credit Window Grant | |||
| The Credit Window Grant Data Item is used by a modem to provide | The Credit Window Grant Data Item is used by a modem to provide | |||
| credits to a router. One or more Credit Window Grant Data Items MAY | credits to a router. One or more Credit Window Grant Data Items MAY | |||
| be carried in the DLEP Destination Up, Destination Announce Response, | be carried in the DLEP Destination Up, Destination Announce Response, | |||
| Destination Update, Credit Control Messages, and Credit Control | Destination Update, Credit Control, and Credit Control Response | |||
| Response Messages. Multiple Credit Window Grant Data Items may be | Messages. Multiple Credit Window Grant Data Items may be present in | |||
| present in a single message. Each item grants credits to a different | a single message. Each item grants credits to a different credit | |||
| credit window and, therefor, references a different FID. In all | window and therefore references a different FID. In all message | |||
| message types, this Data Item provides an additional number of octets | types, this Data Item provides an additional number of octets to be | |||
| to be added to the indicated credit window. Credit windows are | added to the indicated credit window. Credit windows are identified | |||
| identified using FID values that have been previously been sent by | using FID values that have been previously sent by the modem or are | |||
| the modem or are listed in a Credit Window Initialization Data Item | listed in a Credit Window Initialization Data Item carried in the | |||
| carried in the same message as the Data Item. | same message as the Data Item. | |||
| The format of the Credit Window Grant Data Item is: | The format of the Credit Window Grant Data Item is as follows: | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Data Item Type | Length (12) | | | Data Item Type | Length (12) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flow Identifier (FID) | Reserved | | | Flow Identifier (FID) | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Additional Credits | | | Additional Credits | | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Data Item Type: | Data Item Type: | |||
| Data Item Type (TBA6) | 32 | |||
| Length: | Length: | |||
| 12 | 12 | |||
| As specified in [RFC8175], Length is the number of octets in the | As specified in [RFC8175], Length is the number of octets in the | |||
| Data Item. It MUST be equal to twelve (12). If it is some other | Data Item. It MUST be equal to twelve (12). If it is some other | |||
| value, the Data Item is corrupt so the message in which it appears | value, the Data Item is corrupt, so the message in which it | |||
| cannot be reliably parsed and is ignored. | appears cannot be reliably parsed and is ignored. | |||
| Flow Identifier (FID): | Flow Identifier (FID): | |||
| A two-octet flow identifier as defined by the Traffic | A 2-octet flow identifier as defined by the Traffic Classification | |||
| Classification Data Item. The FID also uniquely indicates a | Data Item. The FID also uniquely indicates a credit window. | |||
| credit window. | ||||
| Reserved: | Reserved: | |||
| For the Credit Window Grant Data Item this reserved field is | For the Credit Window Grant Data Item, this reserved field is | |||
| currently unused. It MUST set to all zeros for this version of | currently unused. It MUST be set to all zeros for this version of | |||
| the Data Item and it is currently ignored on reception. This | the Data Item and is currently ignored on reception. This allows | |||
| allows for future extensions of the Data Item if needed. | for future extensions of the Data Item if needed. | |||
| Additional Credit: | Additional Credits: | |||
| A 64-bit unsigned integer representing the credits, in octets, to | A 64-bit unsigned integer representing the credits, in octets, to | |||
| be added to the Credit Window. This value includes MAC headers as | be added to the Credit Window. This value includes MAC headers as | |||
| seen on the link between the modem and router. A value of zero | seen on the link between the modem and router. A value of zero | |||
| indicates that no additional credits are being provided. | indicates that no additional credits are being provided. | |||
| When receiving this Data Item, a router MUST identify the credit | When receiving this Data Item, a router MUST identify the credit | |||
| window indicated by the FID. If the FID is not known to the router, | window indicated by the FID. If the FID is not known to the router, | |||
| it SHOULD log this information and discard the Data Item. The method | it SHOULD log this information and discard the Data Item. The method | |||
| of logging is left to the router implementation. It is important to | of logging is left to the router implementation. It is important to | |||
| note that while this Data Item can be received in a destination | note that while this Data Item can be received in a destination- | |||
| specific message, credit windows are managed independently from the | specific message, credit windows are managed independently of the | |||
| destination identified in the message carrying this Data Item, and | destination identified in the message carrying this Data Item, and | |||
| the indicated FID MAY even be disjoint from the identified | the indicated FID MAY even be disjoint from the identified | |||
| destination. | destination. | |||
| Once the credit window is identified, the credit window size MUST be | Once the credit window is identified, the credit window size MUST be | |||
| increased by the value contained in the Additional Credits field. If | increased by the value contained in the Additional Credits field. If | |||
| the increase results in a window overflow, the Credit Window must be | the increase results in a window overflow, the Credit Window must be | |||
| set to its maximum as defined by the Credit Window Max Size carried | set to its maximum as defined by the Credit Window Max Size carried | |||
| in the Credit Window Initialization Data Item. | in the Credit Window Initialization Data Item. | |||
| No response is sent by the router to a modem after processing a | No response is sent by the router to a modem after processing a | |||
| Credit Window Grant Data Item received in a Credit Control Response | Credit Window Grant Data Item received in a Credit Control Response | |||
| Message. When a Credit Window Grant Data Item is received in other | Message. When a Credit Window Grant Data Item is received in other | |||
| message types, the receiving router MUST send a Credit Window Status | message types, the receiving router MUST send a Credit Window Status | |||
| Data Item or items reflecting the resulting Credit Window value of | Data Item or items reflecting the resultant Credit Window value of | |||
| the updated credit window. When the Credit Grant Data Item is | the updated credit window. When the Credit Grant Data Item is | |||
| received in a Destination Up Message, the Credit Window Status Data | received in a Destination Up Message, the Credit Window Status Data | |||
| Item(s) MUST be sent in the corresponding Destination Up Response | Item(s) MUST be sent in the corresponding Destination Up Response | |||
| Message. Otherwise, a Credit Control Message MUST be sent. | Message. Otherwise, a Credit Control Message MUST be sent. | |||
| 2.3.4. Credit Window Status | 2.3.4. Credit Window Status | |||
| The Credit Window Status Data Item is used by a router to report the | The Credit Window Status Data Item is used by a router to report the | |||
| current credit window size to its peer modem. One or more Credit | current credit window size to its peer modem. One or more Credit | |||
| Window Status Data Items MAY be carried in a Destination Up Response | Window Status Data Items MAY be carried in a Destination Up Response | |||
| Message or a Credit Control Response Message. As discussed in | Message or a Credit Control Response Message. As discussed in | |||
| Section 2.3.3, the Destination Up Response Message is used when the | Section 2.3.3, the Destination Up Response Message is used when the | |||
| Data Item is sent in response to a Destination Up Message, and the | Data Item is sent in response to a Destination Up Message, and the | |||
| Credit Control Response Message is sent in response to a Credit | Credit Control Response Message is sent in response to a Credit | |||
| Control Message. Multiple Credit Window Status Data Items in a | Control Message. Multiple Credit Window Status Data Items in a | |||
| single message are used to indicate different sizes of different | single message are used to indicate different sizes of different | |||
| credit windows. Similar to the Credit Window Grant, credit windows | credit windows. Similar to the Credit Window Grant Data Item, credit | |||
| are identified using FID values that have been previously been sent | windows are identified using FID values that have been previously | |||
| by the modem. | sent by the modem. | |||
| The format of the Credit Window Status Data Item is: | The format of the Credit Window Status Data Item is as follows: | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Data Item Type | Length (12) | | | Data Item Type | Length (12) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flow Identifier (FID) | Reserved | | | Flow Identifier (FID) | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Current Credit Window Size | | | Current Credit Window Size | | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Data Item Type: | Data Item Type: | |||
| Data Item Type (TBA7) | 33 | |||
| Length: | Length: | |||
| 12 | 12 | |||
| As specified in [RFC8175], Length is the number of octets in the | As specified in [RFC8175], Length is the number of octets in the | |||
| Data Item. It MUST be equal to twelve (12). If it is some other | Data Item. It MUST be equal to twelve (12). If it is some other | |||
| value, the Data Item is corrupt so the message in which it appears | value, the Data Item is corrupt, so the message in which it | |||
| cannot be reliably parsed and is ignored. | appears cannot be reliably parsed and is ignored. | |||
| Flow Identifier (FID): | Flow Identifier (FID): | |||
| A two-octet flow identifier as defined by the Traffic | A 2-octet flow identifier as defined by the Traffic Classification | |||
| Classification Data Item. The FID also uniquely identifies a | Data Item. The FID also uniquely identifies a credit window. | |||
| credit window. | ||||
| Reserved: | Reserved: | |||
| For the Credit Window Status Data Item this reserved field is | For the Credit Window Status Data Item, this reserved field is | |||
| currently unused. It MUST set to all zeros for this version of | currently unused. It MUST be set to all zeros for this version of | |||
| the Data Item and it is currently ignored on reception. This | the Data Item and is currently ignored on reception. This allows | |||
| allows for future extensions of the Data Item if needed. | for future extensions of the Data Item if needed. | |||
| Current Credit Window Size: | Current Credit Window Size: | |||
| A 64-bit unsigned integer, indicating the current number of | A 64-bit unsigned integer indicating the current number of | |||
| credits, in octets, available for the router to send to the modem. | credits, in octets, available for the router to send to the modem. | |||
| This is referred to as the Modem Receive Window in | This is referred to as the Modem Receive Window in | |||
| [I-D.ietf-manet-credit-window]. | [Credit-Window-Extension]. | |||
| When receiving this Data Item, a modem MUST identify the credit | When receiving this Data Item, a modem MUST identify the credit | |||
| window indicated by the FID. If the FID is not known to the modem, | window indicated by the FID. If the FID is not known to the modem, | |||
| it SHOULD log this information and discard the Data Item. The method | it SHOULD log this information and discard the Data Item. The method | |||
| of logging is left to the modem implementation. As with the Credit | of logging is left to the modem implementation. As with the Credit | |||
| Window Grant Data Item, the FID MAY be unrelated to the Destination | Window Grant Data Item, the FID MAY be unrelated to the destination | |||
| indicated in the message carrying the Data Item. | indicated in the message carrying the Data Item. | |||
| Once the credit window is identified, the modem SHOULD check the | Once the credit window is identified, the modem SHOULD check the | |||
| received Current Credit Window Size field value against the | received Current Credit Window Size field value against the | |||
| outstanding credit window's available credits at the time the most | outstanding credit window's available credits at the time the most | |||
| recent Credit Window Initialization or Grant Data Item associated | recent Credit Window Initialization or Grant Data Item associated | |||
| with the indicated FID was sent. If the difference in values is | with the indicated FID was sent. If the difference in values is | |||
| greater than can be accounted for based on observed data frames, then | greater than what can be accounted for based on observed data frames, | |||
| the modem SHOULD send a Credit Window Initialization Data Item to | then the modem SHOULD send a Credit Window Initialization Data Item | |||
| reset the associated credit window size to the modem's current view | to reset the associated credit window size to the modem's current | |||
| of the available credits. As defined in Section 2.3.1, Credit Window | view of the available credits. As specified in Section 2.3.1, Credit | |||
| Initialization Data Items are sent in Session Update Messages. When | Window Initialization Data Items are sent in Session Update Messages. | |||
| multiple Data Items need to be sent, they SHOULD be combined into a | When multiple Data Items need to be sent, they SHOULD be combined | |||
| single message when possible. Alternatively, and also in cases where | into a single message when possible. Alternatively, and also in | |||
| there are small differences, the modem MAY adjust the values sent in | cases where there are small differences, the modem MAY adjust the | |||
| Credit Window Grant Data Items to account for the reported Credit | values sent in Credit Window Grant Data Items to account for the | |||
| Window. | reported Credit Window. | |||
| 2.3.5. Credit Window Request | 2.3.5. Credit Window Request | |||
| The Credit Window Request Data Item is used by a router to request | The Credit Window Request Data Item is used by a router to request | |||
| additional credits for particular credit windows. Credit Window | additional credits for particular credit windows. Credit Window | |||
| Request Data Items are carried in Credit Control Messages, and one or | Request Data Items are carried in Credit Control Messages, and one or | |||
| more Credit Window Request Data Items MAY be present in a message. | more Credit Window Request Data Items MAY be present in a message. | |||
| Credit windows are identified using a FID as defined in | Credit windows are identified using a FID as defined in | |||
| Section 2.3.1. Multiple FIDs MAY be present to allow for the case | Section 2.3.1. Multiple FIDs MAY be present to allow for the case | |||
| where the router identifies that credits are needed in multiple | where the router determines that credits are needed in multiple | |||
| credit windows. A special FID value, as defined below, is used to | credit windows. A special FID value, as defined below, is used to | |||
| indicate that a credit request is being made across all queues. | indicate that a credit request is being made across all queues. | |||
| The format of the Credit Window Request Data Item is: | The format of the Credit Window Request Data Item is as follows: | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Data Item Type | Length | | | Data Item Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flow Identifier (FID) [1] | Flow Identifier (FID) [2] | | | Flow Identifier (FID) [1] | Flow Identifier (FID) [2] | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | ... | Flow Identifier (FID) [n] | | | ... | Flow Identifier (FID) [n] | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Data Item Type: | Data Item Type: | |||
| Data Item Type (TBA8) | 34 | |||
| Length: | Length: | |||
| Variable | Variable | |||
| As specified in [RFC8175], Length is the number of octets in the | As specified in [RFC8175], Length is the number of octets in the | |||
| Data Item, excluding the Type and Length fields. It is equal to | Data Item, excluding the Type and Length fields. It is equal to | |||
| the number of FID fields carried in the Data Item times 2 and MUST | the number of FID fields carried in the Data Item times 2 and MUST | |||
| be at least 2. If it is less than 2, the Data Item is corrupt so | be at least 2. If it is less than 2, the Data Item is corrupt, so | |||
| the message in which it appears cannot be reliably parsed and is | the message in which it appears cannot be reliably parsed and is | |||
| ignored. | ignored. | |||
| Flow Identifier (FID): | Flow Identifier (FID): | |||
| A two-octet flow identifier as defined by the Traffic | A 2-octet flow identifier as defined by the Traffic Classification | |||
| Classification Data Item. The FID also uniquely identifies a | Data Item. The FID also uniquely identifies a credit window. The | |||
| credit window. The special value of 0xFFFF indicates that the | special value 0xFFFF indicates that the request applies to all | |||
| request applies to all FIDs. When this special value is included, | FIDs. When this special value is included, all other FID values | |||
| all other FID values included in the Data Item are redundant as | included in the Data Item are redundant, as the special value | |||
| the special value indicates all FIDs. | indicates all FIDs. | |||
| A modem receiving this Data Item MUST provide a Credit Increment for | A modem receiving this Data Item MUST provide a credit window | |||
| the indicated credit windows via Credit Window Grant Data Items | increment for the indicated credit windows via Credit Window Grant | |||
| carried in a new Credit Control Message. Multiple values and queue | Data Items carried in a new Credit Control Message. Multiple values | |||
| indexes SHOULD be combined into a single Credit Control Message when | and queue indexes SHOULD be combined into a single Credit Control | |||
| possible. Unknown FID values SHOULD be logged and then ignored by | Message when possible. Unknown FID values SHOULD be logged and then | |||
| the modem. The method of logging is left to the modem | ignored by the modem. The method of logging is left to the modem | |||
| implementation. | implementation. | |||
| 2.4. Management Considerations | 2.4. Management Considerations | |||
| This section provides several network management guidelines to | This section provides several network management guidelines for | |||
| implementations supporting the credit window mechanisms defined in | implementations supporting the credit window mechanisms defined in | |||
| this document. | this document. | |||
| Modems MAY support the configuration of the number of credit windows | Modems MAY support the configuration of the number of credit windows | |||
| (queues) to advertise to a router. | (queues) to advertise to a router. | |||
| Routers may have limits on the number of queues that they can | Routers may have limits on the number of queues that they can | |||
| support. They may even have limits on supported credit window | support. They may even have limits on supported credit window | |||
| combinations. For example, per destination queues may not be | combinations. For example, per-destination queues may not be | |||
| supported at all. When modem-provided credit window information | supported at all. When credit window information provided by a modem | |||
| exceeds the capabilities of a router, the router SHOULD use a subset | exceeds the capabilities of a router, the router SHOULD use a subset | |||
| of the provided credit windows. Alternatively, a router MAY reset | of the provided credit windows. Alternatively, a router MAY reset | |||
| the session and indicate that the extension is not supported. In | the session and indicate that the extension is not supported. In | |||
| either case, the mismatch of capabilities SHOULD be reported to the | either case, any mismatch in capabilities SHOULD be reported to the | |||
| user via normal network management mechanisms, such as the user | user via normal network management mechanisms, such as the user | |||
| interface or error logging. | interface or error logging. | |||
| In all cases, if credit windows are in use, traffic for which credits | In all cases, if credit windows are in use, traffic for which credits | |||
| are not available MUST NOT be sent to the modem by the router. | are not available MUST NOT be sent to the modem by the router. | |||
| 3. Compatibility | 3. Compatibility | |||
| The messages and Data Items defined in this document will only be | The messages and Data Items defined in this document will only be | |||
| used when extensions require their use. | used when extensions require their use. | |||
| The DLEP specification [RFC8175] defines handling of unexpected | The DLEP specification [RFC8175] defines the handling of unexpected | |||
| appearances of any Data Items, including those defined in this | appearances of any Data Items, including those defined in this | |||
| document. | document. | |||
| 4. Security Considerations | 4. Security Considerations | |||
| This document introduces credit window control and flow mechanisms to | This document introduces credit window control and flow mechanisms | |||
| DLEP. These mechanisms expose vulnerabilities similar to existing | for DLEP. These mechanisms expose vulnerabilities similar to | |||
| DLEP messages. An example of a threat to which flow control might be | existing DLEP messages. An example of a threat to which flow control | |||
| susceptible is a malicious actor masquerading as a DLEP peer could | might be susceptible is where a malicious actor masquerading as a | |||
| inject a Credit Window Initialization Data Item, which resizes a | DLEP peer could inject a Credit Window Initialization Data Item that | |||
| credit window to a value that results in a denial of service. Other | resizes a credit window to a value that results in a denial of | |||
| possible threats are given in the Security Considerations of | service. Other possible threats are discussed in the Security | |||
| [RFC8175] and are also applicable to, but not specific to, flow | Considerations section of [RFC8175] and are also applicable, but not | |||
| control. The transport layer security mechanisms documented in | specific, to flow control. The transport-layer security mechanisms | |||
| [RFC8175], with some updated references to external documents listed | documented in [RFC8175], with some updated references to external | |||
| below, can be applied to this document. Implementations following | documents listed below, can be applied to this document. | |||
| the "networked deployment" model described in the "Implementation | Implementations following the "networked deployment" model described | |||
| Scenarios" of [RFC8175] SHOULD refer to [BCP195] for additional | in Section 4 ("Implementation Scenarios") of [RFC8175] SHOULD refer | |||
| details. The Layer 2 security mechanisms documented in [RFC8175] can | to [BCP195] for additional details. The Layer 2 security mechanisms | |||
| also, with some updates, be applied to the mechanism defined in this | documented in [RFC8175] can also, with some updates, be applied to | |||
| document. Examples of technologies that can be deployed to secure | the mechanisms defined in this document. Examples of technologies | |||
| the Layer 2 link include [IEEE-802.1AE] and [IEEE-8802-1X]. | that can be deployed to secure the Layer 2 link include | |||
| [IEEE-802.1AE] and [IEEE-8802-1X]. | ||||
| 5. IANA Considerations | 5. IANA Considerations | |||
| This document requests the assignment of several values by IANA. All | ||||
| assignments are to registries defined by [RFC8175]. | ||||
| 5.1. Message Type Values | 5.1. Message Type Values | |||
| This document requests 2 new assignments to the DLEP Message Registry | IANA has assigned two new values from the "Specification Required" | |||
| named "Message Values" in the range with the "Specification Required" | range [RFC8126] in the DLEP "Message Type Values" registry: | |||
| policy. The requested values are as follows: | ||||
| +===========+=========================+ | +===========+=========================+ | |||
| | Type Code | Description | | | Type Code | Description | | |||
| +===========+=========================+ | +===========+=========================+ | |||
| | TBA2 | Credit Control | | | 17 | Credit Control | | |||
| +-----------+-------------------------+ | +-----------+-------------------------+ | |||
| | TBA3 | Credit Control Response | | | 18 | Credit Control Response | | |||
| +-----------+-------------------------+ | +-----------+-------------------------+ | |||
| Table 1: Requested Message Type Values | Table 2: Message Type Values | |||
| 5.2. Data Item Values | 5.2. Data Item Values | |||
| This document requests the following new assignments to the DLEP Data | IANA has assigned the following values from the "Specification | |||
| Item Registry named "Data Item Type Values" in the range with the | Required" range [RFC8126] in the DLEP "Data Item Type Values" | |||
| "Specification Required" policy. The requested values are as | registry: | |||
| follows: | ||||
| +===========+==============================+ | +===========+==============================+ | |||
| | Type Code | Description | | | Type Code | Description | | |||
| +===========+==============================+ | +===========+==============================+ | |||
| | TBA4 | Credit Window Initialization | | | 30 | Credit Window Initialization | | |||
| +-----------+------------------------------+ | +-----------+------------------------------+ | |||
| | TBA5 | Credit Window Association | | | 31 | Credit Window Association | | |||
| +-----------+------------------------------+ | +-----------+------------------------------+ | |||
| | TBA6 | Credit Window Grant | | | 32 | Credit Window Grant | | |||
| +-----------+------------------------------+ | +-----------+------------------------------+ | |||
| | TBA7 | Credit Window Status | | | 33 | Credit Window Status | | |||
| +-----------+------------------------------+ | +-----------+------------------------------+ | |||
| | TBA8 | Credit Window Request | | | 34 | Credit Window Request | | |||
| +-----------+------------------------------+ | +-----------+------------------------------+ | |||
| Table 2: Requested Data Item Values | Table 3: Data Item Values | |||
| 6. References | 6. References | |||
| 6.1. Normative References | 6.1. Normative References | |||
| [I-D.ietf-manet-dlep-traffic-classification] | ||||
| Cheng, B., Wiggins, D., Berger, L., and D. Fedyk, "Dynamic | ||||
| Link Exchange Protocol (DLEP) Traffic Classification Data | ||||
| Item", Work in Progress, Internet-Draft, draft-ietf-manet- | ||||
| dlep-traffic-classification, 19 November 2024, | ||||
| <https://datatracker.ietf.org/doc/draft-ietf-manet-dlep- | ||||
| traffic-classification>. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8175] Ratliff, S., Jury, S., Satterwhite, D., Taylor, R., and B. | [RFC8175] Ratliff, S., Jury, S., Satterwhite, D., Taylor, R., and B. | |||
| Berry, "Dynamic Link Exchange Protocol (DLEP)", RFC 8175, | Berry, "Dynamic Link Exchange Protocol (DLEP)", RFC 8175, | |||
| DOI 10.17487/RFC8175, June 2017, | DOI 10.17487/RFC8175, June 2017, | |||
| <https://www.rfc-editor.org/info/rfc8175>. | <https://www.rfc-editor.org/info/rfc8175>. | |||
| [RFC9892] Cheng, B., Wiggins, D., Berger, L., and D. Fedyk, Ed., | ||||
| "Dynamic Link Exchange Protocol (DLEP) Traffic | ||||
| Classification Data Item", RFC 9892, DOI 10.17487/RFC9892, | ||||
| November 2025, <https://www.rfc-editor.org/info/rfc9892>. | ||||
| 6.2. Informative References | 6.2. Informative References | |||
| [BCP195] Best Current Practice 195, | [BCP195] Best Current Practice 195, | |||
| <https://www.rfc-editor.org/info/bcp195>. | <https://www.rfc-editor.org/info/bcp195>. | |||
| At the time of writing, this BCP comprises the following: | At the time of writing, this BCP comprises the following: | |||
| Moriarty, K. and S. Farrell, "Deprecating TLS 1.0 and TLS | ||||
| 1.1", BCP 195, RFC 8996, DOI 10.17487/RFC8996, March 2021, | ||||
| <https://www.rfc-editor.org/info/rfc8996>. | ||||
| Sheffer, Y., Saint-Andre, P., and T. Fossati, | Sheffer, Y., Saint-Andre, P., and T. Fossati, | |||
| "Recommendations for Secure Use of Transport Layer | "Recommendations for Secure Use of Transport Layer | |||
| Security (TLS) and Datagram Transport Layer Security | Security (TLS) and Datagram Transport Layer Security | |||
| (DTLS)", BCP 195, RFC 9325, DOI 10.17487/RFC9325, November | (DTLS)", BCP 195, RFC 9325, DOI 10.17487/RFC9325, November | |||
| 2022, <https://www.rfc-editor.org/info/rfc9325>. | 2022, <https://www.rfc-editor.org/info/rfc9325>. | |||
| Moriarty, K. and S. Farrell, "Deprecating TLS 1.0 and TLS | [Credit-Window-Extension] | |||
| 1.1", BCP 195, RFC 8996, DOI 10.17487/RFC8996, March 2021, | ||||
| <https://www.rfc-editor.org/info/rfc8996>. | ||||
| [I-D.ietf-manet-credit-window] | ||||
| Ratliff, S., "Credit Windowing extension for DLEP", Work | Ratliff, S., "Credit Windowing extension for DLEP", Work | |||
| in Progress, Internet-Draft, draft-ietf-manet-credit- | in Progress, Internet-Draft, draft-ietf-manet-credit- | |||
| window-07, 13 November 2016, | window-07, 13 November 2016, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-manet- | <https://datatracker.ietf.org/doc/html/draft-ietf-manet- | |||
| credit-window-07>. | credit-window-07>. | |||
| [I-D.ietf-manet-dlep-da-credit-extension] | ||||
| Cheng, B., Wiggins, D., Berger, L., and D. E. Eastlake, | ||||
| "DLEP DiffServ Aware Credit Window Extension", Work in | ||||
| Progress, Internet-Draft, draft-ietf-manet-dlep-da-credit- | ||||
| extension, 15 December 2024, | ||||
| <https://datatracker.ietf.org/doc/draft-ietf-manet-dlep- | ||||
| da-credit-extension/>. | ||||
| [I-D.ietf-manet-dlep-ether-credit-extension] | ||||
| Wiggins, D., Berger, L., and D. E. Eastlake, "DLEP IEEE | ||||
| 802.1Q Aware Credit Window Extension", Work in Progress, | ||||
| Internet-Draft, draft-ietf-manet-dlep-ether-credit- | ||||
| extension, 15 December 2024, | ||||
| <https://datatracker.ietf.org/doc/draft-ietf-manet-dlep- | ||||
| ether-credit-extension/>. | ||||
| [IEEE-802.1AE] | [IEEE-802.1AE] | |||
| "IEEE Standard for Local and metropolitan area networks- | IEEE, "IEEE Standard for Local and metropolitan area | |||
| Media Access Control (MAC) Security Amendment 4: MAC | networks-Media Access Control (MAC) Security Amendment 4: | |||
| Privacy protection", | MAC Privacy protection", DOI 10.1109/IEEESTD.2018.8585421, | |||
| December 2018, | ||||
| <https://ieeexplore.ieee.org/document/8585421>. | <https://ieeexplore.ieee.org/document/8585421>. | |||
| [IEEE-8802-1X] | [IEEE-8802-1X] | |||
| "8802-1X-2021 - IEEE/ISO/IEC International Standard- | IEEE, "IEEE/ISO/IEC International Standard- | |||
| Telecommunications and exchange between information | Telecommunications and exchange between information | |||
| technology systems--Requirements for local and | technology systems--Requirements for local and | |||
| metropolitan area networks--Part 1X:Port-based network | metropolitan area networks--Part 1X:Port-based network | |||
| access control", | access control", DOI 10.1109/IEEESTD.2021.9650828, IEEE | |||
| Std 8802-1X-2021, December 2021, | ||||
| <https://ieeexplore.ieee.org/document/9650828>. | <https://ieeexplore.ieee.org/document/9650828>. | |||
| [RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., | [RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., | |||
| and W. Weiss, "An Architecture for Differentiated | and W. Weiss, "An Architecture for Differentiated | |||
| Services", RFC 2475, DOI 10.17487/RFC2475, December 1998, | Services", RFC 2475, DOI 10.17487/RFC2475, December 1998, | |||
| <https://www.rfc-editor.org/info/rfc2475>. | <https://www.rfc-editor.org/info/rfc2475>. | |||
| [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | ||||
| Writing an IANA Considerations Section in RFCs", BCP 26, | ||||
| RFC 8126, DOI 10.17487/RFC8126, June 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8126>. | ||||
| [RFC8651] Cheng, B., Wiggins, D., and L. Berger, Ed., "Dynamic Link | [RFC8651] Cheng, B., Wiggins, D., and L. Berger, Ed., "Dynamic Link | |||
| Exchange Protocol (DLEP) Control-Plane-Based Pause | Exchange Protocol (DLEP) Control-Plane-Based Pause | |||
| Extension", RFC 8651, DOI 10.17487/RFC8651, October 2019, | Extension", RFC 8651, DOI 10.17487/RFC8651, October 2019, | |||
| <https://www.rfc-editor.org/info/rfc8651>. | <https://www.rfc-editor.org/info/rfc8651>. | |||
| Appendix A. Acknowledgments | [RFC9894] Cheng, B., Wiggins, D., Berger, L., and D. Eastlake 3rd, | |||
| Ed., "Dynamic Link Exchange Protocol (DLEP) Diffserv Aware | ||||
| We mourn the loss of Stan Ratliff who passed away on October 22, | Credit Window Extension", RFC 9894, DOI 10.17487/RFC9894, | |||
| 2019. His guidance, leadership and personal contributions were | November 2025, <https://www.rfc-editor.org/info/rfc9894>. | |||
| critical in the development of this work and DLEP as a whole. His | ||||
| leadership and friendship shall be missed. | ||||
| We had the honor of working too briefly with David Wiggins on this | ||||
| and related DLEP work. His contribution to the IETF and publication | ||||
| of the first and definitive open source DLEP implementation have been | ||||
| critical to the acceptance of DLEP. We morn his passing on November | ||||
| 23, 2023. We wish to recognize his guidance, leadership and | ||||
| professional excellence. We were fortunate to benefit from his | ||||
| leadership and friendship. He shall be missed. | ||||
| Many useful comments were received from contributors to the MANET | [RFC9895] Wiggins, D., Berger, L., and D. Eastlake 3rd, Ed., | |||
| working group, notably Rick Taylor, Ronald in't Velt, David Black and | "Dynamic Link Exchange Protocol (DLEP) IEEE 802.1Q Aware | |||
| Donald E. Eastlake. This document was derived from | Credit Window Extension", RFC 9895, DOI 10.17487/RFC9895, | |||
| [I-D.ietf-manet-dlep-da-credit-extension] as a result of discussions | November 2025, <https://www.rfc-editor.org/info/rfc9895>. | |||
| at IETF 101. | ||||
| Appendix B. Example DLEP Credit Flow Control and Traffic Classification | Appendix A. Example DLEP Credit Flow Control and Traffic Classification | |||
| Data Item Exchange | Data Item Exchange | |||
| Below Figure 2 illustrates a credit flow control and traffic | Figure 2 illustrates a credit flow control and traffic classification | |||
| classification exchange between a Router and a Modem. The Modem will | exchange between a router and a modem. The modem will initialize a | |||
| initialize a number of queues with Credit Window Initialization Data | number of queues with Credit Window Initialization Data Items, Credit | |||
| Items, Window Association Data Item(s) and Traffic Classification | Window Association Data Item(s), and Traffic Classification Data | |||
| Item(s) included in DLEP messages as outlined in this document. If | Item(s) included in DLEP messages as outlined in this document. If | |||
| the Data Items are successfully validated, traffic is mapped to the | the Data Items are successfully validated, traffic is mapped to the | |||
| corresponding credit window on the router and forwarded when there | corresponding credit window on the router and forwarded when there | |||
| are sufficient credits. Routers can periodically report the status | are sufficient credits. Routers can periodically report the status | |||
| of the credit window. Modems will send periodic updates with more | of the credit window. Modems will send periodic updates with more | |||
| credits as packets are transmitted. Routers may request more credits | credits as packets are transmitted. If a router requires more | |||
| for a particular window if the router requires more credits. This | credits for a particular window, it may request them. This document | |||
| document defines window credit flow information for flow Identifiers | defines credit window flow information for FIDs that map to the | |||
| (FIDs) that map to the queues. | queues. [RFC9892] defines the Traffic Classification Sub-Data Items, | |||
| [I-D.ietf-manet-dlep-traffic-classification] defines the traffic | such as DSCPs, that map to the FIDs. | |||
| classification data sub items such as DiffServ code points that map | ||||
| to the FIDs. | ||||
| Router Modem | Router Modem | |||
| |<----------------DLEP Messages---------------| | |<----------------DLEP Messages---------------| | |||
| | Traffic Classification Data Item(s) | | | Traffic Classification Data Item(s) | | |||
| | Window Association Data Item(s) | | | Credit Window Association Data Item(s) | | |||
| | Credit Window Initialization Data Item(s) | | | Credit Window Initialization Data Item(s) | | |||
| | | | | | | |||
| |============================================>| | |============================================>| | |||
| | Traffic | | | Traffic | | |||
| | | | | | | |||
| |<----------------DLEP Messages---------------| | |<----------------DLEP Messages---------------| | |||
| | Credit Window Grant Data Item(s) | T | | Credit Window Grant Data Item(s) | T | |||
| |============================================>| i | |============================================>| i | |||
| | Traffic | m | | Traffic | m | |||
| | | e | | | e | |||
| |----------------DLEP Messages--------------->| | |----------------DLEP Messages--------------->| | |||
| | Credit Window Status Data Item(s) | | | | Credit Window Status Data Item(s) | | | |||
| | | V | | | V | |||
| |============================================>| | |============================================>| | |||
| | Traffic | | | Traffic | | |||
| | | | | | | |||
| |----------------DLEP Messages--------------->| | |----------------DLEP Messages--------------->| | |||
| | Credit Window Request Data Item(s) | | | Credit Window Request Data Item(s) | | |||
| | | | | | | |||
| |<------------------------------------------- | | |<------------------------------------------- | | |||
| | Credit Window Grant Data Item(s) | | | Credit Window Grant Data Item(s) | | |||
| | | | | | | |||
| |============================================>| | |============================================>| | |||
| | Traffic | | | Traffic | | |||
| | | | | | | |||
| Figure 2: Example DLEP Traffic Classification/Credit Flow Exchange | Figure 2: Example DLEP Traffic Classification / Credit Flow Exchange | |||
| Acknowledgments | ||||
| We mourn the loss of Stan Ratliff, who passed away on October 22, | ||||
| 2019. His guidance, leadership, and personal contributions were | ||||
| critical in the development of this work and DLEP as a whole. His | ||||
| leadership and friendship shall be missed. | ||||
| We had the honor of working too briefly with David Wiggins on this | ||||
| and related DLEP work. His contribution to the IETF and publication | ||||
| of the first and definitive open-source DLEP implementation have been | ||||
| critical to the acceptance of DLEP. We mourn his passing on November | ||||
| 26, 2023. We wish to recognize his guidance, leadership, and | ||||
| professional excellence. We were fortunate to benefit from his | ||||
| leadership and friendship. He shall be missed. | ||||
| Many useful comments were received from contributors to the MANET | ||||
| Working Group, notably Rick Taylor, Ronald in 't Velt, David Black, | ||||
| and Donald E. Eastlake. This document was derived from [RFC9894] as | ||||
| a result of discussions at IETF 101. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Bow-Nan Cheng | Bow-Nan Cheng | |||
| MIT Lincoln Laboratory | MIT Lincoln Laboratory | |||
| Massachusetts Institute of Technology | Massachusetts Institute of Technology | |||
| 244 Wood Street | 244 Wood Street | |||
| Lexington | Lexington, MA 02421-6426 | |||
| United States of America | ||||
| Email: bcheng@ll.mit.edu | Email: bcheng@ll.mit.edu | |||
| David Wiggins | David Wiggins | |||
| Email: david@none.org | ||||
| Stan Ratliff | Stan Ratliff | |||
| Email: stan@none.org | ||||
| Lou Berger | Lou Berger | |||
| LabN Consulting, L.L.C. | LabN Consulting, L.L.C. | |||
| Email: lberger@labn.net | Email: lberger@labn.net | |||
| Eric Kinzie (editor) | Eric Kinzie (editor) | |||
| LabN Consulting, L.L.C. | LabN Consulting, L.L.C. | |||
| Email: ekinzie@labn.net | Email: ekinzie@labn.net | |||
| End of changes. 132 change blocks. | ||||
| 456 lines changed or deleted | 461 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||