summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc5420.txt
blob: 1d3a90d44995d9bd95bda9fc60fba701e9e6ebbb (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
Network Working Group                                     A. Farrel, Ed.
Request for Comments: 5420                            Old Dog Consulting
Obsoletes: 4420                                         D. Papadimitriou
Updates: 3209, 3473                                              Alcatel
Category: Standards Track                                    JP. Vasseur
                                                     Cisco Systems, Inc.
                                                             A. Ayyangar
                                                        Juniper Networks
                                                           February 2009


        Encoding of Attributes for MPLS LSP Establishment Using
      Resource Reservation Protocol Traffic Engineering (RSVP-TE)

Status of This Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (c) 2009 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.



















Farrel, et al.              Standards Track                     [Page 1]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


Abstract

   Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs) may
   be established using the Resource Reservation Protocol Traffic
   Engineering (RSVP-TE) extensions.  This protocol includes an object
   (the SESSION_ATTRIBUTE object) that carries a Flags field used to
   indicate options and attributes of the LSP.  That Flags field has
   eight bits, allowing for eight options to be set.  Recent proposals
   in many documents that extend RSVP-TE have suggested uses for each of
   the previously unused bits.

   This document defines a new object for RSVP-TE messages that allows
   the signaling of further attribute bits and also the carriage of
   arbitrary attribute parameters to make RSVP-TE easily extensible to
   support new requirements.  Additionally, this document defines a way
   to record the attributes applied to the LSP on a hop-by-hop basis.

   The object mechanisms defined in this document are equally applicable
   to Generalized MPLS (GMPLS) Packet Switch Capable (PSC) LSPs and to
   GMPLS non-PSC LSPs.

   This document replaces and obsoletes the previous version of this
   work, published as RFC 4420.  The only change is in the encoding of
   the Type-Length-Variable (TLV) data structures.



























Farrel, et al.              Standards Track                     [Page 2]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


Table of Contents

   1. Introduction and Problem Statement ..............................4
      1.1. Applicability to Generalized MPLS ..........................5
      1.2. A Rejected Alternate Solution ..............................5
   2. Terminology .....................................................6
   3. Attributes TLVs .................................................6
      3.1. Attribute Flags TLV ........................................7
   4. LSP_ATTRIBUTES Object ...........................................8
      4.1. Format .....................................................9
      4.2. Generic Processing Rules for Path Messages .................9
      4.3. Generic Processing Rules for Resv Messages .................9
   5. LSP_REQUIRED_ATTRIBUTES Object .................................10
      5.1. Format ....................................................11
      5.2. Generic Processing Rules ..................................11
   6. Inheritance Rules ..............................................11
   7. Recording Attributes Per LSP ...................................12
      7.1. Requirements ..............................................12
      7.2. RRO Attributes Subobject ..................................12
      7.3. Procedures ................................................13
           7.3.1. Subobject Presence Rules ...........................13
           7.3.2. Reporting Compliance with LSP Attributes ...........14
           7.3.3. Reporting Per-Hop Attributes .......................14
           7.3.4. Default Behavior ...................................14
   8. Summary of Attribute Bit Allocation ............................14
   9. Message Formats ................................................15
   10. Guidance for Key Application Scenarios ........................16
      10.1. Communicating to Egress LSRs .............................16
      10.2. Communicating to Key Transit LSRs ........................17
      10.3. Communicating to All LSRs ................................17
   11. IANA Considerations ...........................................17
      11.1. New RSVP C-Nums and C-Types ..............................17
      11.2. New TLV Space ............................................18
      11.3. Attribute Flags ..........................................19
      11.4. New Error Codes ..........................................19
      11.5. New Record Route Subobject Identifier ....................19
   12. Security Considerations .......................................20
   13. Acknowledgements ..............................................20
   14. Changes from RFC 4420 to RFC 5420 .............................20
   15. Normative References ..........................................21
   16. Informative References ........................................21










Farrel, et al.              Standards Track                     [Page 3]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


