summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc6660.txt
blob: 1bea4d4fa0e67884d03496fa477f00432d1942d8 (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
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
Internet Engineering Task Force (IETF)                        B. Briscoe
Request for Comments: 6660                                            BT
Obsoletes: 5696                                             T. Moncaster
Category: Standards Track                        University of Cambridge
ISSN: 2070-1721                                                 M. Menth
                                                 University of Tuebingen
                                                               July 2012


        Encoding Three Pre-Congestion Notification (PCN) States
       in the IP Header Using a Single Diffserv Codepoint (DSCP)

Abstract

   The objective of Pre-Congestion Notification (PCN) is to protect the
   quality of service (QoS) of inelastic flows within a Diffserv domain.
   The overall rate of PCN-traffic is metered on every link in the PCN-
   domain, and PCN-packets are appropriately marked when certain
   configured rates are exceeded.  Egress nodes pass information about
   these PCN-marks to Decision Points that then decide whether to admit
   or block new flow requests or to terminate some already admitted
   flows during serious pre-congestion.

   This document specifies how PCN-marks are to be encoded into the IP
   header by reusing the Explicit Congestion Notification (ECN)
   codepoints within a PCN-domain.  The PCN wire protocol for non-IP
   protocol headers will need to be defined elsewhere.  Nonetheless,
   this document clarifies the PCN encoding for MPLS in an informational
   appendix.  The encoding for IP provides for up to three different PCN
   marking states using a single Diffserv codepoint (DSCP): not-marked
   (NM), threshold-marked (ThM), and excess-traffic-marked (ETM).
   Hence, it is called the 3-in-1 PCN encoding.  This document obsoletes
   RFC 5696.

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

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




Briscoe, et al.              Standards Track                    [Page 1]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


Copyright Notice

   Copyright (c) 2012 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) 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 . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1.  Requirements Language  . . . . . . . . . . . . . . . . . .  4
   2.  Definitions and Abbreviations  . . . . . . . . . . . . . . . .  4
     2.1.  Terminology  . . . . . . . . . . . . . . . . . . . . . . .  4
     2.2.  List of Abbreviations  . . . . . . . . . . . . . . . . . .  5
   3.  Definition of 3-in-1 PCN Encoding  . . . . . . . . . . . . . .  6
   4.  Requirements for and Applicability of 3-in-1 PCN Encoding  . .  7
     4.1.  PCN Requirements . . . . . . . . . . . . . . . . . . . . .  7
     4.2.  Requirements Imposed by Tunnelling . . . . . . . . . . . .  7
     4.3.  Applicable Environments for the 3-in-1 PCN Encoding  . . .  8
   5.  Behaviour of a PCN-node to Comply with the 3-in-1 PCN
       Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . .  8
     5.1.  PCN-Ingress-Node Behaviour . . . . . . . . . . . . . . . .  8
     5.2.  PCN-Interior-Node Behaviour  . . . . . . . . . . . . . . . 11
       5.2.1.  Behaviour Common to All PCN-Interior-Nodes . . . . . . 11
       5.2.2.  Behaviour of PCN-Interior-Nodes Using Two
               PCN-Markings . . . . . . . . . . . . . . . . . . . . . 11
       5.2.3.  Behaviour of PCN-Interior-Nodes Using One
               PCN-Marking  . . . . . . . . . . . . . . . . . . . . . 12
     5.3.  PCN-Egress-Node Behaviour  . . . . . . . . . . . . . . . . 13
   6.  Backward Compatibility . . . . . . . . . . . . . . . . . . . . 13
     6.1.  Backward Compatibility with ECN  . . . . . . . . . . . . . 13
     6.2.  Backward Compatibility with the Encoding in RFC 5696 . . . 14
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 14
   8.  Conclusions  . . . . . . . . . . . . . . . . . . . . . . . . . 15
   9.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 15
   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 15
     10.1. Normative References . . . . . . . . . . . . . . . . . . . 15
     10.2. Informative References . . . . . . . . . . . . . . . . . . 16
   Appendix A.  Choice of Suitable DSCPs  . . . . . . . . . . . . . . 18
   Appendix B.  Coexistence of ECN and PCN  . . . . . . . . . . . . . 19



Briscoe, et al.              Standards Track                    [Page 2]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


   Appendix C.  Example Mapping between Encoding of PCN-Marks in
                IP and in MPLS Shim Headers . . . . . . . . . . . . . 22
   Appendix D.  Rationale for Difference between the Schemes
                Using One PCN-Marking . . . . . . . . . . . . . . . . 23

