Network Working Group                                           B. Cheng
Internet-Draft                                                D. Wiggins
Intended status: Standards Track                      Lincoln Laboratory
Expires: September 14, 2017 May 3, 2018                                           L. Berger
                                                 LabN Consulting, L.L.C.
                                                          March 13,
                                                        October 30, 2017

             DLEP DiffServ Aware Credit Windowing Extension
              draft-ietf-manet-dlep-da-credit-extension-01
              draft-ietf-manet-dlep-da-credit-extension-02

Abstract

   This document defines an extension to the DLEP protocol that enables
   a DiffServ aware credit-windowing scheme for destination-specific and
   shared flow control.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   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 http://datatracker.ietf.org/drafts/current/. https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on September 14, 2017. May 3, 2018.

Copyright Notice

   Copyright (c) 2017 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info)
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Key Words . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Extension Overview  . . . . . . . . . . . . . . . . . . . . .   3
   3.  Extension Usage and Identification  . . . . . . . . . . . . .   4   5
   4.  Data Plane Considerations . . . . . . . . . . . . . . . . . .   4   5
   5.  Extension Messages  . . . . . . . . . . . . . . . . . . . . .   4   5
     5.1.  Credit Control Message  . . . . . . . . . . . . . . . . .   4   5
     5.2.  Credit Control Response Message . . . . . . . . . . . . .   5   6
   6.  Extension Data Items  . . . . . . . . . . . . . . . . . . . .   5   6
     6.1.  Queue Parameters  Credit Window Initialization  . . . . . . . . . . . . . .   7
     6.2.  Credit Window Traffic Classification  . . . . . . .   6
     6.2. . . .   9
       6.2.1.  Traffic Classification Sub Data Item  . . . . . . . .  11
       6.2.2.  DiffServ Aware (DA) Traffic Classification Sub Data Item . . . .  11
     6.3.  Credit Window Associate . . . . . . . . . . . . . . . . .  13
     6.4.  Credit Window Credit Grant  . . . . . . . . . . . .   8
     6.3.  DiffServ Aware (DA) . . .  14
     6.5.  Credit Window Status  . . . . . . . .  10
     6.4.  DiffServ Aware (DA) . . . . . . . . . .  15
     6.6.  Credit Window Request . . . . . . . . . . .  12 . . . . . . .  17
   7.  Compatibility . . . . . . . . . . . . . . . . . . . . . . . .  13  18
   8.  Security Considerations . . . . . . . . . . . . . . . . . . .  13  18
   9.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  13  18
     9.1.  Extension Type Value  . . . . . . . . . . . . . . . . . .  13  18
     9.2.  Message Values  . . . . . . . . . . . . . . . . . . . . .  14  19
     9.3.  Data Item Values  . . . . . . . . . . . . . . . . . . . .  14  19
     9.4.  DLEP Sub Data Item Registry . . . . . . . . . . . . . . .  20
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .  15  20
     10.1.  Normative References . . . . . . . . . . . . . . . . . .  15  20
     10.2.  Informative References . . . . . . . . . . . . . . . . .  15  21
   Appendix A.  Open and Resolved Issues . . . . .  Acknowledgments  . . . . . . . . .  15
     A.1.  Merge with [I-D.ietf-manet-credit-window] . . . . . . . .  15
     A.2.  Credit Windows Shared Across Destinations . .  21
   Appendix B.  Open and Resolved Issues . . . . . .  16
     A.3.  Supporting Router Limits . . . . . . . .  21
     B.1.  Merge with [I-D.ietf-manet-credit-window] . . . . . . . .  16
     A.4.  Absolute vs Increment  21
     B.2.  Supporting Router Limits  . . . . . . . . . . . . . . . .  22
     B.3.  Absolute vs Increment . .  16
     A.5.  Alternate Format Encoding . . . . . . . . . . . . . . . .  16
     A.6.  22
     B.4.  Bidirectional Flow
           Control (closed)  . . . . . . . . . . . . . . . . . . . .  17  22
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  17  22

1.  Introduction

   The Dynamic Link Event Protocol (DLEP) is defined in
   [I-D.ietf-manet-dlep]. [RFC8175].  It
   provides the exchange of link related control information between
   DLEP peers.  DLEP peers are comprised of a modem and a router.  DLEP
   defines a base set of mechanisms as well as support for possible
   extensions.  This document defines one such extension.

   The base DLEP specification does not include any flow control
   capability.  There are various flow control theoretically possible
   with DLEP.  For example, a credit-windowing scheme for destination-
   specific flow control which provides aggregate flow control for both
   modem and routers has been proposed in
   [I-D.ietf-manet-credit-window].

   This document defines a DLEP extension which provides an alternate
   flow control mechanism for DiffServ [RFC2475] traffic sent from a router to a modem.
   Flow control is provided for multiple DSCPs (differentiated services
   codepoint), which are grouped into provide using one or more logical sets "Credit Windows",
   each of logical queues.
   The extension defined in this document is referred to as "DiffServ
   Aware Credit Windowing" or, more simply, the "DA Credit" extension.

   This document defines a new DLEP Extension Type Value in Section 3 which is used to indicate the will typically be supported by an associated virtual or
   physical queue.  Traffic sent by a router will use of traffic
   classification information provided by the extension. modem to identify which
   traffic is associated with each credit window.  (For general
   background on traffic classification see [RFC2475] Section 2.3.)
   This document supports traffic classification based on DLEP
   destination and DiffServ [RFC2475] DSCPs (differentiated services
   codepoints).  Credit windows may be shared or dedicated on a per
   {destination, DSCP} tuple basis.  Said another way, the defined
   mechanism allows for credit windows to be shared across traffic sent
   to multiple DLEP destinations and DSCPs, or used exclusively for
   traffic sent to a particular destination and/or DSCP.  The extension
   also supports the "wildcard" matching of any DSCP.

   The extension defined in this document is referred to as "DiffServ
   Aware Credit Windowing" or, more simply, the "DA Credit" extension.
   The extension is structured to allow for reuse of the defined credit
   window based flow control with traffic classification techniques
   other than DiffServ, e.g., IEEE 802.1 Q priority code points or even
   5-tuple IP flows.

   This document defines a new DLEP Extension Type Value in Section 3
   which is used to indicate the use of the extension.  Two new messages
   are defined in Section 5, and four six new DLEP Data Items in Section 6.

