idnits 2.17.1 draft-ietf-manet-dlep-credit-flow-control-10.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (24 February 2022) is 786 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-11) exists of draft-ietf-manet-dlep-traffic-classification-06 == Outdated reference: A later version (-16) exists of draft-ietf-manet-dlep-da-credit-extension-12 Summary: 0 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group B. Cheng 3 Internet-Draft D. Wiggins 4 Intended status: Standards Track MIT Lincoln Laboratory 5 Expires: 28 August 2022 L. Berger 6 LabN Consulting, L.L.C. 7 S. Ratliff 8 24 February 2022 10 DLEP Credit-Based Flow Control Messages and Data Items 11 draft-ietf-manet-dlep-credit-flow-control-10 13 Abstract 15 This document defines new Dynamic Link Exchange Protocol (DLEP) Data 16 Items that are used to support credit-based flow control. Credit 17 window control is used to regulate when data may be sent to an 18 associated virtual or physical queue. The Data Items are defined in 19 an extensible and reusable fashion. Their use will be mandated in 20 other documents defining specific DLEP extensions. 22 Status of This Memo 24 This Internet-Draft is submitted in full conformance with the 25 provisions of BCP 78 and BCP 79. 27 Internet-Drafts are working documents of the Internet Engineering 28 Task Force (IETF). Note that other groups may also distribute 29 working documents as Internet-Drafts. The list of current Internet- 30 Drafts is at https://datatracker.ietf.org/drafts/current/. 32 Internet-Drafts are draft documents valid for a maximum of six months 33 and may be updated, replaced, or obsoleted by other documents at any 34 time. It is inappropriate to use Internet-Drafts as reference 35 material or to cite them other than as "work in progress." 37 This Internet-Draft will expire on 28 August 2022. 39 Copyright Notice 41 Copyright (c) 2022 IETF Trust and the persons identified as the 42 document authors. All rights reserved. 44 This document is subject to BCP 78 and the IETF Trust's Legal 45 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 46 license-info) in effect on the date of publication of this document. 47 Please review these documents carefully, as they describe your rights 48 and restrictions with respect to this document. Code Components 49 extracted from this document must include Revised BSD License text as 50 described in Section 4.e of the Trust Legal Provisions and are 51 provided without warranty as described in the Revised BSD License. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 56 1.1. Key Words . . . . . . . . . . . . . . . . . . . . . . . . 3 57 2. Credit Window Control . . . . . . . . . . . . . . . . . . . . 3 58 2.1. Data Plane Considerations . . . . . . . . . . . . . . . . 5 59 2.2. Credit Window Messages . . . . . . . . . . . . . . . . . 5 60 2.2.1. Credit Control Message . . . . . . . . . . . . . . . 5 61 2.2.2. Credit Control Response Message . . . . . . . . . . . 6 62 2.3. Credit Window Control Data Items . . . . . . . . . . . . 7 63 2.3.1. Credit Window Initialization . . . . . . . . . . . . 7 64 2.3.2. Credit Window Association . . . . . . . . . . . . . . 9 65 2.3.3. Credit Window Grant . . . . . . . . . . . . . . . . . 10 66 2.3.4. Credit Window Status . . . . . . . . . . . . . . . . 12 67 2.3.5. Credit Window Request . . . . . . . . . . . . . . . . 13 68 2.4. Management Considerations . . . . . . . . . . . . . . . . 14 69 3. Compatibility . . . . . . . . . . . . . . . . . . . . . . . . 15 70 4. Security Considerations . . . . . . . . . . . . . . . . . . . 15 71 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 72 5.1. Message Values . . . . . . . . . . . . . . . . . . . . . 15 73 5.2. Data Item Values . . . . . . . . . . . . . . . . . . . . 16 74 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 75 6.1. Normative References . . . . . . . . . . . . . . . . . . 16 76 6.2. Informative References . . . . . . . . . . . . . . . . . 17 77 Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 17 78 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 80 1. Introduction 82 The Dynamic Link Exchange Protocol (DLEP) is defined in [RFC8175]. 83 It provides the exchange of link related control information between 84 DLEP peers. DLEP peers are comprised of a modem and a router. DLEP 85 defines a base set of mechanisms as well as support for possible 86 extensions. DLEP defines Data Items which are sets of information 87 that can be reused in DLEP messaging. The base DLEP specification 88 does not include any flow identification beyond DLEP endpoints nor 89 flow control capability. There are various flow control techniques 90 theoretically possible with DLEP. For example, a credit-window 91 scheme for destination-specific flow control which provides aggregate 92 flow control for both modem and routers has been proposed in 93 [I-D.ietf-manet-credit-window], and a control plane pause based 94 mechanism is defined in [RFC8651]. 96 This document defines DLEP Data Items and Messages which provide a 97 flow control mechanism for traffic sent from a router to a modem. 98 Flow control is provided using one or more logical "Credit Windows", 99 each of which will typically be supported by an associated virtual or 100 physical queue. A router will use traffic flow classification 101 information provided by the modem, as defined in 102 [I-D.ietf-manet-dlep-traffic-classification], to identify which 103 traffic is associated with each credit window. In this case, a flow 104 is identified based on information found in a data plane header and 105 one or more matches are associated with a single flow. (For general 106 background on traffic classification see [RFC2475] Section 2.3.) 107 Credit windows may be shared or dedicated on a per flow basis. The 108 Data Items are structured to allow for reuse of the defined credit 109 window based flow control with different traffic classification 110 techniques. A router logically consumes credits for each credit 111 window matching packet sent. 113 Note that this document defines common Messages, Data Items and 114 mechanisms that are reusable. They are expected to be required by 115 DLEP extensions defined in other documents such as found in 116 [I-D.ietf-manet-dlep-da-credit-extension]. 118 This document supports credit window control by introducing two new 119 DLEP messages in Section 2.2, and five new DLEP Data Items in 120 Section 2.3. 122 1.1. Key Words 124 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 125 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 126 "OPTIONAL" in this document are to be interpreted as described in BCP 127 14 [RFC2119] [RFC8174] when, and only when, they appear in all 128 capitals, as shown here. 130 2. Credit Window Control 132 This section defines additions to DLEP used in credit based flow 133 control. Two new messages and five Data Items are defined to support 134 credit window control. The use of credit window control impacts the 135 data plane. 137 The credit window control mechanisms defined in this document support 138 credit based flow control of traffic sent from a router to a modem. 139 The mapping of specific flows of traffic to a particular credit 140 window is based on the Traffic Classification Data Item defined in 141 [I-D.ietf-manet-dlep-traffic-classification]. Both types of DLEP 142 endpoints, i.e., a router and a modem, negotiate the use of this 143 extension during session initialization, e.g., see 145 [I-D.ietf-manet-dlep-da-credit-extension]. When using credit 146 windows, data traffic is only allowed to be sent by the router to the 147 modem when there are credits available. 149 Credits are managed on a per logical "Credit Window" basis. Each 150 credit window can be thought of as corresponding to a queue within a 151 modem. Credit windows may be shared across, or dedicated to, 152 destinations and data plane identifiers, e.g., DSCPs, at a 153 granularity that is appropriate for a modem's implementation and its 154 attached transmission technology. As defined below, there is a 155 direct one-for-one mapping of credit windows to flows as identified 156 by Flow Identifiers (FIDs) carried within the Traffic Classification 157 Data Item. Modems pass to the router information on their credit 158 windows and FIDs prior to a router being able to send data when an 159 extension requiring the use of credit window control is used. In 160 addition to the traffic classification information associated with an 161 FID, modems provide an initial credit window size, as well as the 162 maximum size of the logical queue associated with each credit window. 163 The maximum size is included for informative and potential future 164 uses. 166 Modems provide an initial credit window size at the time of "Credit 167 Window Initialization". Such initialization can take place during 168 session initiation or any point thereafter. It can also take place 169 when rate information changes. Additional "Credit Grants", i.e., 170 increments to Credit Window size, are provided using a Destination Up 171 or the new "Credit Control" Message. A router provides its view of 172 the Credit Window, which is known as "Status", in Destination Up 173 Response and the new "Credit Control Response" Messages. Routers can 174 also request credits using the new "Credit Control" Message. 176 When modems provide credits to a router, they will need to take into 177 account any overhead of their attached transmission technology and 178 map it into the credit semantics defined in this document. In 179 particular, the credit window is defined below to include per frame 180 (packet) MAC headers, and this may not match the actual overhead of 181 the modem attached transmission technology. In that case a direct 182 mapping, or an approximation will need to be made by the modem to 183 provide appropriate credit values. 185 Actual flows of traffic are mapped to credit windows based on flow 186 identification information provided by modems in the Traffic 187 Classification Data item defined in 188 [I-D.ietf-manet-dlep-traffic-classification]. This data item 189 supports traffic classification on a per destination or more fine 190 grain level. Routers use the combination of the DLEP identified 191 destination and flow information associated with a credit window in 192 order to match traffic they send to specific credit windows. 194 When a destination becomes reachable, a modem "associates" 195 (identifies) the appropriate traffic classification information via 196 the Traffic Class Identifier (TID) to be used for traffic sent by the 197 router to that destination. This is supported by the Credit Window 198 Association Data Item which is carried in Destination Up and Update 199 messages, see Section 2.3.2. The TID provides the information to 200 support router traffic classification, based on the FIDs contained in 201 the TID, see [I-D.ietf-manet-dlep-traffic-classification]. As 202 defined, each credit window has a corresponding FID. This means that 203 the use of FIDs, TIDs and the association of a TID to a DLEP 204 destination enables a modem to share or dedicate resources as needed 205 to match the specifics of its implementation and its attached 206 transmission technology. 208 The defined credit window control has similar objectives as the 209 control found in [I-D.ietf-manet-credit-window]. One notable 210 difference from that credit control is that in this document, credits 211 are never provided by the router to the modem. 213 2.1. Data Plane Considerations 215 When credit windowing is used, a router MUST NOT send data traffic to 216 a modem for forwarding when there are no credits available in the 217 associated Credit Window. This document defines credit windows in 218 octets. A credit window value MUST be larger than the number of 219 octets contained in a packet, including any MAC overhead (e.g., 220 framing, headers and trailers) used between the router and the modem, 221 in order for the router to send the packet to a modem for forwarding. 222 The credit window is decremented by the number of sent octets. 224 A router MUST identify the credit window associated with traffic sent 225 to a modem based on the traffic classification information provided 226 in the Data Items defined in this document. 228 2.2. Credit Window Messages 230 Two new messages are defined in support for credit window control: 231 the Credit Control and the Credit Control Response Message. Sending 232 and receiving both message types is REQUIRED to support the credit 233 window control defined in this document. 235 2.2.1. Credit Control Message 237 Credit Control Messages are sent by modems and routers. Each sender 238 is only permitted to have one message outstanding at one time. That 239 is, a sender (i.e., modem or router) MUST NOT send a second or any 240 subsequent Credit Control Message until a Credit Control Response 241 Message is received from its peer (i.e., router or modem). 243 Credit Control Messages are sent by modems to provide credit window 244 increases. Modems send credit increases when there is transmission 245 or local queue availability that exceeds the credit window value 246 previously provided to the router. Modems will need to balance the 247 load generated by sending and processing frequent credit window 248 increases against a router having data traffic available to send, but 249 no credits available. 251 Credit Control Messages MAY be sent by routers to request credits and 252 provide window status. Routers will need to balance the load 253 generated by sending and processing frequent credit window requests 254 against having data traffic available to send, but no credits 255 available. 257 The Message Type value in the DLEP Message Header is set to TBA2. 259 A message sent by a modem, MUST contain one or more Credit Window 260 Grant Data Items as defined below in Section 2.3.3. A router 261 receiving this message MUST respond with a Credit Control Response 262 Message. 264 A message sent by a router, MUST contain one or more Credit Window 265 Request Data Items defined below in Section 2.3.5 and SHOULD contain 266 a Credit Window Status Data Item, defined in Section 2.3.4, 267 corresponding to each credit window request. A modem receiving this 268 message MUST respond with a Credit Control Response Message based on 269 the received message and Data Item and the processing defined below, 270 which will typically result in credit window increments being 271 provided. 273 Specific processing associated with each Credit Data Item is provided 274 below. 276 2.2.2. Credit Control Response Message 278 Credit Control Response Messages are sent by routers to report the 279 current Credit Window for a destination. A message sent by a router, 280 MUST contain one or more Credit Window Status Data Items as defined 281 below in Section 2.3.4. Specific receive processing associated with 282 the Credit Window Status Data Item is provided below. 284 Credit Control Response Messages sent by modems MUST contain one or 285 more Credit Window Grant Data Items. A Data Item for every Credit 286 Window Request Data Item contained in the corresponding Credit 287 Control Message received by the modem MUST be included. Each Credit 288 Grant Data Item MAY provide zero or more additional credits based on 289 the modem's transmission or local queue availability. Specific 290 receive processing associated with each Grant Data Item is provided 291 below. 293 The Message Type value in the DLEP Message Header is set to TBA3. 295 2.3. Credit Window Control Data Items 297 Five new Data Items are defined to support credit window control. 298 The Credit Window Initialization Data Item is used by a modem to 299 identify a credit window and set its size. The Credit Window 300 Association Data Item is used by a modem to identify which traffic 301 classification identifiers (flows) should be used when sending 302 traffic to a particular DLEP identified destination. The Credit 303 Window Grant is used by a modem to provide additional credits to a 304 router. The Credit Window Request is used by a router to request 305 additional credits. The Credit Window Status is used to advertise 306 the sender's view of number of available credits for state 307 synchronization purposes. 309 Any errors or inconsistencies encountered in parsing Data Items are 310 handled in the same fashion as any other data item parsing error 311 encountered in DLEP, see [RFC8175]. In particular, the node parsing 312 the Data Item MUST terminate the session with a Status Data Item 313 indicating Invalid Data. 315 2.3.1. Credit Window Initialization 317 The Credit Window Initialization Data Item is used by a modem to 318 identify a credit window and set its size. This Data Item SHOULD be 319 included in any Session Initialization Response Message that also 320 indicates support for an extension that requires support for the 321 credit window control mechanisms defined in this document, e.g., see 322 [I-D.ietf-manet-dlep-da-credit-extension]. Updates to previously 323 identified credit windows or new credit windows MAY be sent by a 324 modem by including the Data Item in Session Update Messages. More 325 than one data item MAY be included in a message to provide 326 information on multiple credit windows. 328 The Credit Window Initialization Data Item identifies a credit window 329 using a Flow Identifier, or FID. It also provides the size of the 330 identified credit window. Finally, a queue size (in bytes) is 331 provided for informational purposes. Note that to be used, a FID 332 must be defined within a Traffic Classification Data Item and the 333 associated TID must be provided via a Credit Window Association Data 334 Item. 336 The format of the Credit Window Initialization Data Item is: 338 0 1 2 3 339 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 340 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 341 | Data Item Type | Length (16) | 342 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 343 | Flow Identifier (FID) | Reserved | 344 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 345 | Credit Value : 346 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 347 : Credit Value | 348 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 349 | Scale | Credit Window Max Size | 350 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 352 Data Item Type: 353 TBA4 355 Length: 356 16 358 Per [RFC8175] Length is the number of octets in the Data Item. It 359 MUST be equal to sixteen (16). 361 Flow Identifier (FID): 362 A flow identifier as defined by the Traffic Classification Data 363 Item. The FID also uniquely identifies a credit window. 365 Reserved: 366 MUST be set to zero by the sender (a modem) and ignored by the 367 receiver (a router). 369 Credit Value: 370 A 64-bit unsigned integer representing the credits, in octets, to 371 be applied to the Credit Window. This value includes MAC headers 372 as seen on the link between the modem and router. 374 Scale: 375 An 8-bit unsigned integer indicating the scale used in the Credit 376 Window Size field. The valid values are: 378 Value Scale 379 ------------ 380 0 B - Bytes (Octets) 381 1 KB - Kilobytes (B/1024) 382 2 MB - Megabytes (KB/1024) 383 3 GB - Gigabytes (MB/1024) 385 Credit Window Max Size: 386 A 24-bit unsigned integer representing the maximum size, in the 387 octet scale indicated by the Scale field, of the associated credit 388 window. 390 A router that receives a Credit Window Initialization Data Item MUST 391 ensure that the FID field value has been provided by the modem in a 392 Traffic Classification Data Item carried in either the current or a 393 previous message. If the FID cannot be found the router SHOULD 394 report or log this information. Note that no traffic will be 395 associated with the credit window in this case. After FID 396 validation, the router MUST locate the credit window that is 397 associated with the FID indicated in each received Data Item. If no 398 associated credit window is found, the router MUST initialize a new 399 credit window using the values carried in the Data Item. When an 400 associated credit window is found, the router MUST update the credit 401 window and associated data plane state using the values carried in 402 the Data Item. If the resulting Credit Value results in the credit 403 window exceeding the represented Credit Window Max Size, the Credit 404 Window Size is used as the new credit window size. It is worth 405 noting, that such updates can result in a credit window size being 406 reduced, for example, due to a transmission rate change on the modem. 408 2.3.2. Credit Window Association 410 The Credit Window Association Data Item is used by a modem to 411 associate traffic classification information with a destination. The 412 traffic classification information is identified using a TID value 413 that has previously been sent by the modem or is listed in a Traffic 414 Classification Data Item carried in the same message as the Data 415 Item. 417 A single Credit Window Association Data Item MUST be included in all 418 Destination Up and Destination Update Messages sent by a modem when 419 the credit window control defined in this document is used. Note 420 that a TID will not be used unless it is listed in a Credit Window 421 Association Data Item. 423 The format of the Credit Window Association Data Item is: 425 0 1 2 3 426 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 427 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 428 | Data Item Type | Length (2) | 429 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 430 |Traffic Class. Identifier (TID)| 431 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 433 Data Item Type: 434 TBA5 436 Length: 437 2 439 Per [RFC8175] Length is the number of octets in the Data Item. It 440 MUST be equal to two (2). 442 Traffic Classification Identifier (TID): 443 A 16-bit unsigned integer identifying a traffic classification set 444 that has been identified in a Traffic Classification Data Item, 445 see [I-D.ietf-manet-dlep-traffic-classification]. 447 A router that receives the Credit Window Association Data Item MUST 448 locate the traffic classification information indicated by the 449 received TID. If no corresponding information can be located, the 450 Data Item MUST be treated as an error as described above. Once the 451 traffic classification information is located, the router MUST ensure 452 that any data plane state, see Section 2.1, that is associated with 453 the TID and its corresponding FIDs is updated as needed. 455 2.3.3. Credit Window Grant 457 The Credit Window Grant Data Item is used by a modem to provide 458 credits to a router. One or more Credit Window Grant Data Items MAY 459 be carried in the DLEP Destination Up, Destination Announce Response, 460 Destination Update, Credit Control Messages, and Credit Control 461 Response Messages. Multiple Credit Window Grant Data Items in a 462 single message are used to indicate different credit values for 463 different credit windows. In all message types, this Data Item 464 provides an additional number of octets to be added to the indicated 465 credit window. Credit windows are identified using FID values that 466 have been previously been sent by the modem or are listed in a Credit 467 Window Initialization Data Item carried in the same message as the 468 Data Item. 470 The format of the Credit Window Grant Data Item is: 472 0 1 2 3 473 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 474 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 475 | Data Item Type | Length (12) | 476 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 477 | Flow Identifier (FID) | Reserved | 478 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 479 | Additional Credits : 480 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 481 : Additional Credits | 482 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 484 Data Item Type: 485 TBA6 487 Length: 488 12 490 Per [RFC8175], Length is the number of octets in the Data Item. 491 It MUST be equal to twelve (12). 493 Flow Identifier (FID): 494 A flow identifier as defined by the Traffic Classification Data 495 Item. The FID also uniquely indicates a credit window. 497 Reserved: 498 MUST be set to zero by the sender and ignored by the receiver. 500 Additional Credit: 501 A 64-bit unsigned integer representing the credits, in octets, to 502 be added to the Credit Window. This value includes MAC headers as 503 seen on the link between the modem and router. A value of zero 504 indicates that no additional credits are being provided. 506 When receiving this Data Item, a router MUST identify the credit 507 window indicated by the FID. If the FID is not known to the router, 508 it SHOULD report or log this information and discard the Data Item. 509 It is important to note that while this Data Item can be received in 510 a destination specific message, credit windows are managed 511 independently from the destination identified in the message carrying 512 this Data Item, and the indicated FID MAY even be disjoint from the 513 identified destination. 515 Once the credit window is identified, the credit window size MUST be 516 increased by the value contained in the Additional Credits field. If 517 the increase results in a window overflow, the Credit Window must be 518 set to its maximum as defined by the Credit Window Max Size carried 519 in the Credit Window Initialization Data Item. 521 No response is sent by the router to a modem after processing a 522 Credit Window Grant Data Item received in a Credit Control Response 523 Message. In other cases, the receiving router MUST send a Credit 524 Window Status Data Item or items reflecting the resulting Credit 525 Window value of the updated credit window. When the Credit Grant 526 Data Item is received in a Destination Up Message, the Credit Window 527 Status Data Item(s) MUST be sent in the corresponding Destination Up 528 Response Message. Otherwise, a Credit Control Message MUST be sent. 530 2.3.4. Credit Window Status 532 The Credit Window Status Data Item is used by a router to report the 533 current credit window size to its peer modem. One or more Credit 534 Window Status Data Items MAY be carried in a Destination Up Response 535 Message or a Credit Control Response Message. As discussed above, 536 the Destination Up Response Message is used when the Data Item is 537 sent in response to a Destination Up Message, and the Credit Control 538 Response Message is sent in response to a Credit Control Message. 539 Multiple Credit Window Status Data Items in a single message are used 540 to indicate different sizes of different credit windows. Similar to 541 the Credit Window Grant, credit windows are identified using FID 542 values that have been previously been sent by the modem. 544 The format of the Credit Window Status Data Item is: 546 0 1 2 3 547 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 548 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 549 | Data Item Type | Length (12) | 550 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 551 | Flow Identifier (FID) | Reserved | 552 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 553 | Current Credit Window Size : 554 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 555 : Current Credit Window Size | 556 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 558 Data Item Type: 559 TBA7 561 Length: 562 12 564 Per [RFC8175] Length is the number of octets in the Data Item. It 565 MUST be equal to twelve (12). 567 Flow Identifier (FID): 568 A flow identifier as defined by the Traffic Classification Data 569 Item. The FID also uniquely identifies a credit window. 571 Reserved: 572 MUST be set to zero by the sender and ignored by the receiver. 574 Current Credit Window Size: 575 A 64-bit unsigned integer, indicating the current number of 576 credits, in octets, available for the router to send to the modem. 577 This is referred to as the Modem Receive Window in 578 [I-D.ietf-manet-credit-window]. 580 When receiving this Data Item, a modem MUST identify the credit 581 window indicated by the FID. If the FID is not known to the modem, 582 it SHOULD report or log this information and discard the Data Item. 583 As with the Credit Window Grant Data Item, the FID MAY be unrelated 584 to the Destination indicated in the message carrying the Data Item. 586 Once the credit window is identified, the modem SHOULD check the 587 received Current Credit Window Size field value against the 588 outstanding credit window's available credits at the time the most 589 recent Credit Window Initialization or Grant Data Item associated 590 with the indicated FID was sent. If the values significantly differ, 591 i.e., greater than can be accounted for based on observed data 592 frames, then the modem SHOULD send a Credit Window Initialization 593 Data Item to reset the associated credit window size to the modem's 594 current view of the available credits. As defined above, Credit 595 Window Initialization Data Items are sent in Session Update Messages. 596 When multiple Data Items need to be sent, they SHOULD be combined 597 into a single message when possible. Alternatively, and also in 598 cases where there are small differences, the modem MAY adjust the 599 values sent in Credit Window Grant Data Items to account for the 600 reported Credit Window. 602 2.3.5. Credit Window Request 604 The Credit Window Request Data Item is used by a router to request 605 additional credits for particular credit windows. Credit Window 606 Request Data Items are carried in Credit Control Messages, and one or 607 more Credit Window Request Data Items MAY be present in a message. 609 Credit windows are identified using a FID as defined above in 610 Section 2.3.1. Multiple FIDs MAY be present to allow for the case 611 where the router identifies that credits are needed in multiple 612 credit windows. A special FID value, as defined below, is used to 613 indicate that a credit request is being made across all queues. 615 The format of the Credit Window Request Data Item is: 617 0 1 2 3 618 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 619 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 620 | Data Item Type | Length | 621 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 622 | Flow Identifier (FID) | ... : 623 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 624 : ... | Flow Identifier (FID) | 625 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 627 Data Item Type: 628 TBA8 630 Length: 631 Variable 633 Per [RFC8175] Length is the number of octets in the Data Item, 634 excluding the Type and Length fields. It will equal the number of 635 FID fields carried in the Data Item times 2 and MUST be at least 636 2. 638 Flow Identifier (FID): 639 A flow identifier as defined by the Traffic Classification Data 640 Item. The FID also uniquely identifies a credit window. The 641 special value of 0xFFFF indicates that the request applies to all 642 FIDs. Note that when the special value is included, all other FID 643 values included in the Data Item are redundant as the special 644 value indicates all FIDs. 646 A modem receiving this Data Item MUST provide a Credit Increment for 647 the indicated credit windows via Credit Window Grant Data Items 648 carried in a new Credit Control Message. Multiple values and queue 649 indexes SHOULD be combined into a single Credit Control Message when 650 possible. Unknown FID values SHOULD be reported or logged and then 651 ignored by the modem. 653 2.4. Management Considerations 655 This section provides several network management guidelines to 656 implementations supporting the credit window mechanisms defined in 657 this document. 659 Modems MAY support the configuration of the number of credit windows 660 (queues) to advertise to a router. 662 Routers may have limits on the number of queues that they can support 663 and, perhaps, even limits in supported credit window combinations, 664 e.g., if per destination queues can even be supported at all. When 665 modem-provided credit window information exceeds the capabilities of 666 a router, the router SHOULD use a subset of the provided credit 667 windows. Alternatively, a router MAY reset the session and indicate 668 that the extension is not supported. In either case, the mismatch of 669 capabilities SHOULD be reported to the user via normal network 670 management mechanisms, e.g., user interface or error logging. 672 3. Compatibility 674 The messages and data items defined in this document will only be 675 used when extensions require their use. 677 4. Security Considerations 679 This document introduces credit window control and flow mechanisms to 680 DLEP. These mechanisms expose vulnerabilities similar to existing 681 DLEP messages, e.g., Destination UP or Down message injection 682 attacks. The security mechanisms documented in [RFC8175] can be 683 applied equally to the mechanism defined in this document. 685 5. IANA Considerations 687 This document requests the assignment of several values by IANA. All 688 assignments are to registries defined by [RFC8175]. 690 5.1. Message Values 692 This document requests 2 new assignments to the DLEP Message Registry 693 named "Message Values" in the range with the "Specification Required" 694 policy. The requested values are as follows: 696 +===========+=========================+ 697 | Type Code | Description | 698 +===========+=========================+ 699 | TBA2 | Credit Control | 700 +-----------+-------------------------+ 701 | TBA3 | Credit Control Response | 702 +-----------+-------------------------+ 704 Table 1: Requested Message Values 706 5.2. Data Item Values 708 This document requests the following new assignments to the DLEP Data 709 Item Registry named "Data Item Type Values" in the range with the 710 "Specification Required" policy. The requested values are as 711 follows: 713 +===========+==============================+ 714 | Type Code | Description | 715 +===========+==============================+ 716 | TBA4 | Credit Window Initialization | 717 +-----------+------------------------------+ 718 | TBA5 | Credit Window Association | 719 +-----------+------------------------------+ 720 | TBA6 | Credit Window Grant | 721 +-----------+------------------------------+ 722 | TBA7 | Credit Window Status | 723 +-----------+------------------------------+ 724 | TBA8 | Credit Window Request | 725 +-----------+------------------------------+ 727 Table 2: Requested Data Item Values 729 6. References 731 6.1. Normative References 733 [I-D.ietf-manet-dlep-traffic-classification] 734 Cheng, B., Wiggins, D., and L. Berger, "DLEP Traffic 735 Classification Data Item", Work in Progress, Internet- 736 Draft, draft-ietf-manet-dlep-traffic-classification-06, 29 737 July 2021, . 740 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 741 Requirement Levels", BCP 14, RFC 2119, 742 DOI 10.17487/RFC2119, March 1997, 743 . 745 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 746 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 747 May 2017, . 749 [RFC8175] Ratliff, S., Jury, S., Satterwhite, D., Taylor, R., and B. 750 Berry, "Dynamic Link Exchange Protocol (DLEP)", RFC 8175, 751 DOI 10.17487/RFC8175, June 2017, 752 . 754 6.2. Informative References 756 [I-D.ietf-manet-credit-window] 757 Ratliff, S., "Credit Windowing extension for DLEP", Work 758 in Progress, Internet-Draft, draft-ietf-manet-credit- 759 window-07, 13 November 2016, 760 . 763 [I-D.ietf-manet-dlep-da-credit-extension] 764 Cheng, B., Wiggins, D., and L. Berger, "DLEP DiffServ 765 Aware Credit Window Extension", Work in Progress, 766 Internet-Draft, draft-ietf-manet-dlep-da-credit-extension- 767 12, 29 July 2021, . 770 [RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., 771 and W. Weiss, "An Architecture for Differentiated 772 Services", RFC 2475, DOI 10.17487/RFC2475, December 1998, 773 . 775 [RFC8651] Cheng, B., Wiggins, D., and L. Berger, Ed., "Dynamic Link 776 Exchange Protocol (DLEP) Control-Plane-Based Pause 777 Extension", RFC 8651, DOI 10.17487/RFC8651, October 2019, 778 . 780 Appendix A. Acknowledgments 782 We mourn the loss of Stan Ratliff who passed away on October 22, 783 2019. His guidance, leadership and personal contributions were 784 critical in the development of this work and DLEP as a whole. His 785 leadership and friendship shall be missed. 787 Many useful comments were received from contributors to the MANET 788 working group, notably Rick Taylor, Ronald in't Velt and David Black. 789 This document was derived from 790 [I-D.ietf-manet-dlep-da-credit-extension] as a result of discussions 791 at IETF 101. 793 Authors' Addresses 794 Bow-Nan Cheng 795 MIT Lincoln Laboratory 796 Massachusetts Institute of Technology 797 244 Wood Street 798 Lexington 799 Email: bcheng@ll.mit.edu 801 David Wiggins 802 MIT Lincoln Laboratory 803 Massachusetts Institute of Technology 804 244 Wood Street 805 Lexington 806 Email: David.Wiggins@ll.mit.edu 808 Lou Berger 809 LabN Consulting, L.L.C. 810 Email: lberger@labn.net 812 Stan Ratliff