1.  Introduction

   The objective of Pre-Congestion Notification (PCN) [RFC5559] is to
   protect the quality of service (QoS) of inelastic flows within a
   Diffserv domain in a simple, scalable, and robust fashion.  Two
   mechanisms are used: admission control, to decide whether to admit or
   block a new flow request, and flow termination to terminate some
   existing flows during serious pre-congestion.  To achieve this, the
   overall rate of PCN-traffic is metered on every link in the domain,
   and PCN-packets are appropriately marked when certain configured
   rates are exceeded.  These configured rates are below the rate of the
   link, thus providing notification to boundary nodes about overloads
   before any real congestion occurs (hence "pre-congestion
   notification").

   [RFC5670] provides for two metering and marking functions that are
   generally configured with different reference rates.  Threshold-
   marking marks all PCN packets once their traffic rate on a link
   exceeds the configured reference rate (PCN-threshold-rate).  Excess-
   traffic-marking marks only those PCN packets that exceed the
   configured reference rate (PCN-excess-rate).  The PCN-excess-rate is
   typically larger than the PCN-threshold-rate [RFC5559].  Egress nodes
   monitor the PCN-marks of received PCN-packets and pass information
   about these PCN-marks to Decision Points that then decide whether to
   admit new flows or terminate existing flows [RFC6661] [RFC6662].

   The encoding defined in [RFC5696] described how two PCN marking
   states (not-marked and PCN-marked) could be encoded into the IP
   header using a single Diffserv codepoint.  It defined '01' as an
   experimental codepoint (EXP), along with guidelines for its use.  Two
   PCN marking states are sufficient for the Single Marking edge
   behaviour [RFC6662].  However, PCN-domains utilising the controlled
   load edge behaviour [RFC6661] require three PCN marking states.  This
   document extends the encoding that originally appeared in RFC 5696 by
   redefining the experimental codepoint as a third PCN marking state in
   the IP header, but still using a single Diffserv codepoint.  This
   encoding scheme is therefore called the "3-in-1 PCN encoding".  It
   obsoletes the [RFC5696] encoding, which provides only a subset of the
   same capabilities.

   The full version of the 3-in-1 encoding requires any tunnel endpoint
   within the PCN-domain to support the normal tunnelling rules defined
   in [RFC6040].  There is one limited exception to this constraint



Briscoe, et al.              Standards Track                    [Page 3]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


   where the PCN-domain only uses the excess-traffic-marking behaviour
   and where the threshold-marking behaviour is deactivated.  This is
   discussed in Section 5.2.3.1.

   This document only concerns the PCN wire protocol encoding for IP
   headers, whether IPv4 or IPv6.  It makes no changes or
   recommendations concerning algorithms for congestion marking or
   congestion response.  Other documents will define the PCN wire
   protocol for other header types.  Appendix C discusses a possible
   mapping between IP and MPLS.

1.1.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

2.  Definitions and Abbreviations

2.1.  Terminology

   The terms PCN-domain, PCN-node, PCN-interior-node, PCN-ingress-node,
   PCN-egress-node, PCN-boundary-node, PCN-traffic, PCN-packets, and
   PCN-marking are used as defined in [RFC5559].  The following
   additional terms are defined in this document:

   PCN encoding:  mapping of PCN marking states to specific codepoints
      in the packet header.

   PCN-compatible Diffserv codepoint:  a Diffserv codepoint indicating
      packets for which the ECN field carries PCN-markings rather than
      [RFC3168] markings.  Note that an operator configures PCN-nodes to
      recognise PCN-compatible DSCPs, whereas the same DSCP has no PCN-
      specific meaning to a node outside the PCN-domain.

   Threshold-marked codepoint:  a codepoint that indicates a packet has
      been threshold-marked; that is, a packet that has been marked at a
      PCN-interior-node as a result of an indication from the threshold-
      metering function [RFC5670].  Abbreviated to ThM codepoint.

   Excess-traffic-marked codepoint:  a codepoint that indicates packets
      that have been marked at a PCN-interior-node as a result of an
      indication from the excess-traffic-metering function [RFC5670].
      Abbreviated to ETM codepoint.

   Not-marked codepoint:  a codepoint that indicates PCN-packets that
      are not PCN-marked.  Abbreviated to NM codepoint.




Briscoe, et al.              Standards Track                    [Page 4]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


   Not-PCN codepoint:  a codepoint that indicates packets that are not
      PCN-packets.

2.2.  List of Abbreviations

   The following abbreviations are used in this document:

   o  AF = Assured Forwarding [RFC2597]

   o  CE = Congestion Experienced [RFC3168]

   o  CS = Class Selector [RFC2474]

   o  DSCP = Diffserv codepoint

   o  e2e = end-to-end

   o  ECN = Explicit Congestion Notification [RFC3168]

   o  ECT = ECN Capable Transport [RFC3168]

   o  EF = Expedited Forwarding [RFC3246]

   o  ETM = excess-traffic-marked

   o  EXP = Experimental

   o  NM = not-marked

   o  PCN = Pre-Congestion Notification

   o  PHB = Per-hop behaviour [RFC2474]

   o  ThM = threshold-marked

















Briscoe, et al.              Standards Track                    [Page 5]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


3.  Definition of 3-in-1 PCN Encoding

   The 3-in-1 PCN encoding scheme supports networks that need three PCN-
   marking states to be encoded within the IP header, as well as those
   that need only two.  The full encoding is shown in Figure 1.

   +--------+----------------------------------------------------+
   |        |           Codepoint in ECN field of IP header      |
   |  DSCP  |               <RFC3168 codepoint name>             |
   |        +--------------+-------------+-------------+---------+
   |        | 00 <Not-ECT> | 10 <ECT(0)> | 01 <ECT(1)> | 11 <CE> |
   +--------+--------------+-------------+-------------+---------+
   | DSCP n |    not-PCN   |      NM     |     ThM     |   ETM   |
   +--------+--------------+-------------+-------------+---------+

                       Figure 1: 3-in-1 PCN Encoding

   A PCN-node will be configured to recognise certain DSCPs as PCN-
   compatible.  Appendix A discusses the choice of suitable DSCPs.  In
   Figure 1, 'DSCP n' indicates such a PCN-compatible DSCP.  In the PCN-
   domain, any packet carrying a PCN-compatible DSCP and with the ECN-
   field anything other than 00 (not-PCN) is a PCN-packet as defined in
   [RFC5559].

   PCN-nodes MUST interpret the ECN field of a PCN-packet using the
   3-in-1 PCN encoding, rather than [RFC3168].  This does not change the
   behaviour for any packet with a DSCP that is not PCN-compatible, or
   for any node outside a PCN-domain.  In all such cases, the 3-in-1
   encoding is not applicable, and so by default the node will interpret
   the ECN field using [RFC3168].

   When using the 3-in-1 encoding, the codepoints of the ECN field have
   the following meanings:

   not-PCN:  indicates a non-PCN-packet, i.e., a packet that uses a PCN-
      compatible DSCP but is not subject to PCN metering and marking.

   NM:  not-marked.  Indicates a PCN-packet that has not yet been marked
      by any PCN marker.

   ThM:  threshold-marked.  Indicates a PCN-packet that has been marked
      by a threshold-marker [RFC5670].

   ETM:  excess-traffic-marked.  Indicates a PCN-packet that has been
      marked by an excess-traffic-marker [RFC5670].






Briscoe, et al.              Standards Track                    [Page 6]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


4.  Requirements for and Applicability of 3-in-1 PCN Encoding

4.1.  PCN Requirements

   In accordance with the PCN architecture [RFC5559], PCN-ingress-nodes
   control packets entering a PCN-domain.  Packets belonging to PCN-
   controlled flows are subject to PCN-metering and PCN-marking, and
   PCN-ingress-nodes mark them as not-marked (PCN-colouring).  All nodes
   in the PCN-domain perform PCN-metering and PCN-mark PCN-packets if
   needed.  There are two different metering and marking behaviours:
   threshold-marking and excess-traffic-marking [RFC5670].  Some edge
   behaviours require only a Single Marking behaviour [RFC6662], others
   require both [RFC6661].  In the latter case, three PCN marking states
   are needed: not-marked (NM) to indicate not-marked packets,
   threshold-marked (ThM) to indicate packets marked by the threshold-
   marker, and excess-traffic-marked (ETM) to indicate packets marked by
   the excess-traffic-marker [RFC5670].  Threshold-marking and excess-
   traffic-marking are configured to start marking packets at different
   load conditions, so one marking behaviour indicates more severe pre-
   congestion than the other.  Therefore, a fourth PCN marking state
   indicating that a packet is marked by both markers is not needed.
   However, a fourth codepoint is required to indicate packets that use
   a PCN-compatible DSCP but do not use PCN-marking (the not-PCN
   codepoint).

   In all current PCN edge behaviours that use two marking behaviours
   [RFC5559] [RFC6661], excess-traffic-marking is configured with a
   larger reference rate than threshold-marking.  We take this as a rule
   and define excess-traffic-marked as a more severe PCN-mark than
   threshold-marked.

4.2.  Requirements Imposed by Tunnelling

   [RFC6040] defines rules for the encapsulation and decapsulation of
   ECN markings within IP-in-IP tunnels.  The publication of RFC 6040
   removed the tunnelling constraints that existed when the encoding of
   [RFC5696] was written (see Section 3.3.2 of [RFC6627]).

   Nonetheless, there is still a problem if there are any legacy (pre-
   RFC6040) decapsulating tunnel endpoints within a PCN-domain.  If a
   PCN-node Threshold-marks the outer header of a tunnelled packet that
   has a not-marked codepoint on the inner header, a legacy decapsulator
   will forward the packet as not-marked, losing the Threshold-marking.
   The rules on applicability in Section 4.3 below are designed to avoid
   this problem.






Briscoe, et al.              Standards Track                    [Page 7]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


   Even if an operator accidentally breaks these applicability rules,
   the order of severity of the 3-in-1 codepoints was chosen to protect
   other PCN or non-PCN traffic.  Although legacy pre-RFC6040 tunnels
   did not propagate '01', all tunnels pre-RFC6040 and post-RFC6040 have
   always propagated '11' correctly.  Therefore, '11' was chosen to
   signal the most severe pre-congestion (ETM), so it would act as a
   reliable fail-safe even if an overlooked legacy tunnel was
   suppressing '01' (ThM) signals.

4.3.  Applicable Environments for the 3-in-1 PCN Encoding

   The 3-in-1 encoding is applicable in situations where two marking
   behaviours are being used in the PCN-domain.  The 3-in-1 encoding can
   also be used with only one marking behaviour, in which case one of
   the codepoints MUST NOT be used anywhere in the PCN-domain (see
   Section 5.2.3).

   With one exception (see next paragraph), any tunnel endpoints
   (IP-in-IP and IPsec) within the PCN-domain MUST comply with the ECN
   encapsulation and decapsulation rules set out in [RFC6040] (see
   Section 4.2).

   Operators may not be able to upgrade every pre-RFC6040 tunnel
   endpoint within a PCN-domain.  In such circumstances, a limited
   version of the 3-in-1 encoding can still be used but only under the
   following stringent condition.  If any pre-RFC6040 tunnel
   decapsulator exists within a PCN-domain, then every PCN-node in the
   PCN-domain MUST be configured so that it never sets the ThM
   codepoint.  PCN-interior-nodes in this case MUST solely use the
   Excess-traffic-marking function, as defined in Section 5.2.3.1.  In
   all other situations where legacy tunnel decapsulators might be
   present within the PCN-domain, the 3-in-1 encoding is not applicable.

5.  Behaviour of a PCN-node to Comply with the 3-in-1 PCN Encoding

   Any tunnel endpoint implementation on a PCN-node MUST comply with
   [RFC6040].  Since PCN is a new capability, this is considered a
   reasonable requirement.

5.1.  PCN-Ingress-Node Behaviour

   If packets arrive from another Diffserv domain, any re-mapping of
   Diffserv codepoints MUST happen before PCN-ingress processing.

   At each logical ingress link into a PCN-domain, each PCN-ingress-node
   will apply the four functions described in Section 4.2 of [RFC5559]
   to arriving packets.  These functions are applied in the following
   order: PCN-classify, PCN-police, PCN-colour, PCN-rate-meter.  This



Briscoe, et al.              Standards Track                    [Page 8]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


   section describes these four steps, but only the aspects relevant to
   packet encoding:

   1. PCN-classification:  The PCN-ingress-node determines whether each
      packet matches the filter spec of an admitted flow.  Packets that
      match are defined as PCN-packets.

   1b. Extra step if ECN and PCN coexist:  If a packet classified as a
      PCN-packet arrives with the ECN field already set to a value other
      than Not-ECT (i.e., it is from an ECN-capable transport), then to
      comply with BCP 124 [RFC4774] it MUST pass through one of the
      following preparatory steps before the PCN-policing and PCN-
      colouring steps.  The choice between these four actions depends on
      local policy:

      *  Encapsulate ECN-capable PCN-packets across the PCN-domain:

         +  either within another IP header using an RFC6040 tunnel;

         +  or within a lower-layer protocol capable of being PCN-
            marked, such as MPLS (see Appendix C).

         Encapsulation using either of these methods is the RECOMMENDED
         policy for ECN-capable PCN-packets, and implementations SHOULD
         use IP-in-IP tunnelling as the default.

         If encapsulation is used, it MUST precede PCN-policing and PCN-
         colouring so that the encapsulator and decapsulator are
         logically outside the PCN-domain (see Appendix B and
         specifically Figure 2).

         If MPLS encapsulation is used, note that penultimate hop
         popping [RFC3031] is incompatible with PCN, unless the
         penultimate hop applies the PCN-egress-node behaviour before it
         pops the PCN-capable MPLS label.

      *  If some form of encapsulation is not possible, the PCN-ingress-
         node can allow through ECN-capable packets without
         encapsulation, but it MUST drop CE-marked packets at this
         stage.  Failure to drop CE-marked packets would risk congestion
         collapse, because without encapsulation there is no mechanism
         to propagate the CE markings across the PCN-domain (see
         Appendix B).

         This policy is NOT RECOMMENDED because there is no tunnel to
         protect the e2e ECN capability, which is otherwise disabled
         when the PCN-egress-node zeroes the ECN field.




Briscoe, et al.              Standards Track                    [Page 9]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


      *  Drop the packet.

         This policy is also NOT RECOMMENDED, because it precludes the
         possibility that e2e ECN can coexist with PCN as a means of
         controlling congestion.

      *  Any other action that complies with [RFC4774] (see Appendix B
         for an example).

      Appendix B provides more information about the coexistence of PCN
      and ECN.

   2. PCN-policing:  The PCN-policing function only allows appropriate
      packets into the PCN behaviour aggregate.  Per-flow policing
      actions may be required to block rejected flows and to rate-police
      accepted flows, but these are specified in the relevant edge-
      behaviour document, e.g., [RFC6662] or [RFC6661].

      Here, we only specify packet-level PCN-policing, which prevents
      packets that are not PCN-packets from being forwarded into the
      PCN-domain if PCN-interior-nodes would otherwise mistake them for
      PCN-packets.  A non-PCN-packet will be confused with a PCN-packet
      if on arrival it meets all three of the following conditions:

      a)  it is not classified as a PCN-packet;

      b)  it already carries a PCN-compatible DSCP; and

      c)  its ECN field carries a codepoint other than Not-ECT.

      The PCN-ingress-node MUST police packets that meet all three
      conditions (a-c) by subjecting them to one of the following
      treatments:

      *  re-mark the DSCP to a DSCP that is not PCN-compatible;

      *  tunnel the packet to the PCN-egress-node with a DSCP in the
         outer header that is not PCN-compatible; or

      *  drop the packet (NOT RECOMMENDED -- see below).

      The choice between these actions depends on local policy.  In the
      absence of any operator-specific configuration for this case, an
      implementation SHOULD re-mark the DSCP to zero (000000) by
      default.