1.1.  Key Words

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14, RFC 2119 [RFC2119].
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

2.  Extension Overview

   The DA Credit extension can be used to support credit based flow
   control of traffic sent from a router to a modem.  The extension can
   be used to support DiffServ and non-DiffServ based flow control.
   Both types of DLEP endpoints, i.e., a router and a modem, negotiate
   the use of extension during session initialization, see Section 5.2
   [I-D.ietf-manet-dlep].

   [RFC8175].  When using this extension, data is allowed to be sent by
   the router to the modem only when there are credits available.

   When the extension is to be used,

   Credits are managed on a modem passes per logical "Credit Windows" basis.  Each
   credit window can be thought of as corresponding to a queue within a
   modem.  Modems pass to the router information on its
   known DSCPs, if any.  DSCPs are grouped by logical queues, credit windows
   and identify each of
   which are given via a logical queue index.  The queue index zero (0) is
   special and is used for any DSCP value, including 0, which is not
   otherwise identified by "Credit Window Identifier", or "CID".  In
   addition to the modem.  The modem also provides a CID, credit window information includes an initial
   credit window size,
   in bytes, as well as the maximum size of the logical queue
   associated with each CID.  The maximum size is included for
   informative and, potential, future uses.  Currently, only DSCP to logical queue index value mapping is
   used in flow control operation.

   The DA Credit extension supports credit based flow control

   As mentioned above, traffic classification supported by this document
   is performed on a per
   MAC address destination, per queue index {destination, DSCP} tuple basis.  Modems provide  This means
   that, routers need the
   initial size combination of the DLEP identified destination
   and DSCP associated "Credit Window", i.e., with a CID in order to match traffic it sends to
   specific credit windows.  Modems provide the amount mapping of DSCPs to CIDs
   in
   octets (bytes) that may sets, each of which is identified via a "Traffic Classification
   Identifier" or "TID".  When a destination becomes reachable, a modem
   "Associates" (identifies) the TID to be used for traffic sent by the
   router to the modem, when that destination.  This use of CIDs, TIDs and association
   of a
   MAC TID to a DLEP destination becomes reachable and, optionally, when enables modem to share or dedicate
   resources as needed to match the specifics of its implementation and
   its attached transmission technology.

   Modems provide an initial credit window size at the time of "Credit
   Window Initialization".  Such initialization can take place during
   session initiation or any point thereafter.  It can also take place
   when rate information changes.  Additional "Credit Increments", Grants", i.e., increases in a
   increments to Credit Window size, are provided using a Destination Up
   or the new "Credit Control" messages. Message.  A router provides its view of
   the Credit Window, which is known as
   "status", "Status", in Destination Up
   Response and the new "Credit Control Response" messages. Messages.  Routers can
   also request credits using the new "Credit Control" message.

   Credit information, both grants and status, is provided in new credit
   grant related data items.  Each data item contains Message.

   When modems provide credits to a single credit
   value that applies router, they will need to one or more queue indexes.  Different (grant take into
   account any overhead of their attached transmission technology and status) values for different queue indexes can be provided
   map it into the credit semantics defined in a
   single message by including multiple grant data items.  The values
   indicate a number of octets (bytes), including this document.  In
   particular, the credit window is defined below to include per frame
   (packet) MAC headers on and this may not match the actual overhead of
   the
   router to modem link, attached transmission technology.  In that may case a direct
   mapping or an approximation will need to be sent.

   Note that credit information related made by the modem to different destination MAC
   addresses is always passed in different DLEP messages.
   provide appropriate credit values.

3.  Extension Usage and Identification

   The use of the extension defined in this document SHOULD be
   configurable.  To indicate that the DiffServ Aware Credit Windowing
   Extension is to be used, an implementation MUST include the DiffServ
   Aware Credit Windowing Type Value in the Extensions Supported Data
   Item.  The Extensions Supported Data Item is sent and processed
   according to [I-D.ietf-manet-dlep]. [RFC8175].

   The DiffServ Aware Credit Windowing Extension Type Value is TBA1, see
   Section 9.

4.  Data Plane Considerations

   When the use of the extension defined in this document is agreed upon
   per standard DLEP processing, see Section 3, a router MUST NOT send
   data to a modem for forwarding when there are no credits available in
   the associated Credit Window.

5.  This document defines credit windows
   in octets.  A credit window value MUST be larger than the number of
   octets contained in a packet, including any MAC headers used between
   the router and the modem, in order for the router to send the packet
   to a modem for forwarding.  The credit window is decremented by the
   number of sent octets.

   A router MUST identify the credit window associated with traffic sent
   to a modem based on the traffic classification information provided
   in the data items defined in this document.  The definitions support
   identification based on DLEP destination and, at the modem's
   discretion, DSCPs.  Note that routers will typically view a DLEP
   destination as the next hop.

5.  Extension Messages

   Two new messages are defined by this extension: the Credit Control
   and the Credit Control Response message. Message.  Sending and receiving both
   message types MUST be supported by any implementation that advertises
   use of this extension per Section 3.