1.  Introduction and Problem Statement

   This document replaces and obsoletes the previous version of this
   work, published as RFC 4420 [RFC4420].  The only change is in the
   encoding of the Type-Length-Variable (TLV) data structures presented
   in Section 3.  See Section 14 for a summary of changes.

   Traffic-Engineered Multiprotocol Label Switching (MPLS) Label
   Switched Paths (LSPs) [RFC3031] may be set up using the Path message
   of the RSVP-TE signaling protocol [RFC3209].  The Path message
   includes the SESSION_ATTRIBUTE object, which carries a Flags field
   used to indicate desired options and attributes of the LSP.

   The Flags field in the SESSION_ATTRIBUTE object has eight bits.  Just
   three of those bits are assigned in [RFC3209].  A further two bits
   are assigned in [RFC4090] for fast re-reroute functionality, leaving
   only three bits available.  Several recent proposals and Internet
   Drafts have demonstrated that there is a high demand for the use of
   the other three bits.  Some, if not all, of those proposals are
   likely to go forward as RFCs, resulting in depletion or near
   depletion of the Flags field and a consequent difficulty in signaling
   new options and attributes that may be developed in the future.

   This document defines a new object for RSVP-TE messages that allows
   the signaling of further attributes bits.  The new object is
   constructed from TLVs, and a new TLV is defined to carry a variable
   number of attributes bits.

   The new RSVP-TE message object is quite flexible, due to the use of
   the TLV format and allows:

   - future specification of bit flags
   - additional options and attribute parameters carried in TLV format

   Note that the LSP Attributes defined in this document are
   specifically scoped to an LSP.  They may be set differently on
   separate LSPs with the same Tunnel ID between the same source and
   destination (that is, within the same session).

   It is noted that some options and attributes do not need to be acted
   on by all Label Switched Routers (LSRs) along the path of the LSP.
   In particular, these options and attributes may apply only to key
   LSRs on the path, such as the ingress LSR and egress LSR.  Special
   transit LSRs, such as Area or Autonomous System Border Routers (ABRs
   or ASBRs), may also fall into this category.  This means that the new
   options and attributes should be signaled transparently, and only
   examined at those points that need to act on them.




Farrel, et al.              Standards Track                     [Page 4]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


   On the other hand, other options and attributes may require action at
   all transit LSRs along the path of the LSP.  Inability to support the
   required attributes by one of those transit LSRs may require the LSR
   to refuse the establishment of the LSP.

   These considerations are particularly important in the context of
   backward compatibility.  In general, it should be possible to provide
   new MPLS services across a legacy network without upgrading those
   LSRs that do not need to participate actively in the new services.
   Moreover, some features just require action on specific intermediate
   hops, not on every visited LSR.

   Note that options already specified for the SESSION_ATTRIBUTE object
   in preexisting RFCs are not migrated to the new mechanisms described
   in this document.

   RSVP includes a way for unrecognized objects to be transparently
   forwarded by transit nodes without them refusing the incoming
   protocol messages and without the objects being stripped from the
   outgoing protocol message (see [RFC2205], Section 3.10).  This
   capability extends to RSVP-TE and provides a good way to ensure that
   only those LSRs that understand a particular object examine it.

   This document distinguishes between options and attributes that are
   only required at key LSRs along the path of the LSP, and those that
   must be acted on by every LSR along the LSP.  Two LSP Attributes
   objects are defined in this document; using the C-Num definition
   rules inherited from [RFC2205], the first is passed transparently by
   LSRs that do not recognize it, and the second causes LSP setup
   failure with the generation of a PathErr message with an appropriate
   Error Code if an LSR does not recognize it.

1.1.  Applicability to Generalized MPLS

   The RSVP-TE signaling protocol also forms the basis of a signaling
   protocol for Generalized MPLS (GMPLS) as described in [RFC3471] and
   [RFC3473].  The extensions described in this document are equally
   applicable to MPLS and GMPLS.

1.2.  A Rejected Alternate Solution

   A rejected alternate solution was to define a new C-Type for the
   existing SESSION_ATTRIBUTE object.  This new C-Type could allow a
   larger Flags field and address the immediate problem.







Farrel, et al.              Standards Track                     [Page 5]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


   This solution was rejected because:

   - A new C-Type is not backward compatible with deployed
     implementations that expect to see a C-Type of 1 or 7.  It is
     important that any solution be capable of carrying new attributes
     transparently across legacy LSRs if those LSRs are not required to
     act on the attributes.

   - Support for arbitrary attributes parameters through TLVs would have
     meant a significant change of substance to the existing object.

2.  Terminology

   This document uses terminology from the MPLS architecture document
   [RFC3031] and from the RSVP-TE protocol specification [RFC3209],
   which inherits from the RSVP specification [RFC2205].  It also makes
   use of the Generalized MPLS RSVP-TE terminology introduced in
   [RFC3471] and [RFC3473].

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

3.  Attributes TLVs

   Attributes carried by the new objects defined in this document are
   encoded within TLVs.  One or more TLVs may be present in each object.
   There are no ordering rules for TLVs, and no interpretation should be
   placed on the order in which TLVs are received.

   Each TLV is encoded as follows.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             Type              |           Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   //                            Value                            //
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type

         The identifier of the TLV.






Farrel, et al.              Standards Track                     [Page 6]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


      Length

         Indicates the total length of the TLV in octets.  That is, the
         combined length of the Type, Length, and Value fields, i.e.,
         four plus the length of the Value field in octets.

         The entire TLV MUST be padded with between zero and three
         trailing zeros to make it four-octet aligned.  The Length field
         does not count any padding.

      Value

         The data carried in the TLV.