Briscoe, et al.              Standards Track                   [Page 10]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


      Whichever policing action is chosen, the PCN-ingress-node SHOULD
      log the event and MAY also raise an alarm.  Alarms SHOULD be rate-
      limited so that the anomalous packets will not amplify into a
      flood of alarm messages.

      Rationale: Traffic that meets all three of the above conditions
      (a-c) is not PCN-traffic; therefore, ideally a PCN-ingress ought
      not to interfere with it, but it has to do something to avoid
      ambiguous packet markings.  Clearing the ECN field is not an
      appropriate policing action, because a network node ought not to
      interfere with an e2e signal.  Even if such packets seem like an
      attack, drop would be overkill, because such an attack can be
      neutralised by just re-marking the DSCP.  And DSCP re-marking in
      the network is legitimate, because the DSCP is not considered an
      e2e signal.

   3. PCN-colouring:  If a packet has been classified as a PCN-packet,
      once it has been policed, the PCN-ingress-node:

      *  MUST set a PCN-compatible Diffserv codepoint on all PCN-
         packets.  To conserve DSCPs, DSCPs SHOULD be chosen that are
         already defined for use with admission-controlled traffic.
         Appendix A gives guidance to implementors on suitable DSCPs.

      *  MUST set the PCN codepoint of all PCN-packets to not-marked
         (NM).

   4. PCN rate-metering:  This fourth step may be necessary depending on
      the edge behaviour in force.  It is listed for completeness, but
      it is not relevant to this encoding document.