5.1.  Credit Control Message

   Credit Control Messages are sent by modems to provide Credit
   Increments. credit window
   increases.  For messages sent by modems, only one message per MAC
   address can be
   outstanding at one time.  That is, a modem MUST NOT send a second (or
   any subsequent) message containing the same MAC
   Address Credit Control Message until a Credit Control
   Response message Message is received from its peer router with that MAC address. router.

   Credit Control Messages MAY be sent by routers, e.g., to request
   credits or provide window status.  No specific response message is
   required from a modem from a message transaction perspective.  There
   is no restriction on when a router can send a Credit Control Message.

   [TBD: Should anything be said about sending, or limiting, multiple
   credit requests?]

   The Message Type value in the DLEP Message Header is set to TBA2.

   The message MUST contain a DLEP MAC Address Data Item.

   A message sent by a modem, MUST contain one or more DiffServ Aware Credit Window
   Grant data items Data Items as defined below in Section 6.2. 6.4.  A router receiving
   this message MUST respond with a Credit Control Response Message.

   A message sent by a router, MUST contain the DiffServ Aware Credit Window Request data item
   Data Item defined below in Section 6.4. 6.6.  A modem receiving this
   message MUST provide a Credit Increment for process the indicated MAC
   address received message and queue indexes data item as defined
   below, which will result in credit window increments being provided
   via a Credit Window Grant Data Items carried in one more more new
   Credit Control Message.

   Specific processing associated with each Credit data item Data Item is provided
   below.

5.2.  Credit Control Response Message

   Credit Control Response Messages are sent by routers to report the
   current Credit Window for a destination.

   The Message Type value in the DLEP Message Header is set to TBA3.

   The message MUST contain a DLEP MAC Address Data Item.

   A message sent by a router, MUST contain one or more DiffServ Aware Credit Window
   Status data items as defined below in Section 6.3. 6.5.

   Specific processing associated with the DA Credit Window Window Status data
   item
   Data Item is provided below.

6.  Extension Data Items

   Four

   Six data items are defined by this extension.  The Queue Parameters Credit Window
   Initialization Data Item is used by a modem to provide information on the DSCPs it
   uses in forwarding. identify a credit
   window and set its size.  The DA Credit Grant Window Traffic Classification
   Data Item is used by a modem to
   provide credits identify a set which identifies which
   DSCPs are mapped to a router. credit window.  The Credit Window Association
   Data Item is used by a modem to identify which traffic classification
   set should be used when sending traffic to a particular DLEP
   identified destination.  The Credit Window Grant is used by a modem
   to provide additional credits to a router.  The DA Credit Request is
   used by a router to request additional credits.  The DA Credit Window
   Status is used to advertise the sender's view of number of available
   credits for state synchronization purposes.

   Any errors or inconsistencies encountered in parsing data items are
   handled in the same fashion as any other Data Item parsing error
   encountered in DLEP, see [RFC8175].  In particular, the node parsing
   the data item MUST terminate the session with a Status Data Item
   indicating Invalid Data.

   The defined data items and operations are have similar to objectives as
   those found in [I-D.ietf-manet-credit-window].  One notable
   difference from this extension is that in this document credits are
   never provided by the router to the modem.

6.1.  Queue Parameters  Credit Window Initialization

   The Queue Parameters Credit Window Initialization Data Item is used by a modem to indicate DSCP
   values that may be independently controlled.
   identify a credit window and set its size.  This data item MUST SHOULD be
   included in a any Session Initialization Response Message that also
   contains the DiffServ Aware Credit Windowing Extension Type Value in
   the Extensions Supported Data Item.  Updates to these parameters previously identified
   credit windows or new credit windows MAY be sent by a modem by
   including the data item in Session Update Messages.  More than one
   data item MAY be included in a message to provide information on
   multiple credit windows.

   The Queue Parameters Credit Window Initialization Data Item identifies DSCPs based on groups of
   logical queues.  The number of logical queues is variable as is a credit window
   using a Credit Window Identifier, or CID.  It also provides the
   number size
   of DSCPs associated with each queue.  A the identified credit window.  Finally, a queue size (in bytes) is
   provided for informational purposes.  An implementation that does
   not support DSCPs would indicate 1 queue with 0 DSCPs, and the number
   of bytes  Note that may to be used, a CID
   must be listed in its associated link transmit queue. a Credit Window Traffic Classification Data Item.

   The format of the Queue Parameters Credit Window Initialization Data Item is:

        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Data Item Type                | Length (16)                   |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |   Num Queues  | Scale | Credit Window Identifier (CID)|            Reserved           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |Num DSCPs Q0(0)|             Queue Size Q0                     |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Num DSCPs Q1  |             Queue Size Q1                     |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Num DSCPs Q2  |             Queue Size Q2
       |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                         Credit Value                          :                                ...
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       :                         Credit Value                          |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Num DSCPs Qn    Scale      |             Queue         Credit Window Size Qn                     |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |  DS Field Q1  |  DS Field Q1  |  DS Field Q1  |  DS Field Q2  |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       :                                ...            |  DS Field Qn                    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Data Item Type:  TBA4

   Length:  Variable  16

      Per [I-D.ietf-manet-dlep] [RFC8175] Length is the number of octets in the data item,
      excluding the Type and Length fields.

   Num Queues:

      An 8-bit

   Credit Window Identifier (CID):

      A 16-bit unsigned integer indicating the number of queues
      represented in the data item.  This field MUST contain identifying a credit window.  The value
      of
      at least one (1).  Note that 0xFFFFFFFF is reserved and MUST not be used in this number Data Item.
      There is one larger than no other restriction on values used by a modem, and there
      is no requirement for sequential or ordered values.

   Reserved:

      MUST be set to zero by the
      largest queue index value included sender (a modem) and ignored by the
      receiver (a router).

   Credit Value:

      A 64-bit unsigned integer representing the credits, in octets, to
      be applied to the data item. Credit Window.  This value includes MAC headers
      as seen on the link between the modem and router.

   Scale:

      An 4-bit 8-bit unsigned integer indicating the scale used in the Queue Credit
      Window Size fields.  The valid values are:

         Value  Scale
         ------------
             0   B - Bytes     (Octets)
             1  KB - Kilobytes (B/1024)
             2  MB - Megabytes (KB/1024)
             3  GB - Gigabytes (MB/1024)

   Reserved:

      MUST be set to zero by the sender (a modem) and ignored by the
      receiver (a router).

   Num DSCPs Qn:

      An 8-bit unsigned integer indicating the number of DSCPs
      associated with the indexed queue.  Other than the special case
      covered in the next paragraph, this field MUST contain a value of
      at least one (1).  Queue indexes start at zero (0) and the maximum
      queue index "Qn" is one less than the value carried in the Num
      Queues field.  Queue indexes are implicit in the position in the
      data item.

      Queue index zero "Q0" is a special case.  It is used for any
      traffic that does not carry a DSCP value represented in the data
      item.  Therefore the value of the Queue index zero field, "Num
      DSCPs Q0", field MUST be zero (0).

   Queue Size Qn:

   Credit Window Size:

      A 24-bit unsigned integer representing the maximum size, in the
      octet scale indicated by the Scale field, of the queue supporting
      traffic with the DSCPs associated with the queue index.

   DS Field Qn:

      The data item credit
      window.

   A router that receives a Credit Window Initialization Data Item MUST
   locate the credit window that is associated with the CID indicated in
   each received Data Item.  If no associated credit window is found,
   the router MUST initialize a new credit window using the values
   carried in the Data Item.  When an associated credit window is found,
   the router MUST update the credit window using the values carried in
   the Data Item.  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 the modem.