3.1.  Attribute Flags TLV

   This document defines only one TLV type value.  Type 1 indicates the
   Attribute Flags TLV.  Other TLV types may be defined in the future
   with type values assigned by IANA (see Section 11.2).

   The Attribute Flags TLV may be present in an LSP_ATTRIBUTES object
   and/or an LSP_REQUIRED_ATTRIBUTES object, defined in Sections 4 and
   5.  The bits in the TLV represent the same attributes regardless of
   which object carries the TLV.  Documents that define individual bits
   MUST specify whether the bit may be set in one object, the other, or
   both.  It is not expected that a bit will be set in both objects on a
   single Path message at the same time, but this is not ruled out by
   this document.

   The Attribute Flags TLV Value field is an array of units of 32 flags
   numbered from the most significant bit as bit zero.  The Length field
   for this TLV is therefore always a multiple of four bytes, regardless
   of the number of bits carried, and no padding is required.

   Unassigned bits are considered as reserved and MUST be set to zero on
   transmission by the originator of the object.  Bits not contained in
   the TLV MUST be assumed to be set to zero.  If the TLV is absent
   either because it is not contained in the LSP_ATTRIBUTES or
   LSP_REQUIRED_ATTRIBUTES object, or because those objects are
   themselves absent, all processing MUST be performed as though the
   bits were present and set to zero.  That is to say, assigned bits
   that are not present either because the TLV is deliberately
   foreshortened or because the TLV is not included MUST be treated as
   though they are present and are set to zero.

   No bits are defined in this document.  The assignment of bits is
   managed by IANA (see Section 11.3).




Farrel, et al.              Standards Track                     [Page 7]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


4.  LSP_ATTRIBUTES Object

   The LSP_ATTRIBUTES object is used to signal attributes required in
   support of an LSP, or to indicate the nature or use of an LSP where
   that information is not required to be acted on by all transit LSRs.
   Specifically, if an LSR does not support the object, it forwards it
   unexamined and unchanged.  This facilitates the exchange of
   attributes across legacy networks that do not support this new
   object.

   This object effectively extends the Flags field in the
   SESSION_ATTRIBUTE object and allows for the future inclusion of more
   complex objects through TLVs.

   Note that some function may require an LSR to inspect both the
   SESSION_ATTRIBUTE object and the LSP_ATTRIBUTES or
   LSP_REQUIRED_ATTRIBUTES object.

   The LSP_ATTRIBUTES object may also be used to report LSP operational
   state on a Resv message even when no LSP_ATTRIBUTES or
   LSP_REQUIRED_ATTRIBUTES object was carried on the corresponding Path
   message.  The object is added or updated by LSRs that support the
   object.  LSRs that do not understand the object or have nothing to
   report do not add the object and forward it unchanged on Resv
   messages that they generate.

   The LSP_ATTRIBUTES object class is 197 of the form 11bbbbbb.  This
   C-Num value (see [RFC2205], Section 3.10) ensures that LSRs that do
   not recognize the object pass it on transparently.

   One C-Type is defined, C-Type = 1 for LSP Attributes.

   This object is optional and may be placed on Path messages to convey
   additional information about the desired attributes of the LSP, and
   on Resv messages to report operational state.
















Farrel, et al.              Standards Track                     [Page 8]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


4.1.  Format

   LSP_ATTRIBUTES class = 197, C-Type = 1

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   //                       Attributes TLVs                       //
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The Attributes TLVs are encoded as described in Section 3.

4.2.  Generic Processing Rules for Path Messages

   An LSR that does not support this object is required to pass it on
   unaltered, as indicated by the C-Num and the rules defined in
   [RFC2205].

   An LSR that does support this object but does not recognize a TLV
   type code carried in this object MUST pass the TLV on unaltered in
   the LSP_ATTRIBUTES object that it places in the Path message that it
   sends downstream.

   An LSR that does support this object and recognizes a TLV but does
   not support the attribute defined by the TLV MUST act as specified in
   the document that defines the TLV.

   An LSR that supports the Attribute Flags TLV but does not recognize a
   bit set in the Attribute Flags TLV MUST forward the TLV unchanged.

   An LSR that supports the Attribute Flags TLV and recognizes a bit
   that is set but does not support the indicated attribute MUST act as
   specified in the document that defines the bit.

4.3.  Generic Processing Rules for Resv Messages

   An LSR that wishes to report operational status of an LSP may include
   this object in a Resv message, or update the object that is already
   carried in a Resv message.

   Note that this usage reports the state of the entire LSP and not the
   state of the LSP at an individual LSR.  This latter function is
   achieved using the LSP Attributes subobject of the Record Route
   object (RRO) as described in Section 7.