5.2.  PCN-Interior-Node Behaviour

5.2.1.  Behaviour Common to All PCN-Interior-Nodes

   Interior nodes MUST NOT change not-PCN to any other codepoint.

   Interior nodes MUST NOT change NM to not-PCN.

   Interior nodes MUST NOT change ThM to NM or not-PCN.

   Interior nodes MUST NOT change ETM to any other codepoint.

5.2.2.  Behaviour of PCN-Interior-Nodes Using Two PCN-Markings

   If the threshold-meter function indicates a need to mark a packet,
   the PCN-interior-node MUST change NM to ThM.




Briscoe, et al.              Standards Track                   [Page 11]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


   If the excess-traffic-meter function indicates a need to mark a
   packet:

   o  the PCN-interior-node MUST change NM to ETM;

   o  the PCN-interior-node MUST change ThM to ETM.

   If both the threshold meter and the excess-traffic meter indicate the
   need to mark a packet, the Excess-traffic-marking rules MUST take
   precedence.

5.2.3.  Behaviour of PCN-Interior-Nodes Using One PCN-Marking

   Some PCN edge behaviours require only one PCN-marking within the PCN-
   domain.  The Single Marking edge behaviour [RFC6662] requires PCN-
   interior-nodes to mark packets using the excess-traffic-meter
   function [RFC5670].  It is possible that future schemes may require
   only the threshold-meter function.  Appendix D explains the rationale
   for the behaviours defined in this section.