6.2.  Credit Window Traffic Classification

   The Credit Window Traffic Classification Data Item is used by a modem
   to provide information to enable router to identify the credit window
   associated with traffic the router sends.  Each data item includes a
   set of credit windows and provides traffic classification for each
   window.  The data item is defined to support classification based on
   DSCPs, but is designed to be extensible for future traffic
   classification types.  The data item is not required to provide full
   traffic classification information.  In the context of the definition
   included in this document, the DLEP destination address needed to
   complete the traffic classification information is provided by a
   modem when it identifies the traffic classification set in a
   Destination Up message using the Credit Window Associate Data Item
   defined below.

   The Credit Window Traffic Classification Data Item SHOULD be included
   by a modem in any Session Initialization Response Message that also
   contains the DiffServ Aware Credit Windowing Extension Type Value in
   the Extensions Supported Data Item.  Updates to previously provided
   traffic classifications or new traffic classifications MAY be sent by
   a modem by including the data item in Session Update Messages.  More
   than one data item MAY be included in a message to provide
   information on multiple traffic classifiers.

   The set of traffic classification information provided in the data
   item is identified using a Traffic Classification Identifier, or TID.
   Addition information, e.g., the list DSCPs associated with a credit
   window, is provided in a variable series of Queue Parameter sub-data
   items.  Note that to be used, a TID must be listed in a Credit Window
   Associate Data Item.

   The format of the Credit Window Traffic Classification Data Item is:

        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Data Item Type                | Length                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |Traffic Class. Identifier (TID)|   Num SDIs    |   Reserved    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |           Traffic Classification Sub Data Item 1              |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       :                                ...                            :
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |           Traffic Classification Sub Data Item n              |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Data Item Type:  TBA5

   Length:  Variable

      Per [RFC8175] Length is the number of octets in the data item,
      excluding the Type and Length fields.

    Traffic Classification Identifier (TID):

      A 16-bit unsigned integer identifying a traffic classification
      set.  There is no restriction on values used by a modem, and there
      is no requirement for sequential or ordered values.

   Num SDIs:

      An 8-bit unsigned integer indicating the number of Traffic
      Classification Sub Data Items included in the data item.  A value
      of zero (0) is allowed and indicates that no traffic should be
      matched against this TID.

   Reserved:

      MUST be set to zero by the sender (a modem) and ignored by the
      receiver (a router).

   Traffic Classification Sub Data Item:

      Zero or more Traffic Classification Sub Data Items of the format
      defined below MAY be included.  The number MUST match the value
      carried in the Num SDIs field.

   A router receiving the Traffic Classification Data Item MUST locate
   the traffic classification information that is associated with the
   TID indicated in each received Data Item.  If no associated traffic
   classification information is found, the router MUST initialize a new
   information set using the values carried in the Data Item.  When
   associated traffic classification information is found, the router
   MUST update the information using the values carried in the Data
   Item.  In both cases, a router MUST also ensure that any data plane
   state, see Section 4, that is associated with the TID is updated as
   needed.

6.2.1.  Traffic Classification Sub Data Item

   All Traffic Classification Sub Data Items share a common format that
   is patterned after the standard DLEP data item format, see [RFC8175]
   Section 11.3.  There is no requirement on, or meaning to Sub Data
   Item ordering.  Any errors or inconsistencies encountered in parsing
   Sub Data Items are handled in the same fashion as any other Data Item
   parsing error encountered in DLEP.

   The format of the Traffic Classification Sub Data Item is:

        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Sub Data Item Type            | Length                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                           Value...                            :
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Sub Data Item Type:

      A 16-bit unsigned integer that indicates the type and
      corresponding format of the data item's Value field.  Sub Data
      Item Types are managed according to the IANA registry described in
      Section 9.4.

   Length:  Variable

      Copying [RFC8175], Length a 16-bit unsigned integer that is the
      number of octets in the sub data item, excluding the Type and
      Length fields.