Farrel, et al.              Standards Track                     [Page 9]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


   The bits in the Attributes TLV may be used to report operational
   status for the whole LSP.  For example, an egress LSR may report a
   particular status by setting a bit.  LSRs within the network that
   determine that this status has not been achieved may clear the bit as
   they forward the Resv message.

   Observe that LSRs that do not support the object or do not support
   the function characterized by a particular bit in the Attributes TLV
   will not clear the bit when forwarding the Resv.  Thus, care must be
   taken in defining the usage of this object on a Resv.  The usage of
   an individual bit in the Attributes TLV of the LSP_ATTRIBUTES object
   on a Resv must be fully defined in the document that defines the bit.

   Additional TLVs may also be defined to be carried in this object on a
   Resv.

   An LSR that does not support this object will pass it on unaltered
   because of the C-Num.

5.  LSP_REQUIRED_ATTRIBUTES Object

   The LSP_REQUIRED_ATTRIBUTES object is used to signal attributes
   required in support of an LSP, or to indicate the nature or use of an
   LSP where that information MUST be inspected at each transit LSR.
   Specifically, each transit LSR MUST examine the attributes in the
   LSP_REQUIRED_ATTRIBUTES object and MUST NOT forward the object
   without acting on its contents.

   This object effectively extends the Flags field in the
   SESSION_ATTRIBUTE object and allows for the future inclusion of more
   complex objects through TLVs.  It complements the LSP_ATTRIBUTES
   object.

   The LSP_REQUIRED_ATTRIBUTES object class is 67 of the form 0bbbbbbb.
   This C-Num value ensures that LSRs that do not recognize the object
   reject the LSP setup, effectively saying that they do not support the
   attributes requested.  This means that this object SHOULD only be
   used for attributes that require support at some transit LSRs and so
   require examination at all transit LSRs.  See Section 4 for how end-
   to-end and selective attributes are signaled.

   One C-Type is defined, C-Type = 1 for LSP Required Attributes.

   This object is optional and may be placed on Path messages to convey
   additional information about the desired attributes of the LSP.






Farrel, et al.              Standards Track                    [Page 10]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


5.1.  Format

   LSP_REQUIRED_ATTRIBUTES class = 67, C-Type = 1

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   //                      Attributes TLVs                        //
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The Attributes TLVs are encoded as described in Section 3.

5.2.  Generic Processing Rules

   An LSR that does not support this object will use a PathErr to reject
   the Path message based on the C-Num using the Error Code "Unknown
   Object Class".

   An LSR that does not recognize a TLV type code carried in this object
   MUST reject the Path message using a PathErr with Error Code "Unknown
   Attributes TLV" and Error Value set to the value of the unknown TLV
   type code.

   An LSR that does not recognize a bit set in the Attribute Flags TLV
   MUST reject the Path message using a PathErr with Error Code "Unknown
   Attributes Bit" and Error Value set to the bit number of the unknown
   bit in the Attribute Flags.

   An LSR that recognizes an attribute (however encoded) but does not
   support that attribute MUST act according to the behavior specified
   in the document that defines that specific attribute.

   Note that this object is not used on a Resv.  In order to report the
   status of an LSP, either the LSP_ATTRIBUTES object on a Resv or the
   Attributes subobject in the Record Route object (see Section 7) must
   be used.

6.  Inheritance Rules

   In certain circumstances, when reaching an LSP region boundary, a
   forwarding adjacency LSP (FA-LSP; see [RFC4206]) is initially set up
   to allow the establishment of the LSP carrying the LSP_ATTRIBUTES
   and/or LSP_REQUIRED_ATTRIBUTES objects.  In this case, when the






Farrel, et al.              Standards Track                    [Page 11]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


   boundary LSR supports LSP_ATTRIBUTES and LSP_REQUIRED_ATTRIBUTES
   processing, the FA-LSP MAY, upon local policy, inherit a subset of
   the Attributes TLVs, in particular when the FA-LSP belongs to the
   same switching capability class as the triggering LSP.

   When these conditions are met, the LSP_ATTRIBUTES and/or
   LSP_REQUIRED_ATTRIBUTES objects are simply copied with the inherited
   Attributes TLVs in the Path message used to establish the FA-LSP.  By
   default (and in order to simplify deployment), none of the incoming
   LSP Attributes TLVs are considered as inheritable.  Note that when
   the FA-LSP establishment itself requires one or more Attributes TLVs,
   an 'OR' operation is performed with the inherited set of values.

   Documents that define individual bits for the LSP Attribute Flags TLV
   MUST specify whether or not these bits MAY be inherited (including
   the condition to be met in order for this inheritance to occur).  The
   same applies for any other TLV that will be defined following the
   rules specified in Section 3.