5.2.3.1.  Marking Using Only the Excess-Traffic-Meter Function

   The threshold-traffic-meter function SHOULD be disabled and MUST NOT
   trigger any packet marking.

   The PCN-interior-node SHOULD raise a management alarm if it receives
   a ThM packet, but the frequency of such alarms SHOULD be limited.

   If the excess-traffic-meter function indicates a need to mark the
   packet:

   o  the PCN-interior-node MUST change NM to ETM;

   o  the PCN-interior-node MUST change ThM to ETM.  It SHOULD also
      raise an alarm as above.

5.2.3.2.  Marking Using Only the Threshold-Meter Function

   The excess-traffic-meter function SHOULD be disabled and MUST NOT
   trigger any packet marking.

   The PCN-interior-node SHOULD raise a management alarm if it receives
   an ETM packet, but the frequency of such alarms SHOULD be limited.

   If the threshold-meter function indicates a need to mark the packet:

   o  the PCN-interior-node MUST change NM to ThM;




Briscoe, et al.              Standards Track                   [Page 12]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


   o  the PCN-interior-node MUST NOT change ETM to any other codepoint.
      It SHOULD raise an alarm as above if it encounters an ETM packet.

5.3.  PCN-Egress-Node Behaviour

   A PCN-egress-node SHOULD set the not-PCN ('00') codepoint on all
   packets it forwards out of the PCN-domain.

   The only exception to this is if the PCN-egress-node is certain that
   revealing other codepoints outside the PCN-domain won't contravene
   the guidance given in [RFC4774].  For instance, if the PCN-ingress-
   node has explicitly informed the PCN-egress-node that this flow is
   ECN-capable, then it might be safe to expose other ECN codepoints.
   Appendix B gives details of how such schemes might work, but such
   schemes are currently only tentative ideas.

   If the PCN-domain is configured to use only Excess-traffic-marking,
   the PCN-egress-node MUST treat ThM as ETM; if only threshold-marking
   is used, it SHOULD treat ETM as ThM.  However, it SHOULD raise a
   management alarm in either case since this means there is some
   misconfiguration in the PCN-domain.

6.  Backward Compatibility

6.1.  Backward Compatibility with ECN

   BCP 124 [RFC4774] gives guidelines for specifying alternative
   semantics for the ECN field.  It sets out a number of factors to be
   taken into consideration.  It also suggests various techniques to
   allow the coexistence of default ECN and alternative ECN semantics.
   The encoding specified in this document uses one of those techniques;
   it defines PCN-compatible Diffserv codepoints as no longer supporting
   the default ECN semantics within a PCN-domain.  As such, this
   document is compatible with BCP 124.

   There is not enough space in one IP header for the 3-in-1 encoding to
   support both ECN marking end-to-end and PCN-marking within a PCN-
   domain.  The non-normative Appendix B discusses possible ways to do
   this, e.g., by carrying e2e ECN across a PCN-domain within the inner
   header of an IP-in-IP tunnel.  The normative text in Section 5.1
   requires one of these methods to be configured at the PCN-ingress-
   node and recommends that implementations offer tunnelling as the
   default.

   In any PCN deployment, traffic can only enter the PCN-domain through
   PCN-ingress-nodes and leave through PCN-egress-nodes.  PCN-ingress-
   nodes ensure that any packets entering the PCN-domain have the ECN
   field in their outermost IP header set to the appropriate codepoint.



Briscoe, et al.              Standards Track                   [Page 13]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


   PCN-egress-nodes then guarantee that the ECN field of any packet
   leaving the PCN-domain has appropriate ECN semantics.  This prevents
   unintended leakage of ECN marks into or out of the PCN-domain, and
   thus reduces backward-compatibility issues.

6.2.  Backward Compatibility with the Encoding in RFC 5696

   Section 5.1 of the PCN architecture [RFC5559] gives general guidance
   on fault detection and diagnosis, including management analysis of
   PCN markings arriving at PCN-egress-nodes to detect early signs of
   potential faults.  Because the PCN encoding has gone through an
   obsoleted earlier stage [RFC5696], misconfiguration mistakes may be
   more likely.  Therefore, extra monitoring, such as in the following
   example, may be necessary to detect and diagnose potential problems:

      Informational example: In a controlled-load edge-behaviour
      scenario it could be worth the PCN-egress-node detecting the onset
      of excess-traffic marking without any prior threshold-marking.
      This might indicate that an interior node has been wrongly
      configured to mark only ETM (which would have been correct for the
      single-marking edge behaviour).

   A PCN-node implemented to use the obsoleted encoding in RFC 5696
   could conceivably have been configured so that the Threshold-meter
   function marked what is now defined as the ETM codepoint in the
   3-in-1 encoding.  However, there is no known deployment of this
   rather unlikely variant of RFC 5696 and no reason to believe that
   such an implementation would ever have been built.  Therefore, it
   seems safe to ignore this issue.