6.2.2.  DiffServ Traffic Classification Sub Data Item

   The DiffServ Traffic Classification Sub Data Item is used to identify
   the DSCPs associated with a specific credit window.  Credit windows
   are identified using CID values that have been previously been sent
   by the modem or are listed in a Credit Window Initialization Data
   Item carried in the same messages as the sub data item.  DSCPs are
   identified in a list of DiffServ fields.  An implementation that does
   not support DSCPs, and wants to use credit window flow control for
   all traffic to a destination or destinations, would indicate with 0
   DSCPs.

   The format of the DiffServ Traffic Classification Sub Data Item is:

        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Must be two (2)               | Length                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Credit Window Identifier (CID)|   Num DSCPs   |   DS Field 1  |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |   DS Field 2  |      ...      |   DS Field n  |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Length:  Variable

      Length is the number of octets in the sub data item.  It is equal
      to seven (7) plus the value of the Num DSCPs field.

   Credit Window Identifier (CID):

      A 16-bit unsigned integer identifying a credit window that has
      been identified in a Credit Window Initialization Data Item, see
      Section 6.1.  Unknown CID values SHOULD be reported and result in
      associated traffic being dropped.

   Num DSCPs:

      An 8-bit unsigned integer indicating the number of DSCPs carried
      in the sub data item.  A zero (0) indicates a (wildcard) match
      against any DSCP value.

   DS Field:

      Each DS Field is an 8-bit whose definition is the same as
      [RFC2474].

               0   1   2   3   4   5   6   7
             +---+---+---+---+---+---+---+---+
             |         DSCP          |  CU   |
             +---+---+---+---+---+---+---+---+

               DSCP: differentiated services codepoint
               CU:   currently unused, MUST be zero

   A router receiving the DiffServ Traffic Classification Sub Data Item
   MUST validate the information on receipt prior to the information and
   data plan update described earlier in this section.  The credit
   window associated with the CID indicated in each Data Item must be
   located.  It is important to note that the CID value may be present
   in a Credit Window Initialization Data Item carried in the same
   message as the Sub Data Item.  If the CID is not located, the it MUST
   be treated as an error as described above.

   In the case there are no unknown CIDs, the receiver MUST ensure that
   each DS Field value is listed only once across the whole Credit
   Window Traffic Classification Data Item.  Note, this check is across
   the Data Item and not the individual Sub Data Item.  If the same DS
   Field value is listed more than once within the same Credit Window
   Traffic Classification Data Item, the Data Item MUST be treated as an
   error as described above.

6.3.  Credit Window Associate

   The Credit Window Associate Data Item is used by a sequence of 8 bit DS Fields. modem to associate
   traffic classification information with a destination.  The
      position traffic
   classification information is identified using a TID value that has
   been previously been sent by the modem or is listed in a Credit
   Window Traffic Classification Data Item carried in the sequence identifies same message
   as the associated queue index.
      The number of DS Fields present should equal data item.

   A single Credit Window Associate Data Item MUST be included in all
   Destination Up and Destination Update Messages sent by a modem when
   the sum use of all Num
      DSCPs field values.

      The DS Field structure the extension defined in this document is agreed upon, see
   Section 3.

   The format of the same as [RFC2474]. Credit Window Traffic Classification Data Item is:

        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |         DSCP Data Item Type                |  CU Length (2)                    |
         +---+---+---+---+---+---+---+---+

           DSCP: differentiated services codepoint
           CU:   currently unused,
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |Traffic Class. Identifier (TID)|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Data Item Type:  TBA6

   Length:  2

      Per [RFC8175] Length is the number of octets in the data item,
      excluding the Type and Length fields.

    Traffic Classification Identifier (TID):

      A 16-bit unsigned integer identifying a traffic classification set
      that has been identified in a Credit Window Traffic Classification
      Data Item, see Section 6.2.  Unknown TID values SHOULD be reported
      and result in associated traffic being dropped.

   A router that receives the Credit Window Associate Data Item MUST
   locate the traffic classification information indicated by the
   received TID.  If no corresponding information can be located, the
   Data Item MUST be zero

6.2.  DiffServ Aware (DA) treated as an error as described above.  Once the
   traffic classification information is located, it MUST be associated
   with the destination and the router MUST ensure that any data plane
   state, see Section 4, that is associated with the TID is updated as
   needed.