7.  Recording Attributes Per LSP

7.1.  Requirements

   In some circumstances, it is useful to determine which of the
   requested LSP attributes have been applied at which LSRs along the
   path of the LSP.  For example, an attribute may be requested in the
   LSP_ATTRIBUTES object such that LSRs that do not support the object
   are not required to support the attribute or provide the requested
   function.  In this case, it may be useful to the ingress LSR to know
   which LSRs acted on the request and which ignored it.

   Additionally, there may be other qualities that need to be reported
   on a hop-by-hop basis.  These are currently indicated in the Flags
   field of RRO subobjects.  Since there are only eight bits available
   in this field, and since some are already assigned and there is also
   likely to be an increase in allocations in new documents, there is a
   need for some other method to report per-hop attributes.

7.2.  RRO Attributes Subobject

   The RRO Attributes subobject may be carried in the RECORD_ROUTE
   object if it is present.  The subobject uses the standard format of
   an RRO subobject.

   The length is variable, as for the Attribute Flags TLV.  The content
   is the same as the Attribute Flags TLV -- that is, it is a series of
   bit flags.




Farrel, et al.              Standards Track                    [Page 12]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


   There is a one-to-one correspondence between bits in the Attribute
   Flags TLV and the RRO Attributes subobject.  If a bit is only
   required in one of the two places, it is reserved in the other place.
   See the procedures sections, below, for more information.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Type     |     Length    |           Reserved            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   //                       Attribute Flags                       //
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type

         0x05

      Length

         The Length contains the total length of the subobject in bytes,
         including the Type and Length fields.  This length must be a
         multiple of four and must be at least eight.

      Attribute Flags

         The attribute flags recorded for the specific hop.

7.3.  Procedures

7.3.1.  Subobject Presence Rules

   As will be clear from [RFC3209], the RECORD_ROUTE object is managed
   as a "stack", with each LSR adding subobjects to the start of the
   object.  The Attributes subobject is pushed onto the RECORD_ROUTE
   object immediately prior to pushing the node's IP address or link
   identifier.  Thus, if label recording is being used, the Attributes
   subobject SHOULD be pushed onto the RECORD_ROUTE object after the
   Record Label subobject(s).

   A node MUST NOT push an Attributes subobject onto the RECORD_ROUTE
   object without also pushing an IPv4, IPv6, or Unnumbered Interface ID
   subobject.

   This means that an Attributes subobject is bound to the LSR
   identified by the subobject found in the RRO immediately before the
   Attributes subobject.



Farrel, et al.              Standards Track                    [Page 13]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


   If the new subobject causes the RRO to be too big to fit in a Path
   (or Resv) message, the processing MUST be as described in Section
   4.4.3 of [RFC3209].

   If more than one Attributes subobject is found between a pair of
   subobjects that identify LSRs, only the first one found (that is, the
   nearest to the top of the stack) SHALL have any meaning within the
   context of this document.  All such subobjects MUST be forwarded
   unmodified by transit LSRs.

7.3.2.  Reporting Compliance with LSP Attributes

   To report compliance with an attribute requested in the Attribute
   Flags TLV, an LSR MAY set the corresponding bit (see Section 8) in
   the Attributes subobject.  To report non-compliance, an LSR MAY clear
   the corresponding bit in the Attributes subobject.

   The requirement to report compliance MUST be specified in the
   document that defines the usage of any bit.  This will reduce to a
   statement of whether hop-by-hop acknowledgement is required.

7.3.3.  Reporting Per-Hop Attributes

   To report a per-hop attribute, an LSR sets the appropriate bit in the
   Attributes subobject.

   The requirement to report a per-hop attribute MUST be specified in
   the document that defines the usage of the bit.

7.3.4.  Default Behavior

   By default, all bits in an Attributes subobject SHOULD be set to
   zero.

   If a received Attributes subobject is not long enough to include a
   specific numbered bit, that bit MUST be treated as though present and
   as if set to zero.

   If the RRO subobject is not present for a hop in the LSP, all bits
   MUST be assumed to be set to zero.

8.  Summary of Attribute Bit Allocation

   This document defines two uses of per-LSP attribute flag bit fields.
   The bit numbering in the Attribute Flags TLV and the RRO Attributes
   subobject is identical.  That is, the same attribute is indicated by
   the same bit in both places.  This means that only a single registry
   of bits is maintained.



