summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc8651.txt
blob: ca05ee6dbe2de8968fc5feee312eb32a18951998 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
Internet Engineering Task Force (IETF)                          B. Cheng
Request for Comments: 8651                                    D. Wiggins
Category: Standards Track                         MIT Lincoln Laboratory
ISSN: 2070-1721                                           L. Berger, Ed.
                                                 LabN Consulting, L.L.C.
                                                            October 2019


                 Dynamic Link Exchange Protocol (DLEP)
                  Control-Plane-Based Pause Extension

Abstract

   This document defines an extension to the Dynamic Link Exchange
   Protocol (DLEP) that enables a modem to use DLEP messages to pause
   and resume data traffic coming from its peer router.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   https://www.rfc-editor.org/info/rfc8651.

Copyright Notice

   Copyright (c) 2019 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
   (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
     1.1.  Key Words
   2.  Extension Usage and Identification
   3.  Extension Data Items
     3.1.  Queue Parameters
       3.1.1.  Queue Parameter Sub-Data Item
     3.2.  Pause
     3.3.  Restart
   4.  Security Considerations
   5.  IANA Considerations
     5.1.  Extension Type Value
     5.2.  Data Item Values
     5.3.  Queue Parameter Sub-Data Item Values
   6.  References
     6.1.  Normative References
     6.2.  Informative References
   Acknowledgments
   Authors' Addresses

1.  Introduction

   The Dynamic Link Exchange Protocol (DLEP) is defined in [RFC8175].
   It provides the exchange of link-related control information between
   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 data-plane
   flow-control capability.  The extension defined in this document
   supports flow control of data traffic based on explicit messages sent
   via DLEP by a modem to indicate when a router should hold off sending
   traffic and when it should resume.  This functionality parallels the
   flow-control mechanism found in PPP over Ethernet (PPPoE) per
   [RFC5578].  The extension also optionally supports DSCP-aware flow
   control ("DSCP" stands for "Differentiated Services Code Point") for
   use by Diffserv-aware modems.  (For general background on
   Differentiated Services, see [RFC2475].)  This functionality is very
   similar to that provided by Ethernet priority-based flow control; see
   [IEEE.802.1Q_2014].  The extension defined in this document is
   referred to as "Control-Plane-Based Pause".  Other flow-control
   methods are possible with DLEP; for example, see [DLEP-DIFFSERV] and
   [DLEP-CREDIT].

   Note that this mechanism only applies to traffic that is to be
   transmitted on the modem's attached data channel and not to DLEP
   control messages themselves.  Furthermore, it applies only to the
   single subnetwork that is used to connect a modem and a router, and
   for traffic sent from a router to a modem.

   This document defines a new DLEP Extension Type Value that is used to
   indicate the use of the extension; see Section 2.  Three new DLEP
   Data Items are defined in Section 3.

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 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

2.  Extension Usage and Identification

   The use of the Control-Plane-Based Pause Extension SHOULD be
   configurable.  To indicate that the implementation supports the use
   of the Control-Plane-Based Pause Extension, an implementation MUST
   include the Control-Plane-Based Pause Extension Type Value in the
   Extensions Supported Data Item.  The Extensions Supported Data Item
   is sent and processed according to [RFC8175].

   The Control-Plane-Based Pause Extension Type Value is 2; see
   Section 5.

3.  Extension Data Items

   Three Data Items are defined by this extension.  The Queue Parameters
   Data Item is used by a modem to provide information about the DSCPs
   it uses in forwarding.  The Pause Data Item is used by a modem to
   indicate when a router should cease sending packets, and the Restart
   Data Item is used by a modem to indicate when a router can resume
   sending packets.

3.1.  Queue Parameters

   The Queue Parameters Data Item is sent by a modem to a router to
   indicate DSCP values that may be independently paused.  This Data
   Item MUST be included in a Session Initialization Response Message
   that also contains the Control-Plane-Based Pause Extension Type Value
   in the Extensions Supported Data Item.  Updates to these parameters
   MAY be sent by a modem by including the Data Item in Session Update
   Messages.

   The Queue Parameters Data Item groups DSCPs into logical queues, each
   of which is identified by a "Queue Index" field.  The number of
   logical queues is variable, as is the number of DSCPs associated with
   each queue.  A queue size (in bytes) is provided for informational
   purposes.  Queue Index fields are numbered sequentially from zero,
   where queue index zero is a special case covering DSCPs that are not
   otherwise associated with a Queue Index field.

   An implementation that does not support DSCPs would indicate one
   queue with zero DSCPs, and the number of bytes that may be in its
   associated link transmit queue.  Additional logical queues are
   represented in a variable series of Queue Parameter Sub-Data Items.

   The format of the Queue Parameters 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                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   Num Queues  | Scale |              Reserved                 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |               Queue Parameter Sub-Data Item 1                 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      :                                ...                            :
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |               Queue Parameter Sub-Data Item n                 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Data Item Type:
      23

   Length:
      Variable

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

   Num Queues:
      An 8-bit unsigned integer indicating the number of Queue Parameter
      Sub-Data Items that follow.  This field MUST contain a value of at
      least one (1).

   Scale:
      A 4-bit unsigned integer indicating the scale used in the Queue
      Size Qn field.  The valid values are:

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

                   Table 1: Queue Size Qn Field Values

   Reserved:  A 20-bit field that MUST be set to zero (0) by the sender
      (a modem) and ignored by the receiver (a router).

3.1.1.  Queue Parameter Sub-Data Item

   Queue Parameter Sub-Data Items are an unordered list composed of
   Sub-Data Items with a common format.  The format of the Queue
   Parameter Sub-Data Item is patterned after the standard format for
   the DLEP Data Item; see [RFC8175], Section 11.3.  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.  In particular, the receiving implementation MUST issue a
   Session Termination Message containing a Status Data Item with status
   code set to 130 ("Invalid Data") and transition to the Session
   Termination state.

   The format of the Queue Parameter 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 (1)        | Length                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                           Value...                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   and Value has the format:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Queue Index  |             Queue Size Qn                     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Num DSCPs Qn  |  DS Field Qn  |              ...              :
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      :                          ...                  |  DS Field Qn  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Sub-Data Item Type:
      A 16-bit unsigned integer that indicates the type and
      corresponding format of the Sub-Data Item's Value field.  Sub-Data
      Item Types are scoped within the Data Item in which they are
      carried, i.e., the Sub-Data Item Type field MUST be used together
      with the Queue Parameters Data Item Type to identify the format of
      the Sub-Data Item.  This field MUST be set to one (1) for the
      Queue Parameter Sub-Data Item.

   Length:
      Variable

      Length is the number of octets in the Sub-Data Item, excluding the
      Type and Length fields.

   Queue Index:
      An 8-bit field indicating the queue index of the queue parameter
      represented in the Sub-Data Item.  Only the first instance of a
      particular Queue Index value is meaningful.  Subsequent Sub-Data
      Items containing the same Queue Index values, if present, MAY be
      logged via a management interface and MUST otherwise be ignored.
      Note that the value 255 is reserved and MUST NOT be used in this
      field.

   Queue Size Qn:
      A 24-bit unsigned integer representing the size, in the octet
      scale indicated by the Scale field, of the queue that supports the
      traffic with the DSCPs associated with the queue index.

   Num DSCPs Qn:
      An 8-bit unsigned integer indicating the number of DSCPs
      associated with the queue index associated with the Sub-Data Item.

   DS Field Qn:
      The Data Item contains a sequence of 8-bit DS fields.  The number
      of DS fields present MUST equal the Num DSCPs Qn field value.

      The DS field structure is the same as the structure shown in
      [RFC2474].

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

      DSCP: Differentiated Services Code Point

      CU: Currently Unused; MUST be zero

3.2.  Pause

   The Pause Data Item is sent by a modem to a router to indicate to its
   peer that traffic is to be suppressed, i.e., paused.  The motivating
   use case for this Data Item is when a modem's internal queue length
   exceeds a particular threshold.  Other use cases are possible, e.g.,
   when there are non-queue-related congestion points within a modem.
   Such cases are not explicitly described in this document.

   A modem can indicate that traffic is to be suppressed on a
   device-wide or destination-specific basis.  An example of when a
   modem might use device-wide suppression is when output queues are
   shared across all destinations.  Destination-specific suppression
   might be used when per-destination queuing is used.  To indicate that
   suppression applies to all destinations, a modem MUST send the Pause
   Data Item in a Session Update Message.  To indicate that suppression
   applies to a particular destination, a modem MUST send the Pause Data
   Item in a Destination Update Message.

   Each Pause Data Item identifies the traffic to be suppressed by the
   Queue Index field (Section 3.1), which in turn indicates traffic
   identified by one or more DSCPs.  The special value of 255 is used to
   indicate that all traffic is to be suppressed.

   While there is no restriction on the number of messages containing
   Pause Data Items that may be sent by a modem, a modem SHOULD include
   multiple queue indexes in the same message when possible.

   A router that receives the Pause Data Item MUST cease sending the
   identified traffic to the modem.  This may of course translate into
   the router's queues exceeding their own thresholds.  If a received
   Pause Data Item contains a Queue Index value other than 255 or a
   queue index established by a Session Initialization or Session Update
   Message, the router MUST terminate the session with a Status Data
   Item indicating "Invalid Data".

   The format of the Pause 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  |               ...                             :
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      :                                ...            |  Queue Index  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Data Item Type:
      24

   Length:
      Variable

      Per [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 fields carried in the Data Item.

   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 (1) all traffic to the modem is to be suppressed when the
      Data Item is carried in a Session Update Message or (2) all
      traffic to a particular destination is to be suppressed when the
      Data Item is carried in a Destination Update Message.

3.3.  Restart

   The Restart Data Item is sent by a modem to a router to indicate to
   its peer that transmission of previously suppressed traffic may be
   resumed.  An example of when a modem might send this Data Item is
   when an internal queue length drops below a particular threshold.

   The sending of this Data Item parallels the Pause Data Item (see
   Section 3.2) and follows the same rules.  To indicate that
   transmission can resume to all destinations, a modem MUST send the
   Restart Data Item in a Session Update Message.  To indicate that
   transmission can resume to a particular destination, a modem MUST
   send the Restart Data Item in a Destination Update Message.  Finally,
   the same rules apply to queue indexes.

   A router that receives the Restart Data Item SHOULD resume
   transmission of the identified traffic to the modem.

   The format of the Restart Data Item matches the Pause Data Item
   and 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  |               ...                             :
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      :                                ...            |  Queue Index  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Data Item Type:  25

   Length:  See Section 3.2.

   Queue Index:  See Section 3.2.

4.  Security Considerations

   The extension defined in this document introduces a new mechanism for
   flow control between a router and modem using DLEP.  The extension
   does not introduce any vulnerabilities that are inherently different
   from those documented in [RFC8175].  The approach taken to security
   in that document applies equally when running the extension defined
   in this document.

   Implementations of the extension defined in this document MUST
   support the configuration and use of TLS, as described in [RFC8175],
   in order to protect configurations where injection attacks are
   possible, i.e., when the link between a modem and router is not
   otherwise protected.

   Note that this extension does allow a compromised or impersonating
   modem to suppress transmission by the router or a switch that
   interconnects the modem and router.  Similar attacks are generally
   possible with base DLEP -- for example, an impersonating modem may
   cause a session reset, or a compromised modem can simply drop all
   traffic destined for or sent by a router.  [RFC8175] defines the use
   of TLS to protect against such impersonating attackers.

5.  IANA Considerations

   This document assigns four new values and creates a new subregistry
   in the "Dynamic Link Exchange Protocol (DLEP) Parameters" registry.

5.1.  Extension Type Value

   This document adds a new assignment to the DLEP extensions registry
   named "Extension Type Values" [RFC8175], per the "Specification
   Required" policy [RFC8126].  IANA has assigned the following value:


                   +------+---------------------------+
                   | Code | Description               |
                   +======+===========================+
                   | 2    | Control-Plane-Based Pause |
                   +------+---------------------------+

                      Table 2: Extension Type Value


5.2.  Data Item Values

   This document adds three new assignments to the DLEP Data Item
   registry named "Data Item Type Values" [RFC8175], per the
   "Specification Required" policy [RFC8126].  IANA has assigned the
   following values:


                     +-----------+------------------+
                     | Type Code | Description      |
                     +===========+==================+
                     | 23        | Queue Parameters |
                     +-----------+------------------+
                     | 24        | Pause            |
                     +-----------+------------------+
                     | 25        | Restart          |
                     +-----------+------------------+

                        Table 3: Data Item Values


5.3.  Queue Parameter Sub-Data Item Values

   IANA has created a new DLEP registry named "Queue Parameter Sub-Data
   Item Type Values".

   Table 4 provides initial registry values and the registration
   policies [RFC8126] that apply:

                 +-------------+------------------------+
                 | Type Code   | Description/Policy     |
                 +=============+========================+
                 | 0           | Reserved               |
                 +-------------+------------------------+
                 | 1           | Queue Parameter        |
                 +-------------+------------------------+
                 | 2-65407     | Specification Required |
                 +-------------+------------------------+
                 | 65408-65534 | Private Use            |
                 +-------------+------------------------+
                 | 65535       | Reserved               |
                 +-------------+------------------------+

                     Table 4: Initial Registry Values

6.  References

6.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <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>.

6.2.  Informative References

   [DLEP-CREDIT]
              Cheng, B., Wiggins, D., Berger, L., and S. Ratliff, "DLEP
              Credit-Based Flow Control Messages and Data Items", Work
              in Progress, Internet-Draft, draft-ietf-manet-dlep-credit-
              flow-control-04, 6 March 2019,
              <https://tools.ietf.org/html/draft-ietf-manet-dlep-credit-
              flow-control-04>.

   [DLEP-DIFFSERV]
              Cheng, B., Wiggins, D., and L. Berger, "DLEP DiffServ
              Aware Credit Window Extension", Work in Progress,
              Internet-Draft, draft-ietf-manet-dlep-da-credit-extension-
              07, 6 March 2019,
              <https://tools.ietf.org/html/draft-ietf-manet-dlep-da-
              credit-extension-07>.

   [IEEE.802.1Q_2014]
              IEEE, "IEEE Standard for Local and metropolitan area
              networks--Bridges and Bridged Networks", IEEE 802.1Q-2014,
              <https://ieeexplore.ieee.org/document/6991462>.

   [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,
              <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,
              <https://www.rfc-editor.org/info/rfc2475>.

   [RFC5578]  Berry, B., Ed., Ratliff, S., Paradise, E., Kaiser, T., and
              M. Adams, "PPP over Ethernet (PPPoE) Extensions for Credit
              Flow and Link Metrics", RFC 5578, DOI 10.17487/RFC5578,
              February 2010, <https://www.rfc-editor.org/info/rfc5578>.

   [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>.

Acknowledgments

   The format for the Sub-Data Item was inspired by Rick Taylor's "Data
   Item Containers" idea.

Authors' Addresses

   Bow-Nan Cheng
   MIT Lincoln Laboratory
   Massachusetts Institute of Technology
   244 Wood Street
   Lexington, MA 02421-6426
   United States of America

   Email: bcheng@ll.mit.edu


   David Wiggins
   MIT Lincoln Laboratory
   Massachusetts Institute of Technology
   244 Wood Street
   Lexington, MA 02420-9108
   United States of America

   Email: David.Wiggins@ll.mit.edu


   Lou Berger (editor)
   LabN Consulting, L.L.C.

   Email: lberger@labn.net