6.4.  Credit Window Credit Grant

   The DiffServ Aware, or DA, Credit Window Credit Grant data item is used by a modem to
   provide credits to a router.  One or more DA Credit Window Grant data
   items Data
   Items MAY be carried in the DLEP Destination Up, Destination Announce
   Response, Destination Update, and Credit Control messages. Messages.  Multiple
   DA
   Credit Window Grant data items Data Items in a single message are used to indicated
   indicate different credit values for different logical queues. credit windows.  In Destination type messages, this data item provides the total
   number of octets available in the Credit Window to the destination
   indicated in the
   all message for the specified logical queues.  In the
   Credit Control message, types, this data item provides an additional number of
   octets to be added to the Credit Window to the destination indicated in the message for the specified logical queues.

   Logical queues credit window.  Credit window are
   identified via using a Queue Index as defined above in
   Section 6.1.  Multiple Queue Indexes MAY be present to allow for using CID values that have been previously been
   sent by the
   case where same credit information applies to multiple queues.  As
   mentioned above, multiple DA modem or are listed in a Credit Grant Window Initialization
   Data Items MAY be present
   to provide different queue-specific credit information Item carried in one
   message.  The special Queue Index value of 255 is used to indicate
   that the credit information applies to all queues. same messages as the Data Item.

   The format of the DA Credit Window Grant Data Item is:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Data Item Type                | Length (12)                   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Credit Value                          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         Credit value Window Identifier (CID)|            Reserved           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Queue Index  |               ...                     Additional Credits                        :
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      :                                ...            |  Queue Index                     Additional Credits                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Data Item Type:  TBA5  TBA7

   Length:  Variable  12
      Per [I-D.ietf-manet-dlep], [RFC8175], Length is the number of octets in the data item,
      excluding the Type and Length fields.  It will equal 8 plus the
      number of Queue Index CID fields carried in the data item and MUST be at least
      9.

   Credit Value: Window Identifier (CID):

      A 16-bit unsigned integer identifying a credit window that has
      been identified in a Credit Window Initialization Data Item, see
      Section 6.1.  Unknown CID values SHOULD be reported and ignored.

   Additional Credit:

      A 64-bit unsigned integer representing the credits, in octets, to
      be applied added to the Credit Window.  This value includes MAC headers
      as seen on the link between the modem and router.

   Queue Index:

      One or more 8-bit fields used to indicate a queue index defined by
      a Queue Parameters Data Item.  The special value of 255 indicates
      that includes MAC headers as
      seen on the information in link between the data item applies to all queue
      indexes.

   Receive processing of modem and router.

   When receiving this data item item, a router MUST identify the credit
   window indicated by the CID.  If the CID is based on not known to the message in which router,
   it SHOULD report or log this information and discard the Data Item.
   It is carried.  When important to note that while this data item is can be received in
   a Destination type destination specific message, credit windows are managed
   independently from the Credit Window of the indicated destination MAC address identified in the message carrying
   this Data Item, and the indicated queue indexes MUST CID MAY even be set to disjoint from the value contained in
   identified destination.

   Once the
   Credit Value field.

   When this data item credit window is received in a Credit Control message, the
   Credit Window of identified, the indicated destination MAC address and indicated
   queue indexes credit window size MUST be
   increased by the value contained in the Credit
   Value Additional Credits field.  If
   the increase results in a window overflow, i.e., the
   Credit Window resulting size of the
   credit window after the increase is smaller than the original Credit Window, credit
   window size, the Credit Window must be set to its maximum
   (0xFFFFFFFFFFFFFFFF).

   Independent of the received message, the receiving router MUST send a
   DA
   Credit Window Window Status data item or items reflecting the
   resulting Credit Window value of each modified queue index. the updated credit window.  When the
   Credit Grant data item is received in a Destination Up message, Message, the DA
   Credit Window Window Status data item(s) MUST be sent in the
   corresponding Destination Up Response message. Message.  In all other cases, the a
   Credit Control message Message MUST be sent.

6.3.  DiffServ Aware (DA)

6.5.  Credit Window Status

   The DiffServ Aware, or DA, Credit Window Status data item is used by a router to report the
   current Credit Window credit window size to its peer modem.  One or more DA Credit
   Window Status data items MAY be carried in a Destination Up Response message
   Message or a Credit Control Response message. Message.  As discussed above,
   the Destination Up Response message Message is used when the data item is
   sent in response to a Destination Up message, Message, and the Credit Control
   Response message Message is sent in response to a Credit Control message. Message.
   Multiple DA Credit Window Window Status data items in a single message
   are used to indicated different credit window values
   for different logical queues.

   Similar to the DA Credit Grant, logical queues are identified using a
   Queue Index as defined above in Section 6.1.  Multiple Queue Indexes
   MAY be present to allow for the case where same credit information
   applies to multiple queues.  Multiple DA Credit Window Status Data
   Items are used to provide sizes of different queue-specific credit window
   information in one message.  The special Queue Index value of 255 is
   used to indicate that windows.
   Similar to the Credit Window information applies to all
   queues. Grant, credit windows are identified
   using CID values that have been previously been sent by the modem.

   The format of the DA Credit Window Window Status Data Item is:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Data Item Type                | Length (12)                   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Credit Window                         :
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      :                         Credit Window Identifier (CID)|            Reserved           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Queue Index  |               ...                       Credit Window Size                      :
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      :                                ...            |  Queue Index                       Credit Window Size                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Data Item Type:  TBA6  TBA8

   Length:  Variable  12

      Per [I-D.ietf-manet-dlep] [RFC8175] Length is the number of octets in the data item,
      excluding the Type and Length fields.  It will equal 8 plus the
      number of Queue Index CID fields carried in the data item and MUST be at least
      9.

   Credit Window: Window Identifier (CID):

      A 16-bit unsigned integer identifying a credit window that has
      been identified in a Credit Window Initialization Data Item, see
      Section 6.1.

   Credit Window Size:

      A 64-bit unsigned integer, indicating the current number of
      credits, in octets, available for the router to send to the modem.
      This is referred to as the Modem Receive Window in
      [I-D.ietf-manet-credit-window].

   Queue Index:

      One or more 8-bit fields used to indicate

   When receiving this data item, a queue index defined modem MUST identify the credit
   window indicated by
      a Queue Parameters the CID.  If the CID is not known to the modem,
   it SHOULD report or log this information and discard the Data Item.  The special value of 255 indicates
      that
   As with the information in Credit Window Grant Data Item, the data item applies CID MAY be unrelated
   to all queue
      indexes.

   The receiving the Destination indicated in the message carrying the Data Item.

   Once the credit window is identified, the modem SHOULD check the
   received Credit Window Size field value against the outstanding credits
   credit window's available credits at the time the last most Credit
   Increment Window
   Initialization or Grant data item associated with the indicated MAC address and Queue Indexes
   were CID
   was sent.  If the values significantly differ, i.e., greater than can
   be accounted for based on observed data frames, then the modem SHOULD
   send a Destination Update message carrying a DA Credit Grant
   data item Window Initialization Data Item to reset the associated Credit Window(s)
   credit window size to the modem's current view of the available
   credits.  As defined above, Credit Window Initialization Data Items
   are sent in Session Update Messages.  When multiple data item
   indicated value.  Multiple values and queue indexes items need
   to be sent, they SHOULD be combined into a single Destination Update Control message when
   possible.  Alternatively, and also in cases where there are small
   differences, the modem MAY adjust the values sent in DA Credit Window
   Grant data items to account for the reported Credit Window.