7.  Security Considerations

   PCN-marking only carries a meaning within the confines of a PCN-
   domain.  This encoding document is intended to stand independently of
   the architecture used to determine how specific packets are
   authorised to be PCN-marked, which will be described in separate
   documents on PCN-boundary-node behaviour.

   This document assumes the PCN-domain to be entirely under the control
   of a single operator, or a set of operators who trust each other.
   However, future extensions to PCN might include inter-domain versions
   where trust cannot be assumed between domains.  If such schemes are
   proposed, they must ensure that they can operate securely despite the
   lack of trust.  However, such considerations are beyond the scope of
   this document.






Briscoe, et al.              Standards Track                   [Page 14]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


   One potential security concern is the injection of spurious PCN-marks
   into the PCN-domain.  However, these can only enter the domain if a
   PCN-ingress-node is misconfigured.  The precise impact of any such
   misconfiguration will depend on which of the proposed PCN-boundary-
   node behaviours is used; however, in general, spurious marks will
   lead to admitting fewer flows into the domain or potentially
   terminating too many flows.  In either case, good management should
   be able to quickly spot the problem since the overall utilisation of
   the domain will rapidly fall.

8.  Conclusions

   The 3-in-1 PCN encoding uses a PCN-compatible DSCP and the ECN field
   to encode PCN-marks.  One codepoint allows non-PCN traffic to be
   carried with the same PCN-compatible DSCP and three other codepoints
   support three PCN marking states with different levels of severity.
   In general, the use of this PCN encoding scheme presupposes that any
   tunnel endpoints within the PCN-domain comply with [RFC6040].

9.  Acknowledgements

   Many thanks to Philip Eardley for providing extensive feedback,
   criticism and advice.  Thanks also to Teco Boot, Kwok Ho Chan,
   Ruediger Geib, Georgios Karagiannis, James Polk, Tom Taylor, Adrian
   Farrel, and everyone else who has commented on the document.

10.  References