Farrel, et al.              Standards Track                    [Page 14]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


   The consequence is a degree of clarity in implementation and
   registration.

   Note, however, that it is not always the case that a bit will be used
   in both the Attribute Flags TLV and the RRO Attributes subobject.
   For example, an attribute may be requested using the Attribute Flags
   TLV, but there is no requirement to report the handling of the
   attribute on a hop-by-hop basis.  Conversely, there may be a
   requirement to report the attributes of an LSP on a hop-by-hop basis,
   but there is no corresponding request attribute.

   In these cases, a single bit number is still assigned for both the
   Attribute Flags TLV and the RRO Attributes subobject, even though the
   bit may be irrelevant in either the Attribute Flags or the RRO
   Attributes subobject.  The document that defines the usage of the new
   bit MUST state in which places it is used and MUST handle a default
   setting of zero.

9.  Message Formats

   The LSP_ATTRIBUTES object and the LSP_REQUIRED_ATTRIBUTES object MAY
   be carried in a Path message.  The LSP_ATTRIBUTES object MAY be
   carried in a Resv message.

   The order of objects in RSVP-TE messages is recommended, but
   implementations must be capable of receiving the objects in any
   meaningful order.

   On a Path message, the LSP_ATTRIBUTES object and
   LSP_REQUIRED_ATTRIBUTES objects are RECOMMENDED to be placed
   immediately after the SESSION_ATTRIBUTE object if it is present, or
   otherwise immediately after the LABEL_REQUEST object.

   If both the LSP_ATTRIBUTES object and the LSP_REQUIRED_ATTRIBUTES
   object are present, the LSP_REQUIRED_ATTRIBUTES object is RECOMMENDED
   to be placed first.

   LSRs MUST be prepared to receive these objects in any order in any
   position within a Path message.  Subsequent instances of these
   objects within a Path message SHOULD be ignored and MUST be forwarded
   unchanged.

   On a Resv message, the LSP_ATTRIBUTES object is placed in the flow
   descriptor and is associated with the FILTER_SPEC object that
   precedes it.  It is RECOMMENDED that the LSP_ATTRIBUTES object be
   placed immediately after the LABEL object.





Farrel, et al.              Standards Track                    [Page 15]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


   LSRs MUST be prepared to receive this object in any order in any
   position within a Resv message, subject to the previous note.  Only
   one instance of the LSP_ATTRIBUTES object is meaningful within the
   context of a FILTER_SPEC object.  Subsequent instances of the object
   SHOULD be ignored and MUST be forwarded unchanged.

10.  Guidance for Key Application Scenarios

   As described in the Introduction section of this document, it may be
   that requested LSP attributes need to be acted on by only the egress
   LSR of the LSP, by certain key transit points (such as ABRs and
   ASBRs), or by all LSRs along the LSP.  This section briefly describes
   how each of these scenarios is met.  This section is informational
   and does not define any new procedures.

10.1.  Communicating to Egress LSRs

   When communicating LSP attributes that must be acted on only by the
   LSP egress LSR, the attributes should be communicated in the
   LSP_ATTRIBUTES object.  Because of its C-Num, this object may be
   ignored (passed onwards, untouched) by transit LSRs that do not
   understand it.  This means that the Path message will not be rejected
   by LSRs that do not understand the object.  In this way, the
   requested LSP attributes are guaranteed to reach the egress LSR.

   Attributes are set within the LSP_ATTRIBUTES object according to
   which LSP attributes are required.  Each attribute is defined in some
   RFC and is accompanied by a statement of what the expected behavior
   is.  This behavior will include whether the attribute must be acted
   on by any LSR that recognizes it, or specifically by the egress LSR.
   Thus, any attribute that must be acted on only by an egress LSR will
   be defined in this way -- any transit LSR seeing this attribute
   either will understand the semantics of the attribute and ignore it
   (forwarding it, unchanged) or will not understand the attribute and
   ignore it (forwarding it, unchanged) according to the rules of the
   LSP_ATTRIBUTES object.

   The remaining issue is how the ingress LSR can know whether the
   egress LSR has acted correctly on the required LSP attribute.
   Another part of the definition of the attribute (in the defining RFC)
   is whether reporting is required.  If reporting is required, the
   egress LSR is required to use the RRO Attributes subobject to report
   whether it has acted on the received attribute.

   If an egress LSR understands a received attribute as mandatory for an
   egress LSR but does not wish to satisfy the request, it will reject
   the Path message.  If an egress LSR understands the attribute but
   believes it to be optional and does not wish to satisfy the request,



Farrel, et al.              Standards Track                    [Page 16]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


   it will report its non-compliance in the RRO Attributes subobject.
   If the egress LSR does not understand the received attribute, it may
   report non-compliance in the RRO Attributes subobject explicitly, or
   it may omit the RRO Attributes subobject, implying that it has not
   satisfied the request.

10.2.  Communicating to Key Transit LSRs

   Processing for key transit LSRs (such as ABRs and ASBRs) follows
   exactly as for egress LSR.  The only difference is that the
   definition of the LSP attribute in the defining RFC will state that
   the attribute must be acted on by these transit LSRs.