6.4.  DiffServ Aware (DA)

6.6.  Credit Window Request

   The DiffServ Aware, or DA, Credit Window Request Data Item data item is used by a router to
   request additional credits for a specific destination
   and Queue Index associated Credit window.  DA particular credit windows.  Credit
   Window Request data
   items Data Items are carried in Credit Control messages, Messages, and
   only one DA Credit Window Request data item SHOULD be present in a
   message.

   Logical queues are

   Credit windows identified using a Queue Index CID as defined above in
   Section 6.1.  Multiple Queue Indexes CIDs MAY be present to allow for the
   case where the credit request applies to case
   where the router identifies that credits are needed in multiple queues.
   credit windows.  The special Queue Index CID value of 255 0xFFFFFFFF is used to
   indicate that a credit request is being made across all queues.

   The format of the DA Credit Window Request Data Item is:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Data Item Type                | Length                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Queue Index  | Credit Window Identifier (CID)|               ...             :
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      :               ...             |  Queue Index  | Credit Window Identifier (CID)|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   [LB note: a list of Queue Indexes CIDs is now supported as is special value 255.]

   Data Item Type:  TBA7  TBA9

   Length:  Variable
      Per [I-D.ietf-manet-dlep] [RFC8175] Length is the number of octets in the data item,
      excluding the Type and Length fields.  It will equal the number of Queue Index
      CID fields carried in the data item and MUST be at least 1.

   Queue Index:

   Credit Window Identifier (CID):

      One or more 8-bit 16-bit fields used to indicate a queue index defined by credit window that
      has been identified in a Queue Parameters Credit Window Initialization Data Item. Item,
      see Section 6.1.  The special value of 255 0xFFFFFFFF indicates that
      the request applies to all queue indexes. CIDs.

   A modem receiving this data item MUST provide a Credit Increment for
   the indicated MAC address and queue indexes credit windows via a DA Credit Window Grant Data Items
   carried in a new Credit Control Message.  Multiple values and queue
   indexes SHOULD be combined into a single Credit Control message Message when
   possible.  Unknown CID values SHOULD be reported or logged and then
   ignored by the modem.

7.  Compatibility

   Sessions established with both peers identified as supporting the
   DiffServ Aware Credit Windowing Extension Type, see Section 3, SHOULD MUST
   NOT use the [I-D.ietf-manet-credit-window] defined Credit data items.
   If a node supporting the extension defined in this document, receives
   a [I-D.ietf-manet-credit-window] defined data item, the recipient
   MUST treat ignore the received credit information as applying to Queue Index
   zero (0). information.

8.  Security Considerations

   The extension introduces a DiffServ awareness to the mechanisms
   defined in [I-D.ietf-manet-credit-window].  The extension does not
   inherently introduce any additional threats above those documented in
   [I-D.ietf-manet-dlep].
   [RFC8175].  The approach taken to Security in that document and
   [I-D.ietf-manet-credit-window] apply equally when running the
   extension defined in this document.

9.  IANA Considerations

   This document requests the assignment of 5 values by IANA.  All
   assignments are to registries defined by [I-D.ietf-manet-dlep]. [RFC8175].

9.1.  Extension Type Value

   This document requests 1 new assignment to the DLEP Extensions
   Registry named "Extension Tyoe Type Values" in the range with the
   "Specification Required" policy.  The requested value is as follows:

                +------+---------------------------------+
                | Code | Description                     |
                +------+---------------------------------+
                | TBA1 | DiffServ Aware Credit Windowing |
                +------+---------------------------------+

                  Table 1: Requested Extension Type Value

9.2.  Message Values

   This document requests 2 new assignments to the DLEP Message Registry
   named "Message Values" in the range with the "Specification Required"
   policy.  The requested values are as follows:

                  +-----------+-------------------------+
                  | Type Code | Description             |
                  +-----------+-------------------------+
                  | TBA2      | Credit Control          |
                  |           |                         |
                  | TBA3      | Credit Control Response |
                  +-----------+-------------------------+

                     Table 2: Requested Message Values

9.3.  Data Item Values

   This document requests 4 the following new assignments to the DLEP Data
   Item Registry named "Data Item Values" in the range with the
   "Specification Required" policy.  The requested values are as
   follows:

                  +-----------+-------------------------+

           +-----------+--------------------------------------+
           | Type Code | Description                          |
                  +-----------+-------------------------+
           +-----------+--------------------------------------+
           | TBA4      | Queue Parameters Credit Window Initialization         |
           |           |                                      |
           | TBA5      | DA Credit Grant Window Traffic Classification |
           |           |                                      |
           | TBA6      | DA Credit Window Status Association            |
           |           |                                      |
           | TBA7      | DA Credit Request Credit Window Grant                  |
           |           |                                      |
           | TBA8      | Credit Window Status                 |
           |           |                                      |
           | TBA9      | Credit Window Request                |
           +-----------+--------------------------------------+

                    Table 3: Requested Data Item Values

9.4.  DLEP Sub Data Item Registry

   Upon approval of this document, IANA is requested to create a new
   DLEP registry, named "Sub Data Item Type Values".  The registry shall
   identify the type code value, the Data Item which may use the value,
   and a description of the value.  While the same value may be reused
   in different data items, this is not recommended at this time.

   The following table provides initial registry values and the
   [RFC8126] defined policies that should apply to the registry:

   +-------------+-----------------------------+-----------------------+
   | Type Code   | Valid Data Items            | Description           |
   +-------------+-----------------------------+-----------------------+
   | 0           | N/A                         | Reserved              |
   |             |                             |                       |
   | 1           | N/A                         | Reserved (for pause   |
   |             |                             | sub-DI)               |
   |             |                             |                       |
   | 2           | (TBD4) Credit Window        | DiffServ Traffic      |
   |             | Traffic Classification      | Classification        |
   |             |                             |                       |
   | 2-65407     |                             | Specification         |
   |             |                             | Required              |
   |             |                             |                       |
   | 65408-65534 |                             | Private Use           |
   |             |                             |                       |
   | 65535       |                             | Reserved              |
                  +-----------+-------------------------+
   +-------------+-----------------------------+-----------------------+

                     Table 3: Requested Data Item 4: Initial Registry Values