10.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [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,
              December 1998.

   [RFC3168]  Ramakrishnan, K., Floyd, S., and D. Black, "The Addition
              of Explicit Congestion Notification (ECN) to IP",
              RFC 3168, September 2001.

   [RFC5559]  Eardley, P., "Pre-Congestion Notification (PCN)
              Architecture", RFC 5559, June 2009.

   [RFC5670]  Eardley, P., "Metering and Marking Behaviour of PCN-
              Nodes", RFC 5670, November 2009.




Briscoe, et al.              Standards Track                   [Page 15]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


   [RFC6040]  Briscoe, B., "Tunnelling of Explicit Congestion
              Notification", RFC 6040, November 2010.

10.2.  Informative References

   [RFC2597]  Heinanen, J., Baker, F., Weiss, W., and J. Wroclawski,
              "Assured Forwarding PHB Group", RFC 2597, June 1999.

   [RFC3031]  Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol
              Label Switching Architecture", RFC 3031, January 2001.

   [RFC3246]  Davie, B., Charny, A., Bennet, J., Benson, K., Le Boudec,
              J., Courtney, W., Davari, S., Firoiu, V., and D.
              Stiliadis, "An Expedited Forwarding PHB (Per-Hop
              Behavior)", RFC 3246, March 2002.

   [RFC3540]  Spring, N., Wetherall, D., and D. Ely, "Robust Explicit
              Congestion Notification (ECN) Signaling with Nonces",
              RFC 3540, June 2003.

   [RFC4594]  Babiarz, J., Chan, K., and F. Baker, "Configuration
              Guidelines for DiffServ Service Classes", RFC 4594,
              August 2006.

   [RFC4774]  Floyd, S., "Specifying Alternate Semantics for the
              Explicit Congestion Notification (ECN) Field", BCP 124,
              RFC 4774, November 2006.

   [RFC5127]  Chan, K., Babiarz, J., and F. Baker, "Aggregation of
              Diffserv Service Classes", RFC 5127, February 2008.

   [RFC5129]  Davie, B., Briscoe, B., and J. Tay, "Explicit Congestion
              Marking in MPLS", RFC 5129, January 2008.

   [RFC5462]  Andersson, L. and R. Asati, "Multiprotocol Label Switching
              (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic
              Class" Field", RFC 5462, February 2009.

   [RFC5696]  Moncaster, T., Briscoe, B., and M. Menth, "Baseline
              Encoding and Transport of Pre-Congestion Information",
              RFC 5696, November 2009.

   [RFC5865]  Baker, F., Polk, J., and M. Dolly, "A Differentiated
              Services Code Point (DSCP) for Capacity-Admitted Traffic",
              RFC 5865, May 2010.






Briscoe, et al.              Standards Track                   [Page 16]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


   [RFC6627]  Karagiannis, G., Chan, K., Moncaster, T., Menth, M.,
              Eardley, P., and B. Briscoe, "Overview of Pre-Congestion
              Notification Encoding", RFC 6627, July 2012.

   [RFC6661]  Charny, A., Huang, F., Karagiannis, G., Menth, M., and T.
              Taylor, Ed., "Pre-Congestion Notification (PCN) Boundary-
              Node Behaviour for the Controlled Load (CL) Mode of
              Operation", RFC 6661, July 2012.

   [RFC6662]  Charny, A., Zhang, J., Karagiannis, G., Menth, M., and T.
              Taylor, Ed., "Pre-Congestion Notification (PCN) Boundary-
              Node Behaviour for the Single Marking (SM) Mode of
              Operation", RFC 6662, July 2012.






































Briscoe, et al.              Standards Track                   [Page 17]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


Appendix A.  Choice of Suitable DSCPs

   This appendix is informative not normative.

   A single DSCP has not been defined for use with PCN for several
   reasons.  Firstly, the PCN mechanism is applicable to a variety of
   different traffic classes.  Secondly, Standards Track DSCPs are in
   increasingly short supply.  Thirdly, PCN is not a scheduling
   behaviour -- rather, it should be seen as being a marking behaviour
   similar to ECN but intended for inelastic traffic.  The choice of
   which DSCP is most suitable for a given PCN-domain is dependent on
   the nature of the traffic entering that domain and the link rates of
   all the links making up that domain.  In PCN-domains with sufficient
   aggregation, the appropriate DSCPs would currently be those for the
   Real-Time Treatment Aggregate [RFC5127].  It is suggested that
   admission control could be used for the following service classes
   (defined in [RFC4594] unless otherwise stated):

   o  Telephony (EF)

   o  Real-time interactive (CS4)

   o  Broadcast Video (CS3)

   o  Multimedia Conferencing (AF4)

   o  the VOICE-ADMIT codepoint defined in [RFC5865].

   CS5 is excluded from this list since PCN is not expected to be
   applied to signalling traffic.

   PCN-marking is intended to provide a scalable admission-control
   mechanism for traffic with a high degree of statistical multiplexing.
   PCN-marking would therefore be appropriate to apply to traffic in the
   above classes, but only within a PCN-domain containing sufficiently
   aggregated traffic.  In such cases, the above service classes may
   well all be subject to a single forwarding treatment (treatment
   aggregate [RFC5127]).  However, this does not imply all such IP
   traffic would necessarily be identified by one DSCP -- each service
   class might keep a distinct DSCP within the highly aggregated region
   [RFC5127].

   Guidelines for conserving DSCPs by allowing non-admission-controlled-
   traffic to compete with PCN-traffic are given in Appendix B.1 of
   [RFC5670].






Briscoe, et al.              Standards Track                   [Page 18]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


   Additional service classes may be defined for which admission control
   is appropriate, whether through some future standards action or
   through local use by certain operators, e.g., the Multimedia
   Streaming service class (AF3).  This document does not preclude the
   use of PCN in more cases than those listed above.

   Note: The above discussion is informative not normative, as operators
   are ultimately free to decide whether to use admission control for
   certain service classes and whether to use PCN as their mechanism of
   choice.

Appendix B.  Coexistence of ECN and PCN

   This appendix is informative not normative.  It collects together
   material relevant to coexistence of ECN and PCN, including that
   spread throughout the body of this specification.  If this results in
   any conflict or ambiguity, the normative text in the body of the
   specification takes precedence.

   ECN [RFC3168] is an e2e congestion notification mechanism.  As such
   it is possible that some traffic entering the PCN-domain may also be
   ECN-capable.  The PCN encoding described in this document reuses the
   bits of the ECN field in the IP header.  Consequently, this disables
   ECN within the PCN-domain.

   For the purposes of this appendix, we define two forms of traffic
   that might arrive at a PCN-ingress-node.  These are admission-
   controlled traffic (PCN-traffic) and non-admission-controlled traffic
   (non-PCN-traffic).

   Flow signalling identifies admission-controlled traffic, by
   associating a filter spec with the need for admission control (e.g.,
   through RSVP or some equivalent message, such as from a SIP server to
   the ingress or from a logically centralised network control system).
   The PCN-ingress-node re-marks admission-controlled traffic matching
   that filter spec to a PCN-compatible DSCP.  Note that the term "flow"
   need not imply just one microflow, but instead could match an
   aggregate and/or could depend on the incoming DSCP (see Appendix A).

   All other traffic can be thought of as non-admission-controlled (and
   therefore outside the scope of PCN).  However, such traffic may still
   need to share the same DSCP as the admission-controlled traffic.
   This may be due to policy (for instance, if it is high-priority voice
   traffic), or may be because there is a shortage of local DSCPs.

   Unless specified otherwise, for any of the cases in the list below,
   an IP-in-IP tunnel that complies with [RFC6040] can be used to
   preserve ECN markings across the PCN-domain.  The tunnelling action



Briscoe, et al.              Standards Track                   [Page 19]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


   should be applied wholly outside the PCN-domain as illustrated in
   Figure 2.  Then, by the rules of RFC 6040, the tunnel egress
   propagates the ECN field from the inner header, because the PCN-
   egress will have zeroed the outer ECN field.

               .  .  .  .  .  .  PCN-domain  .  .  .  .  .  .
              .   ,---------.                   ,--------.    .
             .   _|  PCN-   |___________________|  PCN-  |_   .
             .  / | ingress |                   | egress | \  .
              .|  `---------'                   `--------'  |.
               | .  .  .  .  .  .  .  .  .  .  .  .  .  .  .|
         ,---------.                                     ,--------.
    _____| Tunnel  |                                     | Tunnel |____
         | Ingress | - - ECN preserved inside tunnel - - | Egress |
         `---------'                                     `--------'

            Figure 2: Separation of Tunnelling and PCN Actions

   There are three cases for how e2e ECN traffic may wish to be treated
   while crossing a PCN-domain:

   a) Traffic that does not require PCN admission control:
      For example, traffic that does not match flow signalling being
      used for admission control.  In this case, the e2e ECN traffic is
      not treated as PCN-traffic.  There are two possible scenarios:

      *  Arriving traffic does not carry a PCN-compatible DSCP: no
         action required.

      *  Arriving traffic carries a DSCP that clashes with a PCN-
         compatible DSCP.  There are two options:

         1.  The ingress maps the DSCP to a local DSCP with the same
             scheduling PHB as the original DSCP, and the egress re-maps
             it to the original PCN-compatible DSCP.

         2.  The ingress tunnels the traffic, setting the DSCP in the
             outer header to a local DSCP with the same scheduling PHB
             as the original DSCP.

         3.  The ingress tunnels the traffic, using the original DSCP in
             the outer header but setting not-PCN in the outer header;
             note that this turns off ECN for this traffic within the
             PCN-domain.

         The first or second options are recommended unless the operator
         is short of local DSCPs.