10.3.  Communicating to All LSRs

   In order to force all LSRs to examine the LSP attributes, the
   LSP_REQUIRED_ATTRIBUTES object is used.  The C-Num of this object is
   such that any LSR that does not recognize the object must reject a
   received Path message containing the object.

   An LSR that recognizes the LSP_REQUIRED_ATTRIBUTES object but does
   not recognize an attribute will reject the Path message.

   An LSR that recognizes an attribute but does not wish to support the
   attribute reacts according to the definition of the attribute in the
   defining RFC.  This may allow the LSR to ignore the attribute and
   forward it unchanged, or may require it to fail the LSP setup.  The
   LSR may additionally be required to report whether it supports the
   attribute using the RRO Attributes subobject.

11.  IANA Considerations

   The IANA allocations made for RFC 4420 [RFC4420] now apply to this
   document and are listed here for completeness.

   IANA has updated the registry entries created for RFC 4420 to
   reference this document, which is now the normative reference for
   those entries.  This document makes no further requests for IANA
   action.

11.1.  New RSVP C-Nums and C-Types

   Two new RSVP C-Nums are defined in this document and have been
   assigned by IANA.







Farrel, et al.              Standards Track                    [Page 17]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


   o LSP_ATTRIBUTES object

     The C-Num (value 197) is of the form 11bbbbbb so that LSRs that do
     not recognize the object will ignore the object but forward it,
     unexamined and unmodified, in all messages resulting from this
     message.

     One C-Type is defined for this object and has been assigned by
     IANA.

     o LSP Attributes TLVs

       C-Type value 1.

   o LSP_REQUIRED_ATTRIBUTES object

     The C-Num (value 67) is of the form 0bbbbbbb so that LSRs that do
     not recognize the object will reject the message that carries it
     with an "Unknown Object Class" error.

     One C-Type is defined for this object and has been assigned by
     IANA.

     o LSP Required Attributes TLVs

       C-Type value 1.

11.2.  New TLV Space

   The two new objects referenced above are constructed from TLVs.  Each
   TLV includes a 16-bit type identifier (the T-field).  The same
   T-field values are applicable to both objects.

   The IANA has created a new registry and will manage TLV type
   identifiers as follows:

   - TLV Type (T-field value)
   - TLV Name
   - Whether allowed on LSP_ATTRIBUTES object
   - Whether allowed on LSP_REQUIRED_ATTRIBUTES object

   This document defines one TLV type as follows:

   - TLV Type = 1
   - TLV Name = Attribute Flags TLV
   - allowed on LSP_ATTRIBUTES object
   - allowed on LSP_REQUIRED_ATTRIBUTES object




Farrel, et al.              Standards Track                    [Page 18]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


   New TLV type values may be allocated only by an IETF Consensus
   action.

11.3.  Attribute Flags

   This document provides new attributes bit flags for use in other
   documents that specify new RSVP-TE attributes.  These flags are
   present in the Attribute Flags TLV referenced in the previous
   section.

   The IANA has created a new registry and will manage the space of
   attributes bit flags, numbering them in the usual IETF notation:
   starting at zero and continuing at least through 31.

   New bit numbers may be allocated only by an IETF Consensus action.

   Each bit should be tracked with the following qualities:

   - Bit number
   - Defining RFC
   - Name of bit
   - Whether there is meaning in the Attribute Flags TLV on a Path
   - Whether there is meaning in the Attribute Flags TLV on a Resv
   - Whether there is meaning in the RRO Attributes subobject

   Note that this means that all bits in the Attribute Flags TLV and the
   RRO Attributes subobject use the same bit number, regardless of
   whether they are used in one or both places.  Thus, only one list of
   bits is required to be maintained.  (It would be meaningless in the
   context of this document for a bit to have no meaning in either the
   Attribute Flags TLV or the RRO Attributes subobject.)

11.4.  New Error Codes

   This document defines the following new Error Codes and Error Values.
   Numeric values have been assigned by IANA.

   Error Code                     Error Value
   29 "Unknown Attributes TLV"    Identifies the unknown TLV type code.
   30 "Unknown Attributes Bit"    Identifies the unknown Attribute Bit.

11.5.  New Record Route Subobject Identifier

   A new subobject is defined for inclusion in the RECORD_ROUTE object.

   The RRO Attributes subobject is identified by a Type value of 5.





Farrel, et al.              Standards Track                    [Page 19]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


