idnits 2.17.1 draft-ietf-manet-dlep-da-credit-extension-02.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 == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'MUST not' in this paragraph: A 16-bit unsigned integer identifying a credit window. The value of 0xFFFFFFFF is reserved and MUST not be used in this Data Item. There is no other restriction on values used by a modem, and there is no requirement for sequential or ordered values. -- The document date (October 30, 2017) is 2364 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) No issues found here. Summary: 0 errors (**), 0 flaws (~~), 2 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 Lincoln Laboratory 5 Expires: May 3, 2018 L. Berger 6 LabN Consulting, L.L.C. 7 October 30, 2017 9 DLEP DiffServ Aware Credit Windowing Extension 10 draft-ietf-manet-dlep-da-credit-extension-02 12 Abstract 14 This document defines an extension to the DLEP protocol that enables 15 a DiffServ aware credit-windowing scheme for destination-specific and 16 shared flow control. 18 Status of This Memo 20 This Internet-Draft is submitted in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF). Note that other groups may also distribute 25 working documents as Internet-Drafts. The list of current Internet- 26 Drafts is at https://datatracker.ietf.org/drafts/current/. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 This Internet-Draft will expire on May 3, 2018. 35 Copyright Notice 37 Copyright (c) 2017 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents 42 (https://trustee.ietf.org/license-info) in effect on the date of 43 publication of this document. Please review these documents 44 carefully, as they describe your rights and restrictions with respect 45 to this document. Code Components extracted from this document must 46 include Simplified BSD License text as described in Section 4.e of 47 the Trust Legal Provisions and are provided without warranty as 48 described in the Simplified BSD License. 50 Table of Contents 52 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 53 1.1. Key Words . . . . . . . . . . . . . . . . . . . . . . . . 3 54 2. Extension Overview . . . . . . . . . . . . . . . . . . . . . 3 55 3. Extension Usage and Identification . . . . . . . . . . . . . 5 56 4. Data Plane Considerations . . . . . . . . . . . . . . . . . . 5 57 5. Extension Messages . . . . . . . . . . . . . . . . . . . . . 5 58 5.1. Credit Control Message . . . . . . . . . . . . . . . . . 5 59 5.2. Credit Control Response Message . . . . . . . . . . . . . 6 60 6. Extension Data Items . . . . . . . . . . . . . . . . . . . . 6 61 6.1. Credit Window Initialization . . . . . . . . . . . . . . 7 62 6.2. Credit Window Traffic Classification . . . . . . . . . . 9 63 6.2.1. Traffic Classification Sub Data Item . . . . . . . . 11 64 6.2.2. DiffServ Traffic Classification Sub Data Item . . . . 11 65 6.3. Credit Window Associate . . . . . . . . . . . . . . . . . 13 66 6.4. Credit Window Credit Grant . . . . . . . . . . . . . . . 14 67 6.5. Credit Window Status . . . . . . . . . . . . . . . . . . 15 68 6.6. Credit Window Request . . . . . . . . . . . . . . . . . . 17 69 7. Compatibility . . . . . . . . . . . . . . . . . . . . . . . . 18 70 8. Security Considerations . . . . . . . . . . . . . . . . . . . 18 71 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 72 9.1. Extension Type Value . . . . . . . . . . . . . . . . . . 18 73 9.2. Message Values . . . . . . . . . . . . . . . . . . . . . 19 74 9.3. Data Item Values . . . . . . . . . . . . . . . . . . . . 19 75 9.4. DLEP Sub Data Item Registry . . . . . . . . . . . . . . . 20 76 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 77 10.1. Normative References . . . . . . . . . . . . . . . . . . 20 78 10.2. Informative References . . . . . . . . . . . . . . . . . 21 79 Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 21 80 Appendix B. Open and Resolved Issues . . . . . . . . . . . . . . 21 81 B.1. Merge with [I-D.ietf-manet-credit-window] . . . . . . . . 21 82 B.2. Supporting Router Limits . . . . . . . . . . . . . . . . 22 83 B.3. Absolute vs Increment . . . . . . . . . . . . . . . . . . 22 84 B.4. Bidirectional Flow 85 Control (closed) . . . . . . . . . . . . . . . . . . . . 22 86 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 88 1. Introduction 90 The Dynamic Link Event Protocol (DLEP) is defined in [RFC8175]. It 91 provides the exchange of link related control information between 92 DLEP peers. DLEP peers are comprised of a modem and a router. DLEP 93 defines a base set of mechanisms as well as support for possible 94 extensions. This document defines one such extension. 96 The base DLEP specification does not include any flow control 97 capability. There are various flow control theoretically possible 98 with DLEP. For example, a credit-windowing scheme for destination- 99 specific flow control which provides aggregate flow control for both 100 modem and routers has been proposed in 101 [I-D.ietf-manet-credit-window]. 103 This document defines a DLEP extension which provides an alternate 104 flow control mechanism for traffic sent from a router to a modem. 105 Flow control is provide using one or more logical "Credit Windows", 106 each of which will typically be supported by an associated virtual or 107 physical queue. Traffic sent by a router will use traffic 108 classification information provided by the modem to identify which 109 traffic is associated with each credit window. (For general 110 background on traffic classification see [RFC2475] Section 2.3.) 111 This document supports traffic classification based on DLEP 112 destination and DiffServ [RFC2475] DSCPs (differentiated services 113 codepoints). Credit windows may be shared or dedicated on a per 114 {destination, DSCP} tuple basis. Said another way, the defined 115 mechanism allows for credit windows to be shared across traffic sent 116 to multiple DLEP destinations and DSCPs, or used exclusively for 117 traffic sent to a particular destination and/or DSCP. The extension 118 also supports the "wildcard" matching of any DSCP. 120 The extension defined in this document is referred to as "DiffServ 121 Aware Credit Windowing" or, more simply, the "DA Credit" extension. 122 The extension is structured to allow for reuse of the defined credit 123 window based flow control with traffic classification techniques 124 other than DiffServ, e.g., IEEE 802.1 Q priority code points or even 125 5-tuple IP flows. 127 This document defines a new DLEP Extension Type Value in Section 3 128 which is used to indicate the use of the extension. Two new messages 129 are defined in Section 5, and six new DLEP Data Items in Section 6. 131 1.1. Key Words 133 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 134 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 135 "OPTIONAL" in this document are to be interpreted as described in BCP 136 14 [RFC2119] [RFC8174] when, and only when, they appear in all 137 capitals, as shown here. 139 2. Extension Overview 141 The DA Credit extension can be used to support credit based flow 142 control of traffic sent from a router to a modem. The extension can 143 be used to support DiffServ and non-DiffServ based flow control. 144 Both types of DLEP endpoints, i.e., a router and a modem, negotiate 145 the use of extension during session initialization, see Section 5.2 147 [RFC8175]. When using this extension, data is allowed to be sent by 148 the router to the modem only when there are credits available. 150 Credits are managed on a per logical "Credit Windows" basis. Each 151 credit window can be thought of as corresponding to a queue within a 152 modem. Modems pass to the router information on its credit windows 153 and identify each via a "Credit Window Identifier", or "CID". In 154 addition to the CID, credit window information includes an initial 155 credit window size, as well as the maximum size of the logical queue 156 associated with each CID. The maximum size is included for 157 informative and, potential, future uses. 159 As mentioned above, traffic classification supported by this document 160 is performed on a per {destination, DSCP} tuple basis. This means 161 that, routers need the combination of the DLEP identified destination 162 and DSCP associated with a CID in order to match traffic it sends to 163 specific credit windows. Modems provide the mapping of DSCPs to CIDs 164 in sets, each of which is identified via a "Traffic Classification 165 Identifier" or "TID". When a destination becomes reachable, a modem 166 "Associates" (identifies) the TID to be used for traffic sent by the 167 router to that destination. This use of CIDs, TIDs and association 168 of a TID to a DLEP destination enables modem to share or dedicate 169 resources as needed to match the specifics of its implementation and 170 its attached transmission technology. 172 Modems provide an initial credit window size at the time of "Credit 173 Window Initialization". Such initialization can take place during 174 session initiation or any point thereafter. It can also take place 175 when rate information changes. Additional "Credit Grants", i.e., 176 increments to Credit Window size, are provided using a Destination Up 177 or the new "Credit Control" Message. A router provides its view of 178 the Credit Window, which is known as "Status", in Destination Up 179 Response and the new "Credit Control Response" Messages. Routers can 180 also request credits using the new "Credit Control" Message. 182 When modems provide credits to a router, they will need to take into 183 account any overhead of their attached transmission technology and 184 map it into the credit semantics defined in this document. In 185 particular, the credit window is defined below to include per frame 186 (packet) MAC headers and this may not match the actual overhead of 187 the modem attached transmission technology. In that case a direct 188 mapping or an approximation will need to be made by the modem to 189 provide appropriate credit values. 191 3. Extension Usage and Identification 193 The use of the extension defined in this document SHOULD be 194 configurable. To indicate that the DiffServ Aware Credit Windowing 195 Extension is to be used, an implementation MUST include the DiffServ 196 Aware Credit Windowing Type Value in the Extensions Supported Data 197 Item. The Extensions Supported Data Item is sent and processed 198 according to [RFC8175]. 200 The DiffServ Aware Credit Windowing Extension Type Value is TBA1, see 201 Section 9. 203 4. Data Plane Considerations 205 When the use of the extension defined in this document is agreed upon 206 per standard DLEP processing, see Section 3, a router MUST NOT send 207 data to a modem for forwarding when there are no credits available in 208 the associated Credit Window. This document defines credit windows 209 in octets. A credit window value MUST be larger than the number of 210 octets contained in a packet, including any MAC headers used between 211 the router and the modem, in order for the router to send the packet 212 to a modem for forwarding. The credit window is decremented by the 213 number of sent octets. 215 A router MUST identify the credit window associated with traffic sent 216 to a modem based on the traffic classification information provided 217 in the data items defined in this document. The definitions support 218 identification based on DLEP destination and, at the modem's 219 discretion, DSCPs. Note that routers will typically view a DLEP 220 destination as the next hop. 222 5. Extension Messages 224 Two new messages are defined by this extension: the Credit Control 225 and the Credit Control Response Message. Sending and receiving both 226 message types MUST be supported by any implementation that advertises 227 use of this extension per Section 3. 229 5.1. Credit Control Message 231 Credit Control Messages are sent by modems to provide credit window 232 increases. For messages sent by modems, only one message can be 233 outstanding at one time. That is, a modem MUST NOT send a second (or 234 any subsequent) Credit Control Message until a Credit Control 235 Response Message is received from its peer router. 237 Credit Control Messages MAY be sent by routers, e.g., to request 238 credits or provide window status. No specific response message is 239 required from a modem from a message transaction perspective. There 240 is no restriction on when a router can send a Credit Control Message. 242 [TBD: Should anything be said about sending, or limiting, multiple 243 credit requests?] 245 The Message Type value in the DLEP Message Header is set to TBA2. 247 A message sent by a modem, MUST contain one or more Credit Window 248 Grant Data Items as defined below in Section 6.4. A router receiving 249 this message MUST respond with a Credit Control Response Message. 251 A message sent by a router, MUST contain the Credit Window Request 252 Data Item defined below in Section 6.6. A modem receiving this 253 message MUST process the received message and data item as defined 254 below, which will result in credit window increments being provided 255 via Credit Window Grant Data Items carried in one more more new 256 Credit Control Message. 258 Specific processing associated with each Credit Data Item is provided 259 below. 261 5.2. Credit Control Response Message 263 Credit Control Response Messages are sent by routers to report the 264 current Credit Window for a destination. 266 The Message Type value in the DLEP Message Header is set to TBA3. 268 A message sent by a router, MUST contain one or more Credit Window 269 Status data items as defined below in Section 6.5. 271 Specific processing associated with the Credit Window Window Status 272 Data Item is provided below. 274 6. Extension Data Items 276 Six data items are defined by this extension. The Credit Window 277 Initialization Data Item is used by a modem to identify a credit 278 window and set its size. The Credit Window Traffic Classification 279 Data Item is used by a modem to identify a set which identifies which 280 DSCPs are mapped to a credit window. The Credit Window Association 281 Data Item is used by a modem to identify which traffic classification 282 set should be used when sending traffic to a particular DLEP 283 identified destination. The Credit Window Grant is used by a modem 284 to provide additional credits to a router. The Credit Request is 285 used by a router to request additional credits. The Credit Window 286 Status is used to advertise the sender's view of number of available 287 credits for state synchronization purposes. 289 Any errors or inconsistencies encountered in parsing data items are 290 handled in the same fashion as any other Data Item parsing error 291 encountered in DLEP, see [RFC8175]. In particular, the node parsing 292 the data item MUST terminate the session with a Status Data Item 293 indicating Invalid Data. 295 The defined data items and operations have similar objectives as 296 those found in [I-D.ietf-manet-credit-window]. One notable 297 difference from this extension is that in this document credits are 298 never provided by the router to the modem. 300 6.1. Credit Window Initialization 302 The Credit Window Initialization Data Item is used by a modem to 303 identify a credit window and set its size. This data item SHOULD be 304 included in any Session Initialization Response Message that also 305 contains the DiffServ Aware Credit Windowing Extension Type Value in 306 the Extensions Supported Data Item. Updates to previously identified 307 credit windows or new credit windows MAY be sent by a modem by 308 including the data item in Session Update Messages. More than one 309 data item MAY be included in a message to provide information on 310 multiple credit windows. 312 The Credit Window Initialization Data Item identifies a credit window 313 using a Credit Window Identifier, or CID. It also provides the size 314 of the identified credit window. Finally, a queue size (in bytes) is 315 provided for informational purposes. Note that to be used, a CID 316 must be listed in a Credit Window Traffic Classification Data Item. 318 The format of the Credit Window Initialization Data Item is: 320 0 1 2 3 321 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 322 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 323 | Data Item Type | Length (16) | 324 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 325 | Credit Window Identifier (CID)| Reserved | 326 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 327 | Credit Value : 328 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 329 : Credit Value | 330 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 331 | Scale | Credit Window Size | 332 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 334 Data Item Type: TBA4 336 Length: 16 338 Per [RFC8175] Length is the number of octets in the data item, 339 excluding the Type and Length fields. 341 Credit Window Identifier (CID): 343 A 16-bit unsigned integer identifying a credit window. The value 344 of 0xFFFFFFFF is reserved and MUST not be used in this Data Item. 345 There is no other restriction on values used by a modem, and there 346 is no requirement for sequential or ordered values. 348 Reserved: 350 MUST be set to zero by the sender (a modem) and ignored by the 351 receiver (a router). 353 Credit Value: 355 A 64-bit unsigned integer representing the credits, in octets, to 356 be applied to the Credit Window. This value includes MAC headers 357 as seen on the link between the modem and router. 359 Scale: 361 An 8-bit unsigned integer indicating the scale used in the Credit 362 Window Size fields. The valid values are: 364 Value Scale 365 ------------ 366 0 B - Bytes (Octets) 367 1 KB - Kilobytes (B/1024) 368 2 MB - Megabytes (KB/1024) 369 3 GB - Gigabytes (MB/1024) 371 Credit Window Size: 373 A 24-bit unsigned integer representing the maximum size, in the 374 octet scale indicated by the Scale field, of the associated credit 375 window. 377 A router that receives a Credit Window Initialization Data Item MUST 378 locate the credit window that is associated with the CID indicated in 379 each received Data Item. If no associated credit window is found, 380 the router MUST initialize a new credit window using the values 381 carried in the Data Item. When an associated credit window is found, 382 the router MUST update the credit window using the values carried in 383 the Data Item. It is worth noting, that such updates can result in a 384 credit window size being reduced, for example, due to a transmission 385 rate change on the modem. 387 6.2. Credit Window Traffic Classification 389 The Credit Window Traffic Classification Data Item is used by a modem 390 to provide information to enable router to identify the credit window 391 associated with traffic the router sends. Each data item includes a 392 set of credit windows and provides traffic classification for each 393 window. The data item is defined to support classification based on 394 DSCPs, but is designed to be extensible for future traffic 395 classification types. The data item is not required to provide full 396 traffic classification information. In the context of the definition 397 included in this document, the DLEP destination address needed to 398 complete the traffic classification information is provided by a 399 modem when it identifies the traffic classification set in a 400 Destination Up message using the Credit Window Associate Data Item 401 defined below. 403 The Credit Window Traffic Classification Data Item SHOULD be included 404 by a modem in any Session Initialization Response Message that also 405 contains the DiffServ Aware Credit Windowing Extension Type Value in 406 the Extensions Supported Data Item. Updates to previously provided 407 traffic classifications or new traffic classifications MAY be sent by 408 a modem by including the data item in Session Update Messages. More 409 than one data item MAY be included in a message to provide 410 information on multiple traffic classifiers. 412 The set of traffic classification information provided in the data 413 item is identified using a Traffic Classification Identifier, or TID. 414 Addition information, e.g., the list DSCPs associated with a credit 415 window, is provided in a variable series of Queue Parameter sub-data 416 items. Note that to be used, a TID must be listed in a Credit Window 417 Associate Data Item. 419 The format of the Credit Window Traffic Classification Data Item is: 421 0 1 2 3 422 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 423 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 424 | Data Item Type | Length | 425 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 426 |Traffic Class. Identifier (TID)| Num SDIs | Reserved | 427 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 428 | Traffic Classification Sub Data Item 1 | 429 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 430 : ... : 431 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 432 | Traffic Classification Sub Data Item n | 433 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 435 Data Item Type: TBA5 437 Length: Variable 439 Per [RFC8175] Length is the number of octets in the data item, 440 excluding the Type and Length fields. 442 Traffic Classification Identifier (TID): 444 A 16-bit unsigned integer identifying a traffic classification 445 set. There is no restriction on values used by a modem, and there 446 is no requirement for sequential or ordered values. 448 Num SDIs: 450 An 8-bit unsigned integer indicating the number of Traffic 451 Classification Sub Data Items included in the data item. A value 452 of zero (0) is allowed and indicates that no traffic should be 453 matched against this TID. 455 Reserved: 457 MUST be set to zero by the sender (a modem) and ignored by the 458 receiver (a router). 460 Traffic Classification Sub Data Item: 462 Zero or more Traffic Classification Sub Data Items of the format 463 defined below MAY be included. The number MUST match the value 464 carried in the Num SDIs field. 466 A router receiving the Traffic Classification Data Item MUST locate 467 the traffic classification information that is associated with the 468 TID indicated in each received Data Item. If no associated traffic 469 classification information is found, the router MUST initialize a new 470 information set using the values carried in the Data Item. When 471 associated traffic classification information is found, the router 472 MUST update the information using the values carried in the Data 473 Item. In both cases, a router MUST also ensure that any data plane 474 state, see Section 4, that is associated with the TID is updated as 475 needed. 477 6.2.1. Traffic Classification Sub Data Item 479 All Traffic Classification Sub Data Items share a common format that 480 is patterned after the standard DLEP data item format, see [RFC8175] 481 Section 11.3. There is no requirement on, or meaning to Sub Data 482 Item ordering. Any errors or inconsistencies encountered in parsing 483 Sub Data Items are handled in the same fashion as any other Data Item 484 parsing error encountered in DLEP. 486 The format of the Traffic Classification Sub Data Item is: 488 0 1 2 3 489 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 490 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 491 | Sub Data Item Type | Length | 492 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 493 | Value... : 494 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 496 Sub Data Item Type: 498 A 16-bit unsigned integer that indicates the type and 499 corresponding format of the data item's Value field. Sub Data 500 Item Types are managed according to the IANA registry described in 501 Section 9.4. 503 Length: Variable 505 Copying [RFC8175], Length a 16-bit unsigned integer that is the 506 number of octets in the sub data item, excluding the Type and 507 Length fields. 509 6.2.2. DiffServ Traffic Classification Sub Data Item 511 The DiffServ Traffic Classification Sub Data Item is used to identify 512 the DSCPs associated with a specific credit window. Credit windows 513 are identified using CID values that have been previously been sent 514 by the modem or are listed in a Credit Window Initialization Data 515 Item carried in the same messages as the sub data item. DSCPs are 516 identified in a list of DiffServ fields. An implementation that does 517 not support DSCPs, and wants to use credit window flow control for 518 all traffic to a destination or destinations, would indicate with 0 519 DSCPs. 521 The format of the DiffServ Traffic Classification Sub Data Item is: 523 0 1 2 3 524 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 525 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 526 | Must be two (2) | Length | 527 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 528 | Credit Window Identifier (CID)| Num DSCPs | DS Field 1 | 529 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 530 | DS Field 2 | ... | DS Field n | 531 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 533 Length: Variable 535 Length is the number of octets in the sub data item. It is equal 536 to seven (7) plus the value of the Num DSCPs field. 538 Credit Window Identifier (CID): 540 A 16-bit unsigned integer identifying a credit window that has 541 been identified in a Credit Window Initialization Data Item, see 542 Section 6.1. Unknown CID values SHOULD be reported and result in 543 associated traffic being dropped. 545 Num DSCPs: 547 An 8-bit unsigned integer indicating the number of DSCPs carried 548 in the sub data item. A zero (0) indicates a (wildcard) match 549 against any DSCP value. 551 DS Field: 553 Each DS Field is an 8-bit whose definition is the same as 554 [RFC2474]. 556 0 1 2 3 4 5 6 7 557 +---+---+---+---+---+---+---+---+ 558 | DSCP | CU | 559 +---+---+---+---+---+---+---+---+ 561 DSCP: differentiated services codepoint 562 CU: currently unused, MUST be zero 564 A router receiving the DiffServ Traffic Classification Sub Data Item 565 MUST validate the information on receipt prior to the information and 566 data plan update described earlier in this section. The credit 567 window associated with the CID indicated in each Data Item must be 568 located. It is important to note that the CID value may be present 569 in a Credit Window Initialization Data Item carried in the same 570 message as the Sub Data Item. If the CID is not located, the it MUST 571 be treated as an error as described above. 573 In the case there are no unknown CIDs, the receiver MUST ensure that 574 each DS Field value is listed only once across the whole Credit 575 Window Traffic Classification Data Item. Note, this check is across 576 the Data Item and not the individual Sub Data Item. If the same DS 577 Field value is listed more than once within the same Credit Window 578 Traffic Classification Data Item, the Data Item MUST be treated as an 579 error as described above. 581 6.3. Credit Window Associate 583 The Credit Window Associate Data Item is used by a modem to associate 584 traffic classification information with a destination. The traffic 585 classification information is identified using a TID value that has 586 been previously been sent by the modem or is listed in a Credit 587 Window Traffic Classification Data Item carried in the same message 588 as the data item. 590 A single Credit Window Associate Data Item MUST be included in all 591 Destination Up and Destination Update Messages sent by a modem when 592 the use of the extension defined in this document is agreed upon, see 593 Section 3. 595 The format of the Credit Window Traffic Classification Data Item is: 597 0 1 2 3 598 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 599 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 600 | Data Item Type | Length (2) | 601 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 602 |Traffic Class. Identifier (TID)| 603 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 605 Data Item Type: TBA6 607 Length: 2 609 Per [RFC8175] Length is the number of octets in the data item, 610 excluding the Type and Length fields. 612 Traffic Classification Identifier (TID): 614 A 16-bit unsigned integer identifying a traffic classification set 615 that has been identified in a Credit Window Traffic Classification 616 Data Item, see Section 6.2. Unknown TID values SHOULD be reported 617 and result in associated traffic being dropped. 619 A router that receives the Credit Window Associate Data Item MUST 620 locate the traffic classification information indicated by the 621 received TID. If no corresponding information can be located, the 622 Data Item MUST be treated as an error as described above. Once the 623 traffic classification information is located, it MUST be associated 624 with the destination and the router MUST ensure that any data plane 625 state, see Section 4, that is associated with the TID is updated as 626 needed. 628 6.4. Credit Window Credit Grant 630 The Credit Window Credit Grant data item is used by a modem to 631 provide credits to a router. One or more Credit Window Grant Data 632 Items MAY be carried in the DLEP Destination Up, Destination Announce 633 Response, Destination Update, and Credit Control Messages. Multiple 634 Credit Window Grant Data Items in a single message are used to 635 indicate different credit values for different credit windows. In 636 all message types, this data item provides an additional number of 637 octets to be added to the indicated credit window. Credit window are 638 identified via using using CID values that have been previously been 639 sent by the modem or are listed in a Credit Window Initialization 640 Data Item carried in the same messages as the Data Item. 642 The format of the Credit Window Grant Data Item is: 644 0 1 2 3 645 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 646 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 647 | Data Item Type | Length (12) | 648 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 649 | Credit Window Identifier (CID)| Reserved | 650 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 651 | Additional Credits : 652 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 653 : Additional Credits | 654 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 656 Data Item Type: TBA7 658 Length: 12 659 Per [RFC8175], Length is the number of octets in the data item, 660 excluding the Type and Length fields. It will equal 8 plus the 661 number of CID fields carried in the data item and MUST be at least 662 9. 664 Credit Window Identifier (CID): 666 A 16-bit unsigned integer identifying a credit window that has 667 been identified in a Credit Window Initialization Data Item, see 668 Section 6.1. Unknown CID values SHOULD be reported and ignored. 670 Additional Credit: 672 A 64-bit unsigned integer representing the credits, in octets, to 673 be added to the Credit Window. This value includes MAC headers as 674 seen on the link between the modem and router. 676 When receiving this data item, a router MUST identify the credit 677 window indicated by the CID. If the CID is not known to the router, 678 it SHOULD report or log this information and discard the Data Item. 679 It is important to note that while this data item can be received in 680 a destination specific message, credit windows are managed 681 independently from the destination identified in the message carrying 682 this Data Item, and the indicated CID MAY even be disjoint from the 683 identified destination. 685 Once the credit window is identified, the credit window size MUST be 686 increased by the value contained in the Additional Credits field. If 687 the increase results in a window overflow, i.e., the size of the 688 credit window after the increase is smaller than the original credit 689 window size, the Credit Window must be set to its maximum 690 (0xFFFFFFFFFFFFFFFF). 692 Independent of the received message, the receiving router MUST send a 693 Credit Window Window Status data item or items reflecting the 694 resulting Credit Window value of the updated credit window. When the 695 Credit Grant data item is received in a Destination Up Message, the 696 Credit Window Window Status data item(s) MUST be sent in the 697 corresponding Destination Up Response Message. In all other cases, a 698 Credit Control Message MUST be sent. 700 6.5. Credit Window Status 702 The Credit Window Status data item is used by a router to report the 703 current credit window size to its peer modem. One or more Credit 704 Window Status data items MAY be carried in a Destination Up Response 705 Message or a Credit Control Response Message. As discussed above, 706 the Destination Up Response Message is used when the data item is 707 sent in response to a Destination Up Message, and the Credit Control 708 Response Message is sent in response to a Credit Control Message. 709 Multiple Credit Window Window Status data items in a single message 710 are used to indicated different sizes of different credit windows. 711 Similar to the Credit Window Grant, credit windows are identified 712 using CID values that have been previously been sent by the modem. 714 The format of the Credit Window Window Status Data Item is: 716 0 1 2 3 717 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 718 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 719 | Data Item Type | Length (12) | 720 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 721 | Credit Window Identifier (CID)| Reserved | 722 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 723 | Credit Window Size : 724 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 725 : Credit Window Size | 726 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 728 Data Item Type: TBA8 730 Length: 12 732 Per [RFC8175] Length is the number of octets in the data item, 733 excluding the Type and Length fields. It will equal 8 plus the 734 number of CID fields carried in the data item and MUST be at least 735 9. 737 Credit Window Identifier (CID): 739 A 16-bit unsigned integer identifying a credit window that has 740 been identified in a Credit Window Initialization Data Item, see 741 Section 6.1. 743 Credit Window Size: 745 A 64-bit unsigned integer, indicating the current number of 746 credits, in octets, available for the router to send to the modem. 747 This is referred to as the Modem Receive Window in 748 [I-D.ietf-manet-credit-window]. 750 When receiving this data item, a modem MUST identify the credit 751 window indicated by the CID. If the CID is not known to the modem, 752 it SHOULD report or log this information and discard the Data Item. 753 As with the Credit Window Grant Data Item, the CID MAY be unrelated 754 to the Destination indicated in the message carrying the Data Item. 756 Once the credit window is identified, the modem SHOULD check the 757 received Credit Window Size field value against the outstanding 758 credit window's available credits at the time the most Credit Window 759 Initialization or Grant data item associated with the indicated CID 760 was sent. If the values significantly differ, i.e., greater than can 761 be accounted for based on observed data frames, then the modem SHOULD 762 send a Credit Window Initialization Data Item to reset the associated 763 credit window size to the modem's current view of the available 764 credits. As defined above, Credit Window Initialization Data Items 765 are sent in Session Update Messages. When multiple data items need 766 to be sent, they SHOULD be combined into a single message when 767 possible. Alternatively, and also in cases where there are small 768 differences, the modem MAY adjust the values sent in Credit Window 769 Grant data items to account for the reported Credit Window. 771 6.6. Credit Window Request 773 The Credit Window Request Data Item data item is used by a router to 774 request additional credits for particular credit windows. Credit 775 Window Request Data Items are carried in Credit Control Messages, and 776 only one Credit Window Request data item SHOULD be present in a 777 message. 779 Credit windows identified using a CID as defined above in 780 Section 6.1. Multiple CIDs MAY be present to allow for the case 781 where the router identifies that credits are needed in multiple 782 credit windows. The special CID value of 0xFFFFFFFF is used to 783 indicate that a credit request is being made across all queues. 785 The format of the Credit Window Request Data Item is: 787 0 1 2 3 788 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 789 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 790 | Data Item Type | Length | 791 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 792 | Credit Window Identifier (CID)| ... : 793 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 794 : ... | Credit Window Identifier (CID)| 795 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 797 [LB note: a list of CIDs is now supported as is special value 255.] 799 Data Item Type: TBA9 801 Length: Variable 802 Per [RFC8175] Length is the number of octets in the data item, 803 excluding the Type and Length fields. It will equal the number of 804 CID fields carried in the data item and MUST be at least 1. 806 Credit Window Identifier (CID): 808 One or more 16-bit fields used to indicate a credit window that 809 has been identified in a Credit Window Initialization Data Item, 810 see Section 6.1. The special value of 0xFFFFFFFF indicates that 811 the request applies to all CIDs. 813 A modem receiving this data item MUST provide a Credit Increment for 814 the indicated credit windows via Credit Window Grant Data Items 815 carried in a new Credit Control Message. Multiple values and queue 816 indexes SHOULD be combined into a single Credit Control Message when 817 possible. Unknown CID values SHOULD be reported or logged and then 818 ignored by the modem. 820 7. Compatibility 822 Sessions established with both peers identified as supporting the 823 DiffServ Aware Credit Windowing Extension Type, see Section 3, MUST 824 NOT use the [I-D.ietf-manet-credit-window] defined Credit data items. 825 If a node supporting the extension defined in this document, receives 826 a [I-D.ietf-manet-credit-window] defined data item, the recipient 827 MUST ignore the received information. 829 8. Security Considerations 831 The extension introduces a DiffServ awareness to the mechanisms 832 defined in [I-D.ietf-manet-credit-window]. The extension does not 833 inherently introduce any additional threats above those documented in 834 [RFC8175]. The approach taken to Security in that document and 835 [I-D.ietf-manet-credit-window] apply equally when running the 836 extension defined in this document. 838 9. IANA Considerations 840 This document requests the assignment of 5 values by IANA. All 841 assignments are to registries defined by [RFC8175]. 843 9.1. Extension Type Value 845 This document requests 1 new assignment to the DLEP Extensions 846 Registry named "Extension Type Values" in the range with the 847 "Specification Required" policy. The requested value is as follows: 849 +------+---------------------------------+ 850 | Code | Description | 851 +------+---------------------------------+ 852 | TBA1 | DiffServ Aware Credit Windowing | 853 +------+---------------------------------+ 855 Table 1: Requested Extension Type Value 857 9.2. Message Values 859 This document requests 2 new assignments to the DLEP Message Registry 860 named "Message Values" in the range with the "Specification Required" 861 policy. The requested values are as follows: 863 +-----------+-------------------------+ 864 | Type Code | Description | 865 +-----------+-------------------------+ 866 | TBA2 | Credit Control | 867 | | | 868 | TBA3 | Credit Control Response | 869 +-----------+-------------------------+ 871 Table 2: Requested Message Values 873 9.3. Data Item Values 875 This document requests the following new assignments to the DLEP Data 876 Item Registry named "Data Item Values" in the range with the 877 "Specification Required" policy. The requested values are as 878 follows: 880 +-----------+--------------------------------------+ 881 | Type Code | Description | 882 +-----------+--------------------------------------+ 883 | TBA4 | Credit Window Initialization | 884 | | | 885 | TBA5 | Credit Window Traffic Classification | 886 | | | 887 | TBA6 | Credit Window Association | 888 | | | 889 | TBA7 | Credit Window Grant | 890 | | | 891 | TBA8 | Credit Window Status | 892 | | | 893 | TBA9 | Credit Window Request | 894 +-----------+--------------------------------------+ 896 Table 3: Requested Data Item Values 898 9.4. DLEP Sub Data Item Registry 900 Upon approval of this document, IANA is requested to create a new 901 DLEP registry, named "Sub Data Item Type Values". The registry shall 902 identify the type code value, the Data Item which may use the value, 903 and a description of the value. While the same value may be reused 904 in different data items, this is not recommended at this time. 906 The following table provides initial registry values and the 907 [RFC8126] defined policies that should apply to the registry: 909 +-------------+-----------------------------+-----------------------+ 910 | Type Code | Valid Data Items | Description | 911 +-------------+-----------------------------+-----------------------+ 912 | 0 | N/A | Reserved | 913 | | | | 914 | 1 | N/A | Reserved (for pause | 915 | | | sub-DI) | 916 | | | | 917 | 2 | (TBD4) Credit Window | DiffServ Traffic | 918 | | Traffic Classification | Classification | 919 | | | | 920 | 2-65407 | | Specification | 921 | | | Required | 922 | | | | 923 | 65408-65534 | | Private Use | 924 | | | | 925 | 65535 | | Reserved | 926 +-------------+-----------------------------+-----------------------+ 928 Table 4: Initial Registry Values 930 10. References 932 10.1. Normative References 934 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 935 Requirement Levels", BCP 14, RFC 2119, 936 DOI 10.17487/RFC2119, March 1997, 937 . 939 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 940 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 941 May 2017, . 943 [RFC8175] Ratliff, S., Jury, S., Satterwhite, D., Taylor, R., and B. 944 Berry, "Dynamic Link Exchange Protocol (DLEP)", RFC 8175, 945 DOI 10.17487/RFC8175, June 2017, 946 . 948 10.2. Informative References 950 [I-D.ietf-manet-credit-window] 951 Ratliff, S., "Credit Windowing extension for DLEP", draft- 952 ietf-manet-credit-window-07 (work in progress), November 953 2016. 955 [RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black, 956 "Definition of the Differentiated Services Field (DS 957 Field) in the IPv4 and IPv6 Headers", RFC 2474, 958 DOI 10.17487/RFC2474, December 1998, 959 . 961 [RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., 962 and W. Weiss, "An Architecture for Differentiated 963 Services", RFC 2475, DOI 10.17487/RFC2475, December 1998, 964 . 966 [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for 967 Writing an IANA Considerations Section in RFCs", BCP 26, 968 RFC 8126, DOI 10.17487/RFC8126, June 2017, 969 . 971 Appendix A. Acknowledgments 973 The sub data item format was inspired by Rick Taylor's "Data Item 974 Containers". He also proposed the separation of credit windows from 975 traffic classification at IETF98. 977 Appendix B. Open and Resolved Issues 979 This section captures issues that are open or have been addressed 980 since the document has become a WG draft. This section will be 981 removed before submission for publication. 983 B.1. Merge with [I-D.ietf-manet-credit-window] 985 There has been discussion within the WG that this document should be 986 merged with [I-D.ietf-manet-credit-window]. The timing of this is 987 TBD. The authors would like to reach closure on some of the 988 remaining open issues before embarking on this merge, but are open to 989 discussion with the WG and other authors. 991 B.2. Supporting Router Limits 993 Routers may have limits on the number of queues that they can support 994 and, perhaps, if per destination queues can even be supported at all. 995 There is no current way for a router to communicate these limits to a 996 modem or for a router to indicate that the identified queue 997 information cannot be supported. Support for these cases clearly 998 needs to be addressed. 1000 This issue was reported by Stan Ratliff . 1002 B.3. Absolute vs Increment 1004 Stan Ratliff suggested an approach to 1005 simplify credit synchronization and re-synchronization by always 1006 passing the credit window size rather than credit window increments. 1007 This is an interesting idea that needs to be explored and perhaps 1008 experimented with. 1010 B.4. Bidirectional Flow Control (closed) 1012 One of the key differences between this draft and 1013 [I-D.ietf-manet-credit-window] is that this document only supports 1014 flow control in one direction, i.e., for traffic sent from a router 1015 to a modem, while the other credit-window draft supports it in both 1016 directions. 1018 This was a conscious choice, made out of the desire to keep the 1019 extension as simple as possible and to provide what is really 1020 expected to be used. Clearly the reason for being able to control 1021 traffic that is sent from the router to the modem/radio is pretty 1022 easily understood. Also, while bidirectional flow control existed in 1023 pre-dlep solutions, it wasn't really used. There is also no reason 1024 why router to modem flow control can't be defined at a later time - 1025 once there is an actual need. 1027 Based on a brief discussion on the WG list, and the absence of any 1028 advocates for bidirectional flow control, there is no current plan to 1029 add bidirectional flow control to this document. 1031 Authors' Addresses 1032 Bow-Nan Cheng 1033 Lincoln Laboratory 1034 Massachusetts Institute of Technology 1035 244 Wood Street 1036 Lexington, MA 02421-6426 1038 Email: bcheng@ll.mit.edu 1040 David Wiggins 1041 Lincoln Laboratory 1042 Massachusetts Institute of Technology 1043 244 Wood Street 1044 Lexington, MA 02421-6426 1046 Email: David.Wiggins@ll.mit.edu 1048 Lou Berger 1049 LabN Consulting, L.L.C. 1051 Email: lberger@labn.net