Briscoe, et al.              Standards Track                   [Page 20]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


   b) Traffic that requires admission-control:
      In this case, the e2e ECN traffic is treated as PCN-traffic across
      the PCN-domain.  There are two options.

      *  The PCN-ingress-node places this traffic in a tunnel with a
         PCN-compatible DSCP in the outer header.  The PCN-egress zeroes
         the ECN-field before decapsulation.

      *  The PCN-ingress-node drops CE-marked packets and otherwise sets
         the ECN-field to NM and sets the DSCP to a PCN-compatible DSCP.
         The PCN-egress zeroes the ECN field of all PCN packets; note
         that this turns off e2e ECN.

      The second option is emphatically not recommended, unless perhaps
      as a last resort if tunnelling is not possible for some
      insurmountable reason.

   c) Traffic that requires PCN admission control where the endpoints
      ask to see PCN marks:
      Note that this scheme is currently only a tentative idea.

      For real-time data generated by an adaptive codec, schemes have
      been suggested where PCN marks may be leaked out of the PCN-domain
      so that end hosts can drop to a lower data-rate, thus deferring
      the need for admission control.  Currently, such schemes require
      further study and the following is for guidance only.

      The PCN-ingress-node needs to tunnel the traffic as in Figure 2,
      taking care to comply with [RFC6040].  In this case, the PCN-
      egress does not zero the ECN field (contrary to the recommendation
      in Section 5.3), so that the [RFC6040] tunnel egress will preserve
      any PCN-marking.  Note that a PCN-interior-node may change the
      ECN-field from '10' to '01' (NM to ThM), which would be
      interpreted by the e2e ECN as a change from ECT(0) into ECT(1).
      This would not be compatible with the (currently experimental) ECN
      nonce [RFC3540].















Briscoe, et al.              Standards Track                   [Page 21]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


Appendix C.  Example Mapping between Encoding of PCN-Marks in IP and in
             MPLS Shim Headers

   This appendix is informative not normative.

   The 6 bits of the DS field in the IP header provide for 64
   codepoints.  When encapsulating IP traffic in MPLS, it is useful to
   make the DS field information accessible in the MPLS header.
   However, the MPLS shim header has only a 3-bit traffic class (TC)
   field [RFC5462] providing for 8 codepoints.  The operator has the
   freedom to define a site-local mapping of the 64 codepoints of the DS
   field onto the 8 codepoints in the TC field.

   [RFC5129] describes how ECN markings in the IP header can also be
   mapped to codepoints in the MPLS TC field.  Appendix A of [RFC5129]
   gives an informative description of how to support PCN in MPLS by
   extending the way MPLS supports ECN.  [RFC5129] was written while PCN
   specifications were in early draft stages.  The following provides a
   clearer example of a mapping between PCN in IP and in MPLS using the
   PCN terminology and concepts that have since been specified.

   To support PCN in a MPLS domain, a PCN-compatible DSCP ('DSCP n')
   needs codepoints to be provided in the TC field for all the PCN-marks
   used.  That means, when, for instance, only excess-traffic-marking is
   used for PCN purposes, the operator needs to define a site-local
   mapping to two codepoints in the MPLS TC field for IP headers with:

   o  DSCP n and NM

   o  DSCP n and ETM

   If both excess-traffic-marking and threshold-marking are used, the
   operator needs to define a site-local mapping to codepoints in the
   MPLS TC field for IP headers with all three of the 3-in-1 codepoints:

   o  DSCP n and NM

   o  DSCP n and ThM

   o  DSCP n and ETM

   In either case, if the operator wishes to support the same Diffserv
   PHB but without PCN marking, it will also be necessary to define a
   site-local mapping to an MPLS TC codepoint for IP headers marked
   with:

   o  DSCP n and not-PCN




Briscoe, et al.              Standards Track                   [Page 22]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


   The above sets of codepoints are required for every PCN-compatible
   DSCP.  Clearly, given so few TC codepoints are available, it may be
   necessary to compromise by merging together some capabilities.
   Guidelines for conserving TC codepoints by allowing non-admission-
   controlled-traffic to compete with PCN-traffic are given in Appendix
   B.1 of [RFC5670].

Appendix D.  Rationale for Difference between the Schemes Using One
             PCN-Marking

   Readers may notice a difference between the two behaviours in
   Sections 5.2.3.1 and 5.2.3.2.  With only Excess-traffic-marking
   enabled, an unexpected ThM packet can be re-marked to ETM.  However,
   with only Threshold-marking, an unexpected ETM packet cannot be re-
   marked to ThM.

   This apparent inconsistency is deliberate.  The behaviour with only
   Threshold-marking keeps to the rule of Section 5.2.1 that ETM is more
   severe and must never be changed to ThM even though ETM is not a
   valid marking in this case.  Otherwise, implementations would have to
   allow operators to configure an exception to this rule, which would
   not be safe practice and would require different code in the data
   plane compared to the common behaviour.




























Briscoe, et al.              Standards Track                   [Page 23]
^L
RFC 6660                   3-in-1 PCN Encoding                 July 2012


Authors' Addresses

   Bob Briscoe
   BT
   B54/77, Adastral Park
   Martlesham Heath
   Ipswich  IP5 3RE
   UK

   Phone: +44 1473 645196
   EMail: bob.briscoe@bt.com
   URI:   http://bobbriscoe.net/


   Toby Moncaster
   University of Cambridge Computer Laboratory
   William Gates Building, J J Thomson Avenue
   Cambridge  CB3 0FD
   UK

   EMail: toby.moncaster@cl.cam.ac.uk


   Michael Menth
   University of Tuebingen
   Sand 13
   72076 Tuebingen
   Germany

   Phone: +49-7071-2970505
   EMail: menth@uni-tuebingen.de




















Briscoe, et al.              Standards Track                   [Page 24]
^L