10.  References

10.1.  Normative References

   [I-D.ietf-manet-dlep]
              Ratliff, S., Jury, S., Satterwhite, D., Taylor, R., and B.
              Berry, "Dynamic Link Exchange Protocol (DLEP)", draft-
              ietf-manet-dlep-28 (work in progress), March 2017.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8175]  Ratliff, S., Jury, S., Satterwhite, D., Taylor, R., and B.
              Berry, "Dynamic Link Exchange Protocol (DLEP)", RFC 8175,
              DOI 10.17487/RFC8175, June 2017,
              <https://www.rfc-editor.org/info/rfc8175>.

10.2.  Informative References

   [I-D.ietf-manet-credit-window]
              Ratliff, S., "Credit Windowing extension for DLEP", draft-
              ietf-manet-credit-window-07 (work in progress), November
              2016.

   [RFC2474]  Nichols, K., Blake, S., Baker, F., and D. Black,
              "Definition of the Differentiated Services Field (DS
              Field) in the IPv4 and IPv6 Headers", RFC 2474,
              DOI 10.17487/RFC2474, December 1998,
              <http://www.rfc-editor.org/info/rfc2474>.
              <https://www.rfc-editor.org/info/rfc2474>.

   [RFC2475]  Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z.,
              and W. Weiss, "An Architecture for Differentiated
              Services", RFC 2475, DOI 10.17487/RFC2475, December 1998,
              <http://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>.

Appendix A.  Acknowledgments

   The sub data item format was inspired by Rick Taylor's "Data Item
   Containers".  He also proposed the separation of credit windows from
   traffic classification at IETF98.

Appendix B.  Open and Resolved Issues

   This section captures issues that are open or have been addressed
   since the document has become a WG draft.  This section will be
   removed before submission for publication.

A.1.

B.1.  Merge with [I-D.ietf-manet-credit-window]

   There has been discussion within the WG that this document should be
   merged with [I-D.ietf-manet-credit-window].  The timing of this is
   TBD.  The authors would like to reach closure on some of the
   remaining open issues before embarking on this merge, but are open to
   discussion with the WG and other authors.

A.2.  Credit Windows Shared Across Destinations

   The DA Credit Extension supports credit windows per mac destination.
   Some media technologies share queues across all, or even some set of,
   destinations and supporting an associated set of credit windows isn't
   currently supported.

   Supporting credit windows per modem, i.e., for a single transmit
   channel, is clearly required and needs to be supported.

   Credit windows for sets of mac addresses should also be considered
   and discussed within the working group, both from a requirements and
   support perspective.

   This issue was reported by Stan Ratliff <ratliffstan@gmail.com>.

A.3.

B.2.  Supporting Router Limits

   Routers may have limits on the number of queues that they can support
   and, perhaps, if per destination queues can even be supported at all.
   There is no current way for a router to communicate these limits to a
   modem or for a router to indicate that the identified queue
   information cannot be supported.  Support for these cases clearly
   needs to be addressed.

   This issue was reported by Stan Ratliff <ratliffstan@gmail.com>.

A.4.

B.3.  Absolute vs Increment

   Stan Ratliff <ratliffstan@gmail.com> suggested an approach to
   simplify credit synchronization and re-synchronization by always
   passing the credit window size rather than credit window increments.
   This is an interesting idea that needs to be explored and perhaps
   experimented with.

A.5.  Alternate Format Encoding

   The format of the Queue Parameters Data Item is a bit cumbersome and
   there has been some discussion of a possible better way of encoding
   lists and optional information elements within Data Items.  There has
   been some discussion of developing a generic mechanisms for use by
   DLEP and future DLEP Data Items.  Such a definition is beyond the
   scope of this document, but if such becomes available there is every
   reason for this document to leverage this improved encoding.  This
   issue will remain open until such a time as there is a such a
   definition within the WG or this document is otherwise ready for
   publication.

   This issue was independently raised by both David Wiggins (co-author)
   and Rick Taylor <rick@tropicalstormsoftware.com>.

A.6.

B.4.  Bidirectional Flow Control (closed)

   One of the key differences between this draft and
   [I-D.ietf-manet-credit-window] is that this document only supports
   flow control in one direction, i.e., for traffic sent from a router
   to a modem, while the other credit-window draft supports it in both
   directions.

   This was a conscious choice, made out of the desire to keep the
   extension as simple as possible and to provide what is really
   expected to be used.  Clearly the reason for being able to control
   traffic that is sent from the router to the modem/radio is pretty
   easily understood.  Also, while bidirectional flow control existed in
   pre-dlep solutions, it wasn't really used.  There is also no reason
   why router to modem flow control can't be defined at a later time -
   once there is an actual need.

   Based on a brief discussion on the WG list, and the absence of any
   advocates for bidirectional flow control, there is no current plan to
   add bidirectional flow control to this document.

Authors' Addresses
   Bow-Nan Cheng
   Lincoln Laboratory
   Massachusetts Institute of Technology
   244 Wood Street
   Lexington, MA  02420-9108  02421-6426

   Email: bcheng@ll.mit.edu

   David Wiggins
   Lincoln Laboratory
   Massachusetts Institute of Technology
   244 Wood Street
   Lexington, MA  02420-9108  02421-6426

   Email: David.Wiggins@ll.mit.edu

   Lou Berger
   LabN Consulting, L.L.C.

   Email: lberger@labn.net