12.  Security Considerations

   This document adds two new objects to the RSVP Path message as used
   in MPLS and GMPLS signaling, and a new subobject to the RECORD_ROUTE
   object carried on many RSVP messages.  It does not introduce any new
   direct security issues, and the reader is referred to the security
   considerations expressed in [RFC2205], [RFC3209], and [RFC3473].

   It is of passing note that any signaling request that indicates the
   functional preferences or attributes of an MPLS LSP may provide
   anyone with unauthorized access to the contents of the message with
   information about the LSP that an administrator may wish to keep
   secret.  Although this document adds new objects for signaling
   desired LSP attributes, it does not contribute to this issue, which
   can only be satisfactorily handled by encrypting the content of the
   signaling message.

   Similarly, the addition of attribute-recording information to the RRO
   may reveal information about the status of the LSP and the
   capabilities of individual LSRs that operators wish to keep secret.
   The same strategy that applies to other RRO subobjects also applies
   here.  Note, however, that there is a tension between notifying the
   head end of the LSP status at transit LSRs, and hiding the existence
   or identity of the transit LSRs.

13.  Acknowledgements

   Credit to the OSPF Working Group for inspiration from their solution
   to a similar problem.  Thanks to Rahul Aggarwal for his careful
   review and support of this work.  Thanks also to Raymond Zhang,
   Kireeti Kompella, Philip Matthews, Jim Gibson, and Alan Kullberg for
   their input.  As so often, thanks to John Drake for useful offline
   discussions.  Thanks to Mike Shand for providing the Routing
   Directorate review and to Joel Halpern for the General Area review --
   both picked up on some unclarities.

   Thanks to the OIF for noticing the discrepancy in RFC 4420 that is
   fixed in this document.  Alfred Hoenes noted several typographical
   errors.

14.  Changes from RFC 4420 to RFC 5420

   This document obsoletes RFC 4420 [RFC4420].  The only change is in
   Section 3.  Section 3 describes the semantic of the Length field of
   the Attributes TLV.






Farrel, et al.              Standards Track                    [Page 20]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


   Prior to the change, the Length field indicated the length of the
   Value field only.  After the change, as described in Section 3, the
   Length field indicates the length of the whole TLV.  This change
   means that this document is consistent with the subobject format
   defined in [RFC3209] and the TLV format defined in [RFC3471].

   In addition, the RFC Editor made many editorial changes to improve
   the text and readability. These changes can be observed by comparing
   the text of this document with that of [RFC4420].

15.  Normative References

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

   [RFC2205]  Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S.
              Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1
              Functional Specification", RFC 2205, September 1997.

   [RFC3209]  Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
              and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
              Tunnels", RFC 3209, December 2001.

   [RFC3471]  Berger, L., Ed., "Generalized Multi-Protocol Label
              Switching (GMPLS) Signaling Functional Description", RFC
              3471, January 2003.

   [RFC3473]  Berger, L., Ed., "Generalized Multi-Protocol Label
              Switching (GMPLS) Signaling Resource ReserVation
              Protocol-Traffic Engineering (RSVP-TE) Extensions", RFC
              3473, January 2003.

16.  Informative References

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

   [RFC4090]  Pan, P., Ed., Swallow, G., Ed., and A. Atlas, Ed., "Fast
              Reroute Extensions to RSVP-TE for LSP Tunnels", RFC 4090,
              May 2005.

   [RFC4206]  Kompella, K. and Y. Rekhter, "Label Switched Paths (LSP)
              Hierarchy with Generalized Multi-Protocol Label Switching
              (GMPLS) Traffic Engineering (TE)", RFC 4206, October 2005.







Farrel, et al.              Standards Track                    [Page 21]
^L
RFC 5420        Attributes for MPLS LSPs Using RSVP-TE     February 2009


   [RFC4420]  Farrel, A., Ed., Papadimitriou, D., Vasseur, J.-P., and A.
              Ayyangar, "Encoding of Attributes for Multiprotocol Label
              Switching (MPLS) Label Switched Path (LSP) Establishment
              Using Resource ReserVation Protocol-Traffic Engineering
              (RSVP-TE)", RFC 4420, February 2006.

Authors' Addresses

   Adrian Farrel
   Old Dog Consulting

   Phone:  +44 (0) 1978 860944
   EMail:  adrian@olddog.co.uk


   Dimitri Papadimitriou
   Alcatel
   Fr. Wellesplein 1,
   B-2018 Antwerpen, Belgium

   Phone:  +32 3 240-8491
   EMail:  dimitri.papadimitriou@alcatel.be


   Jean Philippe Vasseur
   Cisco Systems, Inc.
   1414 Massachusetts Avenue
   Boxborough, MA - 01719
   USA

   EMail: jpv@cisco.com


   Arthi Ayyangar
   Juniper Networks, Inc.
   1194 N.Mathilda Ave
   Sunnyvale, CA 94089
   USA

   EMail: arthi@juniper.net











Farrel, et al.              Standards Track                    [Page 22]
^L