summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc8779.txt
blob: 2a1913b77b7d009096511a00d7e0ded5839c34c5 (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
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
Internet Engineering Task Force (IETF)                  C. Margaria, Ed.
Request for Comments: 8779                                       Juniper
Category: Standards Track                       O. Gonzalez de Dios, Ed.
ISSN: 2070-1721                    Telefonica Investigacion y Desarrollo
                                                           F. Zhang, Ed.
                                                     Huawei Technologies
                                                               July 2020


 Path Computation Element Communication Protocol (PCEP) Extensions for
                                 GMPLS

Abstract

   A Path Computation Element (PCE) provides path computation functions
   for Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS)
   networks.  Additional requirements for GMPLS are identified in RFC
   7025.

   This memo provides extensions to the Path Computation Element
   Communication Protocol (PCEP) for the support of the GMPLS control
   plane to address those requirements.

Status of This Memo

   This is an Internet Standards Track document.

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

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

Copyright Notice

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

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

Table of Contents

   1.  Introduction
     1.1.  Terminology
     1.2.  PCEP Requirements for GMPLS
     1.3.  Requirements Applicability
       1.3.1.  Requirements on the Path Computation Request
       1.3.2.  Requirements on the Path Computation Response
     1.4.  Existing Support and Limitations for GMPLS in Base PCEP
           Objects
   2.  PCEP Objects and Extensions
     2.1.  GMPLS Capability Advertisement
       2.1.1.  GMPLS Computation TLV in the Existing PCE Discovery
               Protocol
       2.1.2.  OPEN Object Extension GMPLS-CAPABILITY TLV
     2.2.  RP Object Extension
     2.3.  BANDWIDTH Object Extensions
     2.4.  LOAD-BALANCING Object Extensions
     2.5.  END-POINTS Object Extensions
       2.5.1.  Generalized Endpoint Object Type
       2.5.2.  END-POINTS TLV Extensions
     2.6.  IRO Extension
     2.7.  XRO Extension
     2.8.  LSPA Extensions
     2.9.  NO-PATH Object Extension
       2.9.1.  Extensions to NO-PATH-VECTOR TLV
   3.  Additional Error-Types and Error-Values Defined
   4.  Manageability Considerations
     4.1.  Control of Function through Configuration and Policy
     4.2.  Information and Data Models
     4.3.  Liveness Detection and Monitoring
     4.4.  Verifying Correct Operation
     4.5.  Requirements on Other Protocols and Functional Components
     4.6.  Impact on Network Operation
   5.  IANA Considerations
     5.1.  PCEP Objects
     5.2.  Endpoint Type Field in the Generalized END-POINTS Object
     5.3.  New PCEP TLVs
     5.4.  RP Object Flag Field
     5.5.  New PCEP Error Codes
     5.6.  New Bits in NO-PATH-VECTOR TLV
     5.7.  New Subobject for the Include Route Object
     5.8.  New Subobject for the Exclude Route Object
     5.9.  New GMPLS-CAPABILITY TLV Flag Field
   6.  Security Considerations
   7.  References
     7.1.  Normative References
     7.2.  Informative References
   Appendix A.  LOAD-BALANCING Usage for SDH Virtual Concatenation
   Acknowledgments
   Contributors
   Authors' Addresses

1.  Introduction

   Although the PCE architecture and framework for both MPLS and GMPLS
   networks are defined in [RFC4655], most pre-existing PCEP RFCs, such
   as [RFC5440], [RFC5521], [RFC5541], and [RFC5520], are focused on
   MPLS networks and do not cover the wide range of GMPLS networks.
   This document complements these RFCs by addressing the extensions
   required for GMPLS applications and routing requests, for example,
   for Optical Transport Networks (OTNs) and Wavelength Switched Optical
   Networks (WSONs).

   The functional requirements to be addressed by the PCEP extensions to
   support these applications are fully described in [RFC7025] and
   [RFC7449].

1.1.  Terminology

   This document uses terminologies from the PCE architecture document
   [RFC4655]; the PCEP documents including [RFC5440], [RFC5521],
   [RFC5541], [RFC5520], [RFC7025], and [RFC7449]; and the GMPLS
   documents such as [RFC3471], [RFC3473], and so on.  Note that the
   reader is expected to be familiar with these documents.  The
   following abbreviations are used in this document:

   ERO:      Explicit Route Object

   IRO:      Include Route Object

   L2SC:     Layer 2 Switch Capable [RFC3471]

   LSC:      Lambda Switch Capable [RFC3471]

   LSP:      Label Switched Path

   LSPA:     LSP Attribute

   MEF:      Metro Ethernet Forum

   MT:       Multiplier [RFC4328] [RFC4606]

   NCC:      Number of Contiguous Components [RFC4606]

   NVC:      Number of Virtual Components [RFC4328] [RFC4606]

   ODU:      Optical Data Unit [G.709-v3]

   OTN:      Optical Transport Network [G.709-v3]

   P2MP:     Point-to-Multipoint

   PCC:      Path Computation Client

   PCRep:    Path Computation Reply [RFC5440]

   PCReq:    Path Computation Request [RFC5440]

   RCC:      Requested Contiguous Concatenation [RFC4606]

   RRO:      Record Route Object

   RSVP-TE:  Resource Reservation Protocol - Traffic Engineering

   SDH:      Synchronous Digital Hierarchy

   SONET:    Synchronous Optical Network

   SRLG:     Shared Risk Link Group

   SSON:     Spectrum-Switched Optical Network

   TDM:      Time-Division Multiplex Capable [RFC3471]

   TE-LSP:   Traffic Engineered LSP

   XRO:      Exclude Route Object

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

1.2.  PCEP Requirements for GMPLS

   [RFC7025] describes the set of PCEP requirements that support GMPLS
   TE-LSPs.  This document assumes a significant familiarity with
   [RFC7025] and existing PCEP extensions.  As a short overview, those
   requirements can be broken down into the following categories.

   *  Which data flow is switched by the LSP: a combination of a
      switching type (for instance, L2SC or TDM), an LSP encoding type
      (e.g., Ethernet, SONET/SDH), and sometimes the signal type (e.g.,
      in case of a TDM or an LSC switching capability).

   *  Data-flow-specific traffic parameters, which are technology
      specific.  For instance, in SDH/SONET and OTN networks [G.709-v3],
      the concatenation type and the concatenation number have an
      influence on the switched data and on which link it can be
      supported.

   *  Support for asymmetric bandwidth requests.

   *  Support for unnumbered interface identifiers, as defined in
      [RFC3477].

   *  Label information and technology-specific label(s) such as
      wavelength labels as defined in [RFC6205].  A PCC should also be
      able to specify a label restriction similar to the one supported
      by RSVP-TE in [RFC3473].

   *  Ability to indicate the requested granularity for the path ERO:
      node, link, or label.  This is to allow the use of the explicit
      label control feature of RSVP-TE.

   The requirements of [RFC7025] apply to several objects conveyed by
   PCEP; this is described in Section 1.3.  Some of the requirements of
   [RFC7025] are already supported in existing documents, as described
   in Section 1.4.

   This document describes a set of PCEP extensions, including new
   object types, TLVs, encodings, error codes, and procedures, in order
   to fulfill the aforementioned requirements not covered in existing
   RFCs.

1.3.  Requirements Applicability

   This section follows the organization of [RFC7025], Section 3 and
   indicates, for each requirement, the affected piece of information
   carried by PCEP and its scope.

1.3.1.  Requirements on the Path Computation Request

   (1)   Switching capability/type: As described in [RFC3471], this
         piece of information is used with the encoding type and signal
         type to fully describe the switching technology and data
         carried by the TE-LSP.  This is applicable to the TE-LSP itself
         and also to the TE-LSP endpoint (carried in the END-POINTS
         object for MPLS networks in [RFC5440]) when considering
         multiple network layers.  Inter-layer path computation
         requirements are addressed in [RFC8282], which focuses on the
         TE-LSP itself but does not address the TE-LSP endpoints.

   (2)   Encoding type: See (1).

   (3)   Signal type: See (1).

   (4)   Concatenation type: This parameter and the concatenation number
         (see (5)) are specific to some TDM (SDH and ODU) switching
         technologies.  They MUST be described together and are used to
         derive the requested resource allocation for the TE-LSP.  It is
         scoped to the TE-LSP and is related to the BANDWIDTH object
         [RFC5440] in MPLS networks.  See concatenation information in
         [RFC4606] and [RFC4328].

   (5)   Concatenation number: See (4).

   (6)   Technology-specific label(s): As described in [RFC3471], the
         GMPLS labels are specific to each switching technology.  They
         can be specified on each link and also on the TE-LSP endpoints,
         in WSON networks, for instance, as described in [RFC6163].  The
         label restriction can apply to endpoints, and on each hop, the
         related PCEP objects are END-POINTS, IRO, XRO, and RRO.

   (7)   End-to-End (E2E) path protection type: As defined in [RFC4872],
         this is applicable to the TE-LSP.  In MPLS networks, the
         related PCEP object is LSPA (carrying local protection
         information).

   (8)   Administrative group: As defined in [RFC3630], this information
         is already carried in the LSPA object.

   (9)   Link protection type: As defined in [RFC4872], this is
         applicable to the TE-LSP and is carried in association with the
         E2E path protection type.

   (10)  Support for unnumbered interfaces: As defined in [RFC3477].
         Its scope and related objects are the same as labels.

   (11)  Support for asymmetric bandwidth requests: As defined in
         [RFC6387], the scope is similar to (4).

   (12)  Support for explicit label control during the path computation:
         This affects the TE-LSP and the amount of information returned
         in the ERO.

   (13)  Support of label restrictions in the requests/responses: This
         is described in (6).

1.3.2.  Requirements on the Path Computation Response

   (1)  Path computation with concatenation: This is related to the Path
        Computation request requirement (4).  In addition, there is a
        specific type of concatenation, called virtual concatenation,
        that allows different routes to be used between the endpoints.
        It is similar to the semantic and scope of the LOAD-BALANCING in
        MPLS networks.

   (2)  Label constraint: The PCE should be able to include labels in
        the path returned to the PCC; the related object is the ERO
        object.

   (3)  Roles of the routes: As defined in [RFC4872], this is applicable
        to the TE-LSP and is carried in association with the E2E path
        protection type.

1.4.  Existing Support and Limitations for GMPLS in Base PCEP Objects

   The support provided by specifications in [RFC8282] and [RFC5440] for
   the requirements listed in [RFC7025] is summarized in Tables 1 and 2.
   In some cases, the support may not be complete, as noted, and
   additional support needs to be provided as indicated in this
   specification.

       +======+====================================+===============+
       | Req. | Name                               | Support       |
       +======+====================================+===============+
       | 1    | Switching capability/type          | SWITCH-LAYER  |
       |      |                                    | (RFC 8282)    |
       +------+------------------------------------+---------------+
       | 2    | Encoding type                      | SWITCH-LAYER  |
       |      |                                    | (RFC 8282)    |
       +------+------------------------------------+---------------+
       | 3    | Signal type                        | SWITCH-LAYER  |
       |      |                                    | (RFC 8282)    |
       +------+------------------------------------+---------------+
       | 4    | Concatenation type                 | No            |
       +------+------------------------------------+---------------+
       | 5    | Concatenation number               | No            |
       +------+------------------------------------+---------------+
       | 6    | Technology-specific label          | (Partial) ERO |
       |      |                                    | (RFC 5440)    |
       +------+------------------------------------+---------------+
       | 7    | End-to-End (E2E) path protection   | No            |
       |      | type                               |               |
       +------+------------------------------------+---------------+
       | 8    | Administrative group               | LSPA (RFC     |
       |      |                                    | 5440)         |
       +------+------------------------------------+---------------+
       | 9    | Link protection type               | No            |
       +------+------------------------------------+---------------+
       | 10   | Support for unnumbered interfaces  | (Partial) ERO |
       |      |                                    | (RFC 5440)    |
       +------+------------------------------------+---------------+
       | 11   | Support for asymmetric bandwidth   | No            |
       |      | requests                           |               |
       +------+------------------------------------+---------------+
       | 12   | Support for explicit label control | No            |
       |      | during the path computation        |               |
       +------+------------------------------------+---------------+
       | 13   | Support of label restrictions in   | No            |
       |      | the requests/responses             |               |
       +------+------------------------------------+---------------+

          Table 1: Requirements Support per RFC 7025, Section 3.1

         +======+=====================================+=========+
         | Req. | Name                                | Support |
         +======+=====================================+=========+
         | 1    | Path computation with concatenation | No      |
         +------+-------------------------------------+---------+
         | 2    | Label constraint                    | No      |
         +------+-------------------------------------+---------+
         | 3    | Roles of the routes                 | No      |
         +------+-------------------------------------+---------+

         Table 2: Requirements Support per RFC 7025, Section 3.2

   Per Section 1.3, PCEP (as described in [RFC5440], [RFC5521], and
   [RFC8282]) supports the following objects, included in requests and
   responses, that are related to the described requirements.

   From [RFC5440]:

      END-POINTS:  related to requirements 1, 2, 3, 6, 10, and 13.  The
         object only supports numbered endpoints.  The context specifies
         whether they are node identifiers or numbered interfaces.

      BANDWIDTH:  related to requirements 4, 5, and 11.  The data rate
         is encoded in the BANDWIDTH object (as an IEEE 32-bit float).
         [RFC5440] does not include the ability to convey an encoding
         proper to all GMPLS-controlled networks.

      ERO:  related to requirements 6, 10, 12, and 13.  The ERO content
         is defined in RSVP in [RFC3209], [RFC3473], [RFC3477], and
         [RFC7570] and already supports all of the requirements.

      LSPA:  related to requirements 7, 8, and 9.  Requirement 8
         (Administrative group) is already supported.

   From [RFC5521]:

      XRO:

      -  This object allows excluding (strict or not) resources and is
         related to requirements 6, 10, and 13.  It also includes the
         requested diversity (node, link, or SRLG).

      -  When the F bit is set, the request indicates that the existing
         path has failed, and the resources present in the RRO can be
         reused.

   From [RFC8282]:

      SWITCH-LAYER:  addresses requirements 1, 2, and 3 for the TE-LSP
         and indicates which layer(s) should be considered.  The object
         can be used to represent the RSVP-TE Generalized Label Request.
         It does not address the endpoints case of requirements 1, 2,
         and 3.

      REQ-ADAP-CAP:  indicates the adaptation capabilities requested; it
         can also be used for the endpoints in case of mono-layer
         computation.

   The gaps in functional coverage of the base PCEP objects are:

   *  The BANDWIDTH and LOAD-BALANCING objects do not describe the
      details of the traffic request (requirements 4 and 5, for example,
      NVC and multiplier) in the context of GMPLS networks, for
      instance, in TDM or OTN networks.

   *  The END-POINTS object does not allow specifying an unnumbered
      interface, nor potential label restrictions on the interface
      (requirements 6, 10, and 13).  Those parameters are of interest in
      case of switching constraints.

   *  The IROs/XROs do not allow the inclusion/exclusion of labels
      (requirements 6, 10, and 13).

   *  Base attributes do not allow expressing the requested link
      protection level and/or the end-to-end protection attributes.

   As defined later in this document, the PCEP extensions that cover the
   gaps are:

   *  Two new object types are defined for the BANDWIDTH object
      (Generalized bandwidth and Generalized bandwidth of an existing
      TE-LSP for which a reoptimization is requested).

   *  A new object type is defined for the LOAD-BALANCING object
      (Generalized Load Balancing).

   *  A new object type is defined for the END-POINTS object
      (Generalized Endpoint).

   *  A new TLV is added to the Open message for capability negotiation.

   *  A new TLV is added to the LSPA object.

   *  The Label subobject is now allowed in the IRO and XRO objects.

   *  In order to indicate the routing granularity used in the response,
      a new flag is added in the RP object.

2.  PCEP Objects and Extensions

   This section describes the necessary PCEP objects and extensions.
   The PCReq and PCRep messages are defined in [RFC5440].  This document
   does not change the existing grammar.

2.1.  GMPLS Capability Advertisement

2.1.1.  GMPLS Computation TLV in the Existing PCE Discovery Protocol

   IGP-based PCE Discovery (PCED) is defined in [RFC5088] and [RFC5089]
   for the OSPF and IS-IS protocols.  Those documents have defined bit 0
   in the PCE-CAP-FLAGS Sub-TLV of the PCED TLV as "Path computation
   with GMPLS link constraints".  This capability is optional and can be
   used to detect GMPLS-capable PCEs.  PCEs that set the bit to indicate
   support of GMPLS path computation MUST follow the procedures in
   Section 2.1.2 to further qualify the level of support during PCEP
   session establishment.

2.1.2.  OPEN Object Extension GMPLS-CAPABILITY TLV

   In addition to the IGP advertisement, a PCEP speaker MUST be able to
   discover the other peer GMPLS capabilities during the Open message
   exchange.  This capability is also useful to avoid misconfigurations.
   This document defines a GMPLS-CAPABILITY TLV for use in the OPEN
   object to negotiate the GMPLS capability.  The inclusion of this TLV
   in the Open message indicates that the PCEP speaker supports the PCEP
   extensions defined in the document.  A PCEP speaker that is able to
   support the GMPLS extensions defined in this document MUST include
   the GMPLS-CAPABILITY TLV in the Open message.  If one of the PCEP
   peers does not include the GMPLS-CAPABILITY TLV in the Open message,
   the peers MUST NOT make use of the objects and TLVs defined in this
   document.

   If the PCEP speaker supports the extensions of this specification but
   did not advertise the GMPLS-CAPABILITY capability, upon receipt of a
   message from the PCE including an extension defined in this document,
   it MUST generate a PCEP Error (PCErr) with Error-Type=10 (Reception
   of an invalid object) and Error-value=31 (Missing GMPLS-CAPABILITY
   TLV), and it SHOULD terminate the PCEP session.

   As documented in Section 5.3 ("New PCEP TLVs"), IANA has allocated
   value 45 (GMPLS-CAPABILITY) from the "PCEP TLV Type Indicators" sub-
   registry.  The format for the GMPLS-CAPABILITY TLV is shown in the
   following figure.

     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=45         |           Length              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                             Flags                             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   No flags are defined in this document; they are reserved for future
   use.  Unassigned flags MUST be set to zero on transmission and MUST
   be ignored on receipt.

2.2.  RP Object Extension

   Explicit Label Control (ELC) is a procedure supported by RSVP-TE,
   where the outgoing labels are encoded in the ERO.  As a consequence,
   the PCE can provide such labels directly in the path ERO.  Depending
   on the policies or switching layer, it might be necessary for the PCC
   to use explicit label control or explicit link ids; thus, it needs to
   indicate in the PCReq which granularity it is expecting in the ERO.
   This corresponds to requirement 12 in Section 3.1 of [RFC7025].  The
   possible granularities can be node, link, or label.  The
   granularities are interdependent, in the sense that link granularity
   implies the presence of node information in the ERO; similarly, a
   label granularity implies that the ERO contains node, link, and label
   information.

   A new 2-bit Routing Granularity (RG) flag (bits 15-16) is defined in
   the RP object.  The values are defined as follows:

      0:  reserved

      1:  node

      2:  link

      3:  label

   The RG flag in the RP object indicates the requested route
   granularity.  The PCE SHOULD follow this granularity and MAY return a
   NO-PATH if the requested granularity cannot be provided.  The PCE MAY
   return any granularity on the route based on its policy.  The PCC can
   decide if the ERO is acceptable based on its content.

   If a PCE honored the requested routing granularity for a request, it
   MUST indicate the selected routing granularity in the RP object
   included in the response.  Otherwise, the PCE MUST use the reserved
   RG to leave the check of the ERO to the PCC.  The RG flag is backward
   compatible with [RFC5440]: the value sent by an implementation (PCC
   or PCE) not supporting it will indicate a reserved value.

2.3.  BANDWIDTH Object Extensions

   Per [RFC5440], the object carrying the requested size for the TE-LSP
   is the BANDWIDTH object.  Object types 1 and 2 defined in [RFC5440]
   do not provide enough information to describe the TE-LSP bandwidth in
   GMPLS networks.  The BANDWIDTH object encoding has to be extended to
   allow the object to express the bandwidth as described in [RFC7025].
   RSVP-TE extensions for GMPLS provide a set of encodings that allow
   such representation in an unambiguous way; this is encoded in the
   RSVP-TE Traffic Specification (TSpec) and Flow Specification
   (FlowSpec) objects.  This document extends the BANDWIDTH object with
   new object types reusing the RSVP-TE encoding.

   The following possibilities are supported by the extended encoding:

   *  Asymmetric bandwidth (different bandwidth in forward and reverse
      direction), as described in [RFC6387].

   *  GMPLS (SDH/SONET, G.709, ATM, MEF, etc.) parameters.

   This corresponds to requirements 3, 4, 5, and 11 in Section 3.1 of
   [RFC7025].

   This document defines two object types for the BANDWIDTH object:

      3:  Generalized bandwidth

      4:  Generalized bandwidth of an existing TE-LSP for which a
         reoptimization is requested

   The definitions below apply for object types 3 and 4.  The body is 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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    Bandwidth Spec Length      | Rev. Bandwidth Spec Length    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Bw Spec Type  |   Reserved                                    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~                     Generalized Bandwidth                     ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~            Reverse Generalized Bandwidth (optional)           ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~                       Optional TLVs                           ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   BANDWIDTH object types 3 and 4 have a variable length.  The 16-bit
   Bandwidth Spec Length field indicates the length of the Generalized
   Bandwidth field.  The Bandwidth Spec Length MUST be strictly greater
   than 0.  The 16-bit Reverse Bandwidth Spec Length field indicates the
   length of the Reverse Generalized Bandwidth field.  The Reverse
   Bandwidth Spec Length MAY be equal to 0.

   The Bw Spec Type field determines which type of bandwidth is
   represented by the object.

   The Bw Spec Type corresponds to the RSVP-TE SENDER_TSPEC (Object
   Class 12) C-Types.

   The encoding of the Generalized Bandwidth and Reverse Generalized
   Bandwidth fields is the same as the traffic parameters carried in
   RSVP-TE; they can be found in the following references.  Note that
   the RSVP-TE traffic specification MAY also include TLVs that are
   different from the PCEP TLVs (e.g., the TLVs defined in [RFC6003]).

                 +==============+===========+===========+
                 | Bw Spec Type | Name      | Reference |
                 +==============+===========+===========+
                 | 2            | Intserv   | [RFC2210] |
                 +--------------+-----------+-----------+
                 | 4            | SONET/SDH | [RFC4606] |
                 +--------------+-----------+-----------+
                 | 5            | G.709     | [RFC4328] |
                 +--------------+-----------+-----------+
                 | 6            | Ethernet  | [RFC6003] |
                 +--------------+-----------+-----------+
                 | 7            | OTN-TDM   | [RFC7139] |
                 +--------------+-----------+-----------+
                 | 8            | SSON      | [RFC7792] |
                 +--------------+-----------+-----------+

                    Table 3: Generalized Bandwidth and
                   Reverse Generalized Bandwidth Field
                                 Encoding

   When a PCC requests a bidirectional path with symmetric bandwidth, it
   SHOULD only specify the Generalized Bandwidth field and set the
   Reverse Bandwidth Spec Length to 0.  When a PCC needs to request a
   bidirectional path with asymmetric bandwidth, it SHOULD specify the
   different bandwidth in the forward and reverse directions with
   Generalized Bandwidth and Reverse Generalized Bandwidth fields.

   The procedure described in [RFC5440] for the PCRep is unchanged: a
   PCE MAY include the BANDWIDTH objects in the response to indicate the
   BANDWIDTH of the path.

   As specified in [RFC5440], in the case of the reoptimization of a TE-
   LSP, the bandwidth of the existing TE-LSP MUST also be included in
   addition to the requested bandwidth if and only if the two values
   differ.  The object type 4 MAY be used instead of the previously
   specified object type 2 to indicate the existing TE-LSP bandwidth,
   which was originally specified with object type 3.  A PCC that
   requested a path with a BANDWIDTH object of object type 1 MUST use
   object type 2 to represent the existing TE-LSP bandwidth.

   Optional TLVs MAY be included within the object body to specify more
   specific bandwidth requirements.  No TLVs for object types 3 and 4
   are defined by this document.

2.4.  LOAD-BALANCING Object Extensions

   The LOAD-BALANCING object [RFC5440] is used to request a set of at
   most Max-LSP TE-LSPs having in total the bandwidth specified in
   BANDWIDTH, with each TE-LSP having at least a specified minimum
   bandwidth.  The LOAD-BALANCING object follows the bandwidth encoding
   of the BANDWIDTH object; thus, the existing definition from [RFC5440]
   does not describe enough details for the bandwidth specification
   expected by GMPLS.

   Similar to the BANDWIDTH object, a new object type is defined to
   allow a PCC to represent the bandwidth types supported by GMPLS
   networks.

   This document defines object type 2 (Generalized Load Balancing) for
   the LOAD-BALANCING object.  The Generalized Load Balancing object
   type has a variable length.

   The format of the Generalized Load Balancing object type is 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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    Bandwidth Spec Length      | Reverse Bandwidth Spec Length |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Bw Spec Type  |  Max-LSP      | Reserved                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |        Min Bandwidth Spec                                     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |        Min Reverse Bandwidth Spec (optional)                  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~                      Optional TLVs                            ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Bandwidth Spec Length (16 bits):  the total length of the Min
      Bandwidth Spec field.  The length MUST be strictly greater than 0.

   Reverse Bandwidth Spec Length (16 bits):  the total length of the Min
      Reverse Bandwidth Spec field.  It MAY be equal to 0.

   Bw Spec Type (8 bits):  the bandwidth specification type; it
      corresponds to RSVP-TE SENDER_TSPEC (Object Class 12) C-Types.

   Max-LSP (8 bits):  the maximum number of TE-LSPs in the set.

   Min Bandwidth Spec (variable):  specifies the minimum bandwidth
      specification of each element of the TE-LSP set.

   Min Reverse Bandwidth Spec (variable):  specifies the minimum reverse
      bandwidth specification of each element of the TE-LSP set.

   The encoding of the Min Bandwidth Spec and Min Reverse Bandwidth Spec
   fields is the same as in the RSVP-TE SENDER_TSPEC object; it can be
   found in Table 3 in Section 2.3 of this document.

   When a PCC requests a bidirectional path with symmetric bandwidth
   while specifying load-balancing constraints, it SHOULD specify the
   Min Bandwidth Spec field and set the Reverse Bandwidth Spec Length to
   0.  When a PCC needs to request a bidirectional path with asymmetric
   bandwidth while specifying load-balancing constraints, it MUST
   specify the different bandwidth in forward and reverse directions
   through Min Bandwidth Spec and Min Reverse Bandwidth Spec fields.

   Optional TLVs MAY be included within the object body to specify more
   specific bandwidth requirements.  No TLVs for the Generalized Load
   Balancing object type are defined by this document.

   The semantic of the LOAD-BALANCING object is not changed.  If a PCC
   requests the computation of a set of TE-LSPs with at most N TE-LSPs
   so that it can carry Generalized bandwidth X, each TE-LSP must at
   least transport bandwidth B; it inserts a BANDWIDTH object specifying
   X as the required bandwidth and a LOAD-BALANCING object with the Max-
   LSP and Min Bandwidth Spec fields set to N and B, respectively.  When
   the BANDWIDTH and Min Bandwidth Spec can be summarized as scalars,
   the sum of the bandwidth for all TE-LSPs in the set is greater than
   X.  The mapping of the X over N path with (at least) bandwidth B is
   technology and possibly node specific.  Each standard definition of
   the transport technology is defining those mappings and are not
   repeated in this document.  A simplified example for SDH is described
   in Appendix A.

   In all other cases, including technologies based on statistical
   multiplexing (e.g., InterServ and Ethernet), the exact bandwidth
   management (e.g., the Ethernet's Excessive Rate) is left to the PCE's
   policies, according to the operator's configuration.  If required,
   further documents may introduce a new mechanism to finely express
   complex load-balancing policies within PCEP.

   The BANDWIDTH and LOAD-BALANCING Bw Spec Type can be different
   depending on the architecture of the endpoint node.  When the PCE is
   not able to handle those two Bw Spec Types, it MUST return a NO-PATH
   with the bit "LOAD-BALANCING could not be performed with the
   bandwidth constraints" set in the NO-PATH-VECTOR TLV.

2.5.  END-POINTS Object Extensions

   The END-POINTS object is used in a PCEP request message to specify
   the source and the destination of the path for which a path
   computation is requested.  Per [RFC5440], the source IP address and
   the destination IP address are used to identify those.  A new object
   type is defined to address the following possibilities:

   *  Different source and destination endpoint types.

   *  Label restrictions on the endpoint.

   *  Specification of unnumbered endpoints type as seen in GMPLS
      networks.

   The object encoding is described in the following sections.

   In path computation within a GMPLS context, the endpoints can:

   *  Be unnumbered as described in [RFC3477].

   *  Have labels associated to them, specifying a set of constraints on
      the allocation of labels.

   *  Have different switching capabilities.

   The IPv4 and IPv6 endpoints are used to represent the source and
   destination IP addresses.  The scope of the IP address (node or
   numbered link) is not explicitly stated.  It is also possible to
   request a path between a numbered link and an unnumbered link, or a
   P2MP path between different types of endpoints.

   This document defines object type 5 (Generalized Endpoint) for the
   END-POINTS object.  This new type also supports the specification of
   constraints on the endpoint label to be used.  The PCE might know the
   interface restrictions, but this is not a requirement.  This
   corresponds to requirements 6 and 10 in Section 3.1 of [RFC7025].

2.5.1.  Generalized Endpoint Object Type

   The Generalized Endpoint object type format consists of a body and a
   list of TLVs scoped to this object.  The TLVs give the details of the
   endpoints and are described in Section 2.5.2.  For each endpoint
   type, a different grammar is defined.  The TLVs defined to describe
   an endpoint are:

   1.  IPV4-ADDRESS

   2.  IPV6-ADDRESS

   3.  UNNUMBERED-ENDPOINT

   4.  LABEL-REQUEST

   5.  LABEL-SET

   The LABEL-SET TLV is used to restrict or suggest the label allocation
   in the PCE.  This TLV expresses the set of restrictions that may
   apply to signaling.  Label restriction support can be an explicit or
   a suggested value (LABEL-SET describing one label, with the L bit
   cleared or set, respectively), mandatory range restrictions (LABEL-
   SET with the L bit cleared), and optional range restriction (LABEL-
   SET with the L bit set).  Endpoints label restriction may not be part
   of the RRO or IRO.  They can be included when following [RFC4003] in
   signaling for the egress endpoint, but ingress endpoint properties
   can be local to the PCC and not signaled.  To support this case, the
   LABEL-SET allows indication of which labels are used in case of
   reoptimization.  The label range restrictions are valid in GMPLS-
   controlled networks, depending on either the PCC policy or the
   switching technology used, for instance, on a given Ethernet or ODU
   equipment having limited hardware capabilities restricting the label
   range.  Label set restriction also applies to WSON networks where the
   optical senders and receivers are limited in their frequency
   tunability ranges, consequently restricting the possible label ranges
   on the interface in GMPLS.  The END-POINTS object with the
   Generalized Endpoint object type 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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      Reserved                                 | Endpoint Type |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~                           TLVs                                ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Reserved bits SHOULD be set to 0 when a message is sent and ignored
   when the message is received.

   The values for the Endpoint Type field are defined as follows:

            +=========+======================================+
            | Value   | Type                                 |
            +=========+======================================+
            | 0       | Point-to-Point                       |
            +---------+--------------------------------------+
            | 1       | Point-to-Multipoint with leaf type 1 |
            +---------+--------------------------------------+
            | 2       | Point-to-Multipoint with leaf type 2 |
            +---------+--------------------------------------+
            | 3       | Point-to-Multipoint with leaf type 3 |
            +---------+--------------------------------------+
            | 4       | Point-to-Multipoint with leaf type 4 |
            +---------+--------------------------------------+
            | 5-244   | Unassigned                           |
            +---------+--------------------------------------+
            | 245-255 | Experimental Use                     |
            +---------+--------------------------------------+

                   Table 4: Generalized Endpoint Types

   The Endpoint Type field is used to cover both point-to-point and
   different point-to-multipoint endpoints.  A PCE may only accept
   endpoint type 0; endpoint types 1-4 apply if the PCE implementation
   supports P2MP path calculation.  The leaf types for P2MP are as per
   [RFC8306].  A PCE not supporting a given endpoint type SHOULD respond
   with a PCErr with Error-Type=4 (Not supported object) and Error-
   value=7 (Unsupported endpoint type in END-POINTS Generalized Endpoint
   object type).  As per [RFC5440], a PCE unable to process Generalized
   Endpoints may respond with Error-Type=3 (Unknown Object) and Error-
   value=2 (Unrecognized object type) or with Error-Type=4 (Not
   supported object) and Error-value=2 (Not supported object Type).  The
   TLVs present in the request object body MUST follow the grammar per
   [RFC5511]:

     <generalized-endpoint-tlvs>::=
       <p2p-endpoints> | <p2mp-endpoints>

     <p2p-endpoints> ::=
       <endpoint> [<endpoint-restriction-list>]
       <endpoint> [<endpoint-restriction-list>]

     <p2mp-endpoints> ::=
       <endpoint> [<endpoint-restriction-list>]
       <endpoint> [<endpoint-restriction-list>]
       [<endpoint> [<endpoint-restriction-list>]]...

   For endpoint type Point-to-Point, two endpoint TLVs MUST be present
   in the message.  The first endpoint is the source, and the second is
   the destination.

   For endpoint type Point-to-Multipoint, several END-POINTS objects MAY
   be present in the message, and the exact meaning depends on the
   endpoint type defined for the object.  The first endpoint TLV is the
   root, and other endpoint TLVs are the leaves.  The root endpoint MUST
   be the same for all END-POINTS objects for that P2MP tree request.
   If the root endpoint is not the same for all END-POINTS, a PCErr with
   Error-Type=17 (P2MP END-POINTS Error) and Error-value=4 (The PCE
   cannot satisfy the request due to inconsistent END-POINTS) MUST be
   returned.  The procedure defined in [RFC8306], Section 3.10 also
   applies to the Generalized Endpoint with Point-to-Multipoint endpoint
   types.

   An endpoint is defined as follows:

    <endpoint>::=<IPV4-ADDRESS>|<IPV6-ADDRESS>|<UNNUMBERED-ENDPOINT>
    <endpoint-restriction-list> ::= <endpoint-restriction>
                     [<endpoint-restriction-list>]

    <endpoint-restriction> ::=
                     [<LABEL-REQUEST>][<label-restriction-list>]

    <label-restriction-list> ::= <label-restriction>
                                 [<label-restriction-list>]
    <label-restriction> ::= <LABEL-SET>

   The different TLVs are described in the following sections.  A PCE
   MAY support any or all of the IPV4-ADDRESS, IPV6-ADDRESS, and
   UNNUMBERED-ENDPOINT TLVs.  When receiving a PCReq, a PCE unable to
   resolve the identifier in one of those TLVs MUST respond by using a
   PCRep with NO-PATH and setting the bit "Unknown destination" or
   "Unknown source" in the NO-PATH-VECTOR TLV.  The response SHOULD
   include the END-POINTS object with only the unsupported TLV(s).

   A PCE MAY support either or both of the LABEL-REQUEST and LABEL-SET
   TLVs.  If a PCE finds a non-supported TLV in the END-POINTS, the PCE
   MUST respond with a PCErr message with Error-Type=4 (Not supported
   object) and Error-value=8 (Unsupported TLV present in END-POINTS
   Generalized Endpoint object type), and the message SHOULD include the
   END-POINTS object in the response with only the endpoint and endpoint
   restriction TLV it did not understand.  A PCE supporting those TLVs
   but not being able to fulfill the label restriction MUST send a
   response with a NO-PATH object that has the bit "No endpoint label
   resource" or "No endpoint label resource in range" set in the NO-
   PATH-VECTOR TLV.  The response SHOULD include an END-POINTS object
   containing only the TLV(s) related to the constraints the PCE could
   not meet.

2.5.2.  END-POINTS TLV Extensions

   All endpoint TLVs have the standard PCEP TLV header as defined in
   [RFC5440], Section 7.1.  For the Generalized Endpoint object type,
   the TLVs MUST follow the ordering defined in Section 2.5.1.

2.5.2.1.  IPV4-ADDRESS TLV

   The IPV4-ADDRESS TLV (Type 39) represents a numbered endpoint using
   IPv4 numbering.  The format of the TLV value is 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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                          IPv4 address                         |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   This TLV MAY be ignored, in which case a PCRep with NO-PATH SHOULD be
   returned, as described in Section 2.5.1.

2.5.2.2.  IPV6-ADDRESS TLV

   The IPv6-ADDRESS TLV (Type 40) represents a numbered endpoint using
   IPV6 numbering.  The format of the TLV value is 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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |              IPv6 address (16 bytes)                          |
     |                                                               |
     |                                                               |
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   This TLV MAY be ignored, in which case a PCRep with NO-PATH SHOULD be
   returned, as described in Section 2.5.1.

2.5.2.3.  UNNUMBERED-ENDPOINT TLV

   The UNNUMBERED-ENDPOINT TLV (Type 41) represents an unnumbered
   interface.  This TLV has the same semantic as in [RFC3477].  The TLV
   value 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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                          LSR's Router ID                      |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                       Interface ID (32 bits)                  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   This TLV MAY be ignored, in which case a PCRep with NO-PATH SHOULD be
   returned, as described in Section 2.5.1.

2.5.2.4.  LABEL-REQUEST TLV

   The LABEL-REQUEST TLV (Type 42) indicates the switching capability
   and encoding type of the following label restriction list for the
   endpoint.  The value format and encoding is the same as described in
   Section 3.1 of [RFC3471] for the Generalized Label Request.  The LSP
   Encoding Type field indicates the encoding type, e.g., SONET, SDH,
   GigE, etc., of the LSP with which the data is associated.  The
   Switching Type field indicates the type of switching that is being
   requested on the endpoint.  The Generalized Protocol Identifier
   (G-PID) field identifies the payload.  This TLV and the following one
   are defined to satisfy requirement 13 in Section 3.1 of [RFC7025] for
   the endpoint.  It is not directly related to the TE-LSP label
   request, which is expressed by the SWITCH-LAYER object.

   On the path calculation request, only the GENERALIZED-BANDWIDTH and
   SWITCH-LAYER need to be coherent; the endpoint labels could be
   different (supporting a different LABEL-REQUEST).  Hence, the label
   restrictions include a Generalized Label Request in order to
   interpret the labels.  This TLV MAY be ignored, in which case a PCRep
   with NO-PATH SHOULD be returned, as described in Section 2.5.1.

2.5.2.5.  LABEL-SET TLV

   Label or label range restrictions can be specified for the TE-LSP
   endpoints.  Those are encoded using the LABEL-SET TLV.  The label
   value needs to be interpreted with a description on the encoding and
   switching type.  The REQ-ADAP-CAP object [RFC8282] can be used in
   case of a mono-layer request; however, in case of a multi-layer
   request, it is possible to have more than one object, so it is better
   to have a dedicated TLV for the label and label request.  These TLVs
   MAY be ignored, in which case a response with NO-PATH SHOULD be
   returned, as described in Section 2.5.1.  Per [RFC5440], the LABEL-
   SET TLV is encoded as follows.  The type of the LABEL-SET TLV is 43.
   The TLV Length is variable, and the value encoding follows
   Section 3.5 of [RFC3471], with the addition of a U bit, O bit, and L
   bit.  The L bit is used to represent a suggested set of labels,
   following the semantic of Suggested Label as defined by [RFC3471].

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Action     |    Reserved |L|O|U|        Label Type         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          Subchannel 1                         |
    |                              ...                              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    :                               :                               :
    :                               :                               :
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          Subchannel N                         |
    |                              ...                              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   A LABEL-SET TLV represents a set of possible labels that can be used
   on an interface.  If the L bit is cleared, the label allocated on the
   first endpoint MUST be within the label set range.  The Action
   parameter in the LABEL-SET indicates the type of list provided.
   These parameters are described by [RFC3471], Section 3.5.1.

   The U, O, and L bits are defined as follows:

      U:   Upstream direction.  Set for the upstream (reverse) direction
           in case of bidirectional LSP.

      O:   Old label.  Set when the TLV represents the old (previously
           allocated) label in case of reoptimization.  The R bit of the
           RP object MUST be set to 1.  If the L bit is set, this bit
           SHOULD be set to 0 and ignored on receipt.  When this bit is
           set, the Action field MUST be set to 0 (Inclusive List), and
           the LABEL-SET MUST contain one subchannel.

      L:   Loose label.  Set when the TLV indicates to the PCE that a
           set of preferred (ordered) labels are to be used.  The PCE
           MAY use those labels for label allocation.

   Several LABEL_SET TLVs MAY be present with the O bit cleared;
   LABEL_SET TLVs with the L bit set can be combined with a LABEL_SET
   TLV with the L bit cleared.  There MUST NOT be more than two
   LABEL_SET TLVs present with the O bit set.  If there are two
   LABEL_SET TLVs present, there MUST NOT be more than one with the U
   bit set, and there MUST NOT be more than one with the U bit cleared.
   For a given U bit value, if more than one LABEL_SET TLV with the O
   bit set is present, the first TLV MUST be processed, and the
   following TLVs that have the same U and O bits MUST be ignored.

   A LABEL-SET TLV with the O and L bits set MUST trigger a PCErr
   message with Error-Type=10 (Reception of an invalid object) and
   Error-value=29 (Wrong LABEL-SET TLV present with O and L bits set).

   A LABEL-SET TLV that has the O bit set and an Action field not set to
   0 (Inclusive List) or that contains more than one subchannel MUST
   trigger a PCErr message with Error-Type=10 (Reception of an invalid
   object) and Error-value=30 (Wrong LABEL-SET TLV present with O bit
   set and wrong format).

   If a LABEL-SET TLV is present with the O bit set, the R bit of the RP
   object MUST be set; otherwise, a PCErr message MUST be sent with
   Error-Type=10 (Reception of an invalid object) and Error-value=28
   (LABEL-SET TLV present with O bit set but without R bit set in RP).

2.6.  IRO Extension

   The IRO as defined in [RFC5440] is used to include specific objects
   in the path.  RSVP-TE allows the inclusion of a label definition.  In
   order to fulfill requirement 13 in Section 3.1 of [RFC7025], the IRO
   needs to support the new subobject type as defined in [RFC3473]:

                           +======+===========+
                           | Type | Subobject |
                           +======+===========+
                           | 10   | Label     |
                           +------+-----------+

                                 Table 5

   The Label subobject MUST follow a subobject identifying a link,
   currently an IP address subobject (Type 1 or 2) or an interface ID
   (Type 4) subobject.  If an IP address subobject is used, then the
   given IP address MUST be associated with a link.  More than one Label
   subobject MAY follow each subobject identifying a link.  The
   procedure associated with this subobject is as follows.

   If the PCE is able to allocate labels (e.g., via explicit label
   control), the PCE MUST allocate one label from within the set of
   label values for the given link.  If the PCE does not assign labels,
   then it sends a response with a NO-PATH object, containing a NO-PATH-
   VECTOR TLV with the bit "No label resource in range" set.

2.7.  XRO Extension

   The XRO as defined in [RFC5521] is used to exclude specific objects
   in the path.  RSVP-TE allows the exclusion of certain labels
   [RFC6001].  In order to fulfill requirement 13 in Section 3.1 of
   [RFC7025], the PCEP's XRO needs to support a new subobject to enable
   label exclusion.

   The encoding of the XRO Label subobject follows the encoding of the
   ERO Label subobject defined in [RFC3473] and the XRO subobject
   defined in [RFC5521].  The XRO Label subobject (Type 10) represents
   one label and is defined 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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |X|    Type=10  |    Length     |U|   Reserved  |   C-Type      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             Label                             |
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   X (1 bit):  See [RFC5521].  The X bit indicates whether the exclusion
      is mandatory or desired.  0 indicates that the resource specified
      MUST be excluded from the path computed by the PCE. 1 indicates
      that the resource specified SHOULD be excluded from the path
      computed by the PCE, but it MAY be included subject to the PCE
      policy and the absence of a viable path that meets the other
      constraints and excludes the resource.

   Type (7 bits):  The type of the XRO Label subobject is 10.

   Length (8 bits):  See [RFC5521].  The total length of the subobject
      in bytes (including the Type and Length fields).  The length is
      always divisible by 4.

   U (1 bit):  See [RFC3471], Section 6.1.

   C-Type (8 bits):  The C-Type of the included Label object as defined
      in [RFC3473].

   Label:  See [RFC3471].

   The Label subobject MUST follow a subobject identifying a link,
   currently an IP address subobject (Type 1 or 2) or an interface ID
   (Type 4) subobject.  If an IP address subobject is used, the given IP
   address MUST be associated with a link.  More than one label
   subobject MAY follow a subobject identifying a link.

                           +======+===========+
                           | Type | Subobject |
                           +======+===========+
                           | 10   | Label     |
                           +------+-----------+

                                 Table 6

2.8.  LSPA Extensions

   The LSPA carries the LSP attributes.  In the end-to-end recovery
   context, this also includes the protection state information.  A new
   TLV is defined to fulfill requirement 7 in Section 3.1 of [RFC7025]
   and requirement 3 in Section 3.2 of [RFC7025].  This TLV contains the
   information of the PROTECTION object defined by [RFC4872] and can be
   used as a policy input.  The LSPA object MAY carry a PROTECTION-
   ATTRIBUTE TLV (Type 44), which is defined 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                       |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |S|P|N|O|  Reserved | LSP Flags |     Reserved      | Link Flags|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |I|R|   Reserved    | Seg.Flags |           Reserved            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The content is as defined in [RFC4872], Section 14 and [RFC4873],
   Section 6.1.

   The LSP (protection) Flags field or the Link Flags field can be used
   by a PCE implementation for routing policy input.  The other
   attributes are only meaningful for a stateful PCE.

   This TLV is OPTIONAL and MAY be ignored by the PCE.  If ignored by
   the PCE, it MUST NOT include the TLV in the LSPA of the response.
   When the TLV is used by the PCE, an LSPA object and the PROTECTION-
   ATTRIBUTE TLV MUST be included in the response.  Fields that were not
   considered MUST be set to 0.

2.9.  NO-PATH Object Extension

   The NO-PATH object is used in PCRep messages in response to an
   unsuccessful Path Computation Request (the PCE could not find a path
   satisfying the set of constraints).  In this scenario, the PCE MUST
   include a NO-PATH object in the PCRep message.  The NO-PATH object
   MAY carry the NO-PATH-VECTOR TLV that specifies more information on
   the reasons that led to a negative reply.  In case of GMPLS networks,
   there could be some additional constraints that led to the failure
   such as protection mismatch, lack of resources, and so on.  Several
   new flags have been defined in the 32-bit Flag field of the NO-PATH-
   VECTOR TLV, but no modifications have been made in the NO-PATH
   object.

2.9.1.  Extensions to NO-PATH-VECTOR TLV

   The modified NO-PATH-VECTOR TLV carrying the additional information
   is as follows:

      Bit number 18:  Protection Mismatch (1 bit).  Specifies the
         mismatch of the protection type in the PROTECTION-ATTRIBUTE TLV
         in the request.

      Bit number 17:  No Resource (1 bit).  Specifies that the resources
         are not currently sufficient to provide the path.

      Bit number 16:  Granularity not supported (1 bit).  Specifies that
         the PCE is not able to provide a path with the requested
         granularity.

      Bit number 15:  No endpoint label resource (1 bit).  Specifies
         that the PCE is not able to provide a path because of the
         endpoint label restriction.

      Bit number 14:  No endpoint label resource in range (1 bit).
         Specifies that the PCE is not able to provide a path because of
         the endpoint label set restriction.

      Bit number 13:  No label resource in range (1 bit).  Specifies
         that the PCE is not able to provide a path because of the label
         set restriction.

      Bit number 12:  LOAD-BALANCING could not be performed with the
         bandwidth constraints (1 bit).  Specifies that the PCE is not
         able to provide a path because it could not map the BANDWIDTH
         into the parameters specified by the LOAD-BALANCING.

3.  Additional Error-Types and Error-Values Defined

   A PCEP-ERROR object is used to report a PCEP error and is
   characterized by an Error-Type that specifies the type of error and
   an Error-value that provides additional information about the error.
   An additional Error-Type and several Error-values are defined to
   represent some of the errors related to the newly identified objects,
   which are related to GMPLS networks.  For each PCEP error, an Error-
   Type and an Error-value are defined.  Error-Types 1 to 10 are already
   defined in [RFC5440].  Additional Error-values are defined for Error-
   Types 4 and 10.  A new Error-Type 29 (Path computation failure) is
   defined in this document.

   Error-Type 29 (Path computation failure) is used to reflect
   constraints not understood by the PCE, for instance, when the PCE is
   not able to understand the Generalized bandwidth.  If the constraints
   are understood, but the PCE is unable to find those constraints, NO-
   PATH is to be used.

       +============+===============+==============================+
       | Error-Type | Meaning       | Error-value                  |
       +============+===============+==============================+
       | 4          | Not supported |                              |
       |            | object        |                              |
       +------------+---------------+------------------------------+
       |            |               | 6: BANDWIDTH object type 3   |
       |            |               | or 4 not supported           |
       +------------+---------------+------------------------------+
       |            |               | 7: Unsupported endpoint type |
       |            |               | in END-POINTS Generalized    |
       |            |               | Endpoint object type         |
       +------------+---------------+------------------------------+
       |            |               | 8: Unsupported TLV present   |
       |            |               | in END-POINTS Generalized    |
       |            |               | Endpoint object type         |
       +------------+---------------+------------------------------+
       |            |               | 9: Unsupported granularity   |
       |            |               | in the RP object flags       |
       +------------+---------------+------------------------------+
       | 10         | Reception of  |                              |
       |            | an invalid    |                              |
       |            | object        |                              |
       +------------+---------------+------------------------------+
       |            |               | 24: Bad BANDWIDTH object     |
       |            |               | type 3 or 4                  |
       +------------+---------------+------------------------------+
       |            |               | 25: Unsupported LSP          |
       |            |               | Protection Flags in          |
       |            |               | PROTECTION-ATTRIBUTE TLV     |
       +------------+---------------+------------------------------+
       |            |               | 26: Unsupported Secondary    |
       |            |               | LSP Protection Flags in      |
       |            |               | PROTECTION-ATTRIBUTE TLV     |
       +------------+---------------+------------------------------+
       |            |               | 27: Unsupported Link         |
       |            |               | Protection Type in           |
       |            |               | PROTECTION-ATTRIBUTE TLV     |
       +------------+---------------+------------------------------+
       |            |               | 28: LABEL-SET TLV present    |
       |            |               | with O bit set but without R |
       |            |               | bit set in RP                |
       +------------+---------------+------------------------------+
       |            |               | 29: Wrong LABEL-SET TLV      |
       |            |               | present with O and L bits    |
       |            |               | set                          |
       +------------+---------------+------------------------------+
       |            |               | 30: Wrong LABEL-SET TLV      |
       |            |               | present with O bit set and   |
       |            |               | wrong format                 |
       +------------+---------------+------------------------------+
       |            |               | 31: Missing GMPLS-CAPABILITY |
       |            |               | TLV                          |
       +------------+---------------+------------------------------+
       | 29         | Path          |                              |
       |            | computation   |                              |
       |            | failure       |                              |
       +------------+---------------+------------------------------+
       |            |               | 0: Unassigned                |
       +------------+---------------+------------------------------+
       |            |               | 1: Unacceptable request      |
       |            |               | message                      |
       +------------+---------------+------------------------------+
       |            |               | 2: Generalized bandwidth     |
       |            |               | value not supported          |
       +------------+---------------+------------------------------+
       |            |               | 3: Label set constraint      |
       |            |               | could not be met             |
       +------------+---------------+------------------------------+
       |            |               | 4: Label constraint could    |
       |            |               | not be met                   |
       +------------+---------------+------------------------------+

                                  Table 7

4.  Manageability Considerations

   This section follows the guidance of [RFC6123].

4.1.  Control of Function through Configuration and Policy

   This document makes no change to the basic operation of PCEP, so the
   requirements described in [RFC5440], Section 8.1 also apply to this
   document.  In addition to those requirements, a PCEP implementation
   may allow the configuration of the following parameters:

   *  Accepted RG in the RP object.

   *  Default RG to use (overriding the one present in the PCReq).

   *  Accepted BANDWIDTH object type 3 and 4 parameters in the request
      and default mapping to use when not specified in the request.

   *  Accepted LOAD-BALANCING object type 2 parameters in request.

   *  Accepted endpoint type and allowed TLVs in object END-POINTS with
      the object type Generalized Endpoint.

   *  Accepted range for label restrictions in END-POINTS or IRO/XRO
      objects.

   *  Acceptance and suppression of the PROTECTION-ATTRIBUTE TLV.

   The configuration of the above parameters is applicable to the
   different sessions as described in [RFC5440], Section 8.1 (by
   default, per PCEP peer, etc.).

4.2.  Information and Data Models

   This document makes no change to the basic operation of PCEP, so the
   requirements described in [RFC5440], Section 8.2 also apply to this
   document.  This document does not introduce any new ERO subobjects;
   the ERO information model is already covered in [RFC4802].

4.3.  Liveness Detection and Monitoring

   This document makes no change to the basic operation of PCEP, so
   there are no changes to the requirements for liveness detection and
   monitoring in [RFC4657] and [RFC5440], Section 8.3.

4.4.  Verifying Correct Operation

   This document makes no change to the basic operations of PCEP and the
   considerations described in [RFC5440], Section 8.4.  New errors
   defined by this document should satisfy the requirement to log error
   events.

4.5.  Requirements on Other Protocols and Functional Components

   No new requirements on other protocols and functional components are
   made by this document.  This document does not require ERO object
   extensions.  Any new ERO subobject defined in the TEAS or CCAMP
   Working Groups can be adopted without modifying the operations
   defined in this document.

4.6.  Impact on Network Operation

   This document makes no change to the basic operations of PCEP and the
   considerations described in [RFC5440], Section 8.6.  In addition to
   the limit on the rate of messages sent by a PCEP speaker, a limit MAY
   be placed on the size of the PCEP messages.

5.  IANA Considerations

   IANA assigns values to PCEP objects and TLVs.  IANA has made
   allocations for the newly defined objects and TLVs defined in this
   document.  In addition, IANA manages the space of flags that have
   been newly added in the TLVs.

5.1.  PCEP Objects

   New object types are defined in Sections 2.3, 2.4, and 2.5.1.  IANA
   has made the following Object-Type allocations in the "PCEP Objects"
   subregistry.

      +==============+================+=================+===========+
      | Object-Class | Name           | Object-Type     | Reference |
      | Value        |                |                 |           |
      +==============+================+=================+===========+
      | 5            | BANDWIDTH      | 3: Generalized  | RFC 8779, |
      |              |                | bandwidth       | Section   |
      |              |                |                 | 2.3       |
      +--------------+----------------+-----------------+-----------+
      |              |                | 4: Generalized  | RFC 8779, |
      |              |                | bandwidth of an | Section   |
      |              |                | existing TE-LSP | 2.3       |
      |              |                | for which a     |           |
      |              |                | reoptimization  |           |
      |              |                | is requested    |           |
      +--------------+----------------+-----------------+-----------+
      | 14           | LOAD-BALANCING | 2: Generalized  | RFC 8779, |
      |              |                | Load Balancing  | Section   |
      |              |                |                 | 2.4       |
      +--------------+----------------+-----------------+-----------+
      | 4            | END-POINTS     | 5: Generalized  | RFC 8779, |
      |              |                | Endpoint        | Section   |
      |              |                |                 | 2.5       |
      +--------------+----------------+-----------------+-----------+

                                  Table 8

5.2.  Endpoint Type Field in the Generalized END-POINTS Object

   IANA has created a new "Generalized Endpoint Types" registry to
   manage the Endpoint Type field of the END-POINTS object, the object
   type Generalized Endpoint, and the code space.

   New endpoint types in the Unassigned range are assigned by Standards
   Action [RFC8126].  Each endpoint type should be tracked with the
   following attributes:

   *  Value

   *  Type

   *  Defining RFC

   New endpoint types in the Experimental Use range will not be
   registered with IANA and MUST NOT be mentioned by any RFCs.

   The following values are defined by this document (see Table 4 in
   Section 2.5.1):

            +=========+======================================+
            | Value   | Type                                 |
            +=========+======================================+
            | 0       | Point-to-Point                       |
            +---------+--------------------------------------+
            | 1       | Point-to-Multipoint with leaf type 1 |
            +---------+--------------------------------------+
            | 2       | Point-to-Multipoint with leaf type 2 |
            +---------+--------------------------------------+
            | 3       | Point-to-Multipoint with leaf type 3 |
            +---------+--------------------------------------+
            | 4       | Point-to-Multipoint with leaf type 4 |
            +---------+--------------------------------------+
            | 5-244   | Unassigned                           |
            +---------+--------------------------------------+
            | 245-255 | Experimental Use                     |
            +---------+--------------------------------------+

                                 Table 9

5.3.  New PCEP TLVs

   IANA manages a registry for PCEP TLV code points (see [RFC5440]),
   which is maintained as the "PCEP TLV Type Indicators" subregistry of
   the "Path Computation Element Protocol (PCEP) Numbers" registry.
   IANA has allocated the following per this document:

       +=======+======================+===========================+
       | Value | Meaning              | Reference                 |
       +=======+======================+===========================+
       |   39  | IPV4-ADDRESS         | RFC 8779, Section 2.5.2.1 |
       +-------+----------------------+---------------------------+
       |   40  | IPV6-ADDRESS         | RFC 8779, Section 2.5.2.2 |
       +-------+----------------------+---------------------------+
       |   41  | UNNUMBERED-ENDPOINT  | RFC 8779, Section 2.5.2.3 |
       +-------+----------------------+---------------------------+
       |   42  | LABEL-REQUEST        | RFC 8779, Section 2.5.2.4 |
       +-------+----------------------+---------------------------+
       |   43  | LABEL-SET            | RFC 8779, Section 2.5.2.5 |
       +-------+----------------------+---------------------------+
       |   44  | PROTECTION-ATTRIBUTE | RFC 8779, Section 2.8     |
       +-------+----------------------+---------------------------+
       |   45  | GMPLS-CAPABILITY     | RFC 8779, Section 2.1.2   |
       +-------+----------------------+---------------------------+

                                 Table 10

5.4.  RP Object Flag Field

   A new flag is defined in Section 2.2 for the Flags field of the RP
   object.  IANA has made the following allocation in the "RP Object
   Flag Field" subregistry:

       +=======+==========================+=======================+
       |  Bit  | Description              | Reference             |
       +=======+==========================+=======================+
       | 15-16 | Routing Granularity (RG) | RFC 8779, Section 2.2 |
       +-------+--------------------------+-----------------------+

                                 Table 11

5.5.  New PCEP Error Codes

   New PCEP Error-Types and Error-values are defined in Section 3.  IANA
   has made the following allocations in the "PCEP-ERROR Object Error
   Types and Values" registry:

    +============+=============+==========================+===========+
    | Error-Type | Meaning     | Error-value              | Reference |
    +============+=============+==========================+===========+
    | 4          | Not         |                          | [RFC5440] |
    |            | supported   |                          |           |
    |            | object      |                          |           |
    +------------+-------------+--------------------------+-----------+
    |            |             | 6: BANDWIDTH object type | RFC 8779  |
    |            |             | 3 or 4 not supported     |           |
    +------------+-------------+--------------------------+-----------+
    |            |             | 7: Unsupported endpoint  | RFC 8779  |
    |            |             | type in END-POINTS       |           |
    |            |             | Generalized Endpoint     |           |
    |            |             | object type              |           |
    +------------+-------------+--------------------------+-----------+
    |            |             | 8: Unsupported TLV       | RFC 8779  |
    |            |             | present in END-POINTS    |           |
    |            |             | Generalized Endpoint     |           |
    |            |             | object type              |           |
    +------------+-------------+--------------------------+-----------+
    |            |             | 9: Unsupported           | RFC 8779  |
    |            |             | granularity in the RP    |           |
    |            |             | object flags             |           |
    +------------+-------------+--------------------------+-----------+
    | 10         | Reception   |                          | [RFC5440] |
    |            | of an       |                          |           |
    |            | invalid     |                          |           |
    |            | object      |                          |           |
    +------------+-------------+--------------------------+-----------+
    |            |             | 24: Bad BANDWIDTH object | RFC 8779  |
    |            |             | type 3 or 4              |           |
    +------------+-------------+--------------------------+-----------+
    |            |             | 25: Unsupported LSP      | RFC 8779  |
    |            |             | Protection Flags in      |           |
    |            |             | PROTECTION-ATTRIBUTE TLV |           |
    +------------+-------------+--------------------------+-----------+
    |            |             | 26: Unsupported          | RFC 8779  |
    |            |             | Secondary LSP Protection |           |
    |            |             | Flags in PROTECTION-     |           |
    |            |             | ATTRIBUTE TLV            |           |
    +------------+-------------+--------------------------+-----------+
    |            |             | 27: Unsupported Link     | RFC 8779  |
    |            |             | Protection Type in       |           |
    |            |             | PROTECTION-ATTRIBUTE TLV |           |
    +------------+-------------+--------------------------+-----------+
    |            |             | 28: LABEL-SET TLV        | RFC 8779  |
    |            |             | present with O bit set   |           |
    |            |             | but without R bit set in |           |
    |            |             | RP                       |           |
    +------------+-------------+--------------------------+-----------+
    |            |             | 29: Wrong LABEL-SET TLV  | RFC 8779  |
    |            |             | present with O and L     |           |
    |            |             | bits set                 |           |
    +------------+-------------+--------------------------+-----------+
    |            |             | 30: Wrong LABEL-SET TLV  | RFC 8779  |
    |            |             | present with O bit set   |           |
    |            |             | and wrong format         |           |
    +------------+-------------+--------------------------+-----------+
    |            |             | 31: Missing GMPLS-       | RFC 8779  |
    |            |             | CAPABILITY TLV           |           |
    +------------+-------------+--------------------------+-----------+
    | 29         | Path        |                          | RFC 8779  |
    |            | computation |                          |           |
    |            | failure     |                          |           |
    +------------+-------------+--------------------------+-----------+
    |            |             | 0: Unassigned            | RFC 8779  |
    +------------+-------------+--------------------------+-----------+
    |            |             | 1: Unacceptable request  | RFC 8779  |
    |            |             | message                  |           |
    +------------+-------------+--------------------------+-----------+
    |            |             | 2: Generalized bandwidth | RFC 8779  |
    |            |             | value not supported      |           |
    +------------+-------------+--------------------------+-----------+
    |            |             | 3: Label set constraint  | RFC 8779  |
    |            |             | could not be met         |           |
    +------------+-------------+--------------------------+-----------+
    |            |             | 4: Label constraint      | RFC 8779  |
    |            |             | could not be met         |           |
    +------------+-------------+--------------------------+-----------+

                                  Table 12

5.6.  New Bits in NO-PATH-VECTOR TLV

   New NO-PATH-VECTOR TLV bits are defined in Section 2.9.1.  IANA has
   made the following allocations in the "NO-PATH-VECTOR TLV Flag Field"
   subregistry:

        +=====+=======================================+===========+
        | Bit | Description                           | Reference |
        +=====+=======================================+===========+
        | 18  | Protection Mismatch                   | RFC 8779  |
        +-----+---------------------------------------+-----------+
        | 17  | No Resource                           | RFC 8779  |
        +-----+---------------------------------------+-----------+
        | 16  | Granularity not supported             | RFC 8779  |
        +-----+---------------------------------------+-----------+
        | 15  | No endpoint label resource            | RFC 8779  |
        +-----+---------------------------------------+-----------+
        | 14  | No endpoint label resource in range   | RFC 8779  |
        +-----+---------------------------------------+-----------+
        | 13  | No label resource in range            | RFC 8779  |
        +-----+---------------------------------------+-----------+
        | 12  | LOAD-BALANCING could not be performed | RFC 8779  |
        |     | with the bandwidth constraints        |           |
        +-----+---------------------------------------+-----------+

                                  Table 13

5.7.  New Subobject for the Include Route Object

   IANA has added a new subobject in the "IRO Subobjects" subregistry of
   the "Path Computation Element Protocol (PCEP) Numbers" registry.

   IANA has added a new subobject that can be carried in the IRO as
   follows:

                    +=======+=============+===========+
                    | Value | Description | Reference |
                    +=======+=============+===========+
                    | 10    | Label       | RFC 8779  |
                    +-------+-------------+-----------+

                                  Table 14

5.8.  New Subobject for the Exclude Route Object

   IANA has added a new subobject in the "XRO Subobjects" subregistry of
   the "Path Computation Element Protocol (PCEP) Numbers" registry.

   IANA has added a new subobject that can be carried in the XRO as
   follows:

                    +=======+=============+===========+
                    | Value | Description | Reference |
                    +=======+=============+===========+
                    | 10    | Label       | RFC 8779  |
                    +-------+-------------+-----------+

                                  Table 15

5.9.  New GMPLS-CAPABILITY TLV Flag Field

   IANA has created a new "GMPLS-CAPABILITY TLV Flag Field" subregistry
   within the "Path Computation Element Protocol (PCEP) Numbers"
   registry to manage the Flag field of the GMPLS-CAPABILITY TLV.

   New bit numbers are to be assigned by Standards Action [RFC8126].
   Each bit should be tracked with the following qualities:

   *  Bit number (counting from bit 0 as the most significant bit)

   *  Capability description

   *  Defining RFC

   The initial contents of the subregistry are empty, with bits 0-31
   marked as Unassigned.

6.  Security Considerations

   GMPLS controls multiple technologies and types of network elements.
   The LSPs that are established using GMPLS, whose paths can be
   computed using the PCEP extensions to support GMPLS described in this
   document, can carry a high volume of traffic and can be a critical
   part of a network infrastructure.  The PCE can then play a key role
   in the use of the resources and in determining the physical paths of
   the LSPs; thus, it is important to ensure the identity of the PCE and
   PCC, as well as the communication channel.  In many deployments,
   there will be a completely isolated network where an external attack
   is of very low probability.  However, there are other deployment
   cases in which the PCC-PCE communication can be more exposed, and
   there could be more security considerations.  There are three main
   situations in case an attack in the GMPLS PCE context happens:

      PCE Identity theft:  A legitimate PCC could request a path for a
         GMPLS LSP to a malicious PCE, which poses as a legitimate PCE.
         The response may be that the LSP traverses some geographical
         place known to the attacker where confidentiality (sniffing),
         integrity (traffic modification), or availability (traffic
         drop) attacks could be performed by use of an attacker-
         controlled middlebox device.  Also, the resulting LSP can omit
         constraints given in the requests (e.g., excluding certain
         fibers and avoiding some SRLGs), which could make the LSP that
         will be set up later look perfectly fine, but it will be in a
         risky situation.  Also, the result can lead to the creation of
         an LSP that does not provide the desired quality and gives less
         resources than necessary.

      PCC Identity theft:  A malicious PCC, acting as a legitimate PCC,
         requesting LSP paths to a legitimate PCE can obtain a good
         knowledge of the physical topology of a critical
         infrastructure.  It could learn enough details to plan a later
         physical attack.

      Message inspection:  As in the previous case, knowledge of an
         infrastructure can be obtained by sniffing PCEP messages.

   The security mechanisms can provide authentication and
   confidentiality for those scenarios where PCC-PCE communication
   cannot be completely trusted.  [RFC8253] provides origin
   verification, message integrity, and replay protection, and it
   ensures that a third party cannot decipher the contents of a message.

   In order to protect against the malicious PCE case, the PCC SHOULD
   have policies in place to accept or not accept the path provided by
   the PCE.  Those policies can verify if the path follows the provided
   constraints.  In addition, a technology-specific data-plane mechanism
   can be used (following [RFC5920], Section 5.8) to verify the data-
   plane connectivity and deviation from constraints.

   The usage of Transport Layer Security (TLS) to enhance PCEP security
   is described in [RFC8253].  The document describes the initiation of
   TLS procedures, the TLS handshake mechanisms, the TLS methods for
   peer authentication, the applicable TLS ciphersuites for data
   exchange, and the handling of errors in the security checks.  PCE and
   PCC SHOULD use the mechanism in [RFC8253] to protect against
   malicious PCC and PCE.

   Finally, as mentioned by [RFC7025], the PCEP extensions that support
   GMPLS should be considered under the same security as current PCE
   work, and this extension will not change the underlying security
   issues.  However, given the critical nature of the network
   infrastructures under control by GMPLS, the security issues described
   above should be seriously considered when deploying a GMPLS-PCE-based
   control plane for such networks.  For an overview of the security
   considerations, not only related to PCE/PCEP, and vulnerabilities of
   a GMPLS control plane, see [RFC5920].

7.  References

7.1.  Normative References

   [G.709-v3] ITU-T, "Interfaces for the optical transport network",
              Recommendation G.709/Y.1331, June 2016,
              <https://www.itu.int/rec/T-REC-G.709-201606-I/en>.

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

   [RFC2210]  Wroclawski, J., "The Use of RSVP with IETF Integrated
              Services", RFC 2210, DOI 10.17487/RFC2210, September 1997,
              <https://www.rfc-editor.org/info/rfc2210>.

   [RFC3209]  Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
              and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
              Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001,
              <https://www.rfc-editor.org/info/rfc3209>.

   [RFC3471]  Berger, L., Ed., "Generalized Multi-Protocol Label
              Switching (GMPLS) Signaling Functional Description",
              RFC 3471, DOI 10.17487/RFC3471, January 2003,
              <https://www.rfc-editor.org/info/rfc3471>.

   [RFC3473]  Berger, L., Ed., "Generalized Multi-Protocol Label
              Switching (GMPLS) Signaling Resource ReserVation Protocol-
              Traffic Engineering (RSVP-TE) Extensions", RFC 3473,
              DOI 10.17487/RFC3473, January 2003,
              <https://www.rfc-editor.org/info/rfc3473>.

   [RFC3477]  Kompella, K. and Y. Rekhter, "Signalling Unnumbered Links
              in Resource ReSerVation Protocol - Traffic Engineering
              (RSVP-TE)", RFC 3477, DOI 10.17487/RFC3477, January 2003,
              <https://www.rfc-editor.org/info/rfc3477>.

   [RFC3630]  Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering
              (TE) Extensions to OSPF Version 2", RFC 3630,
              DOI 10.17487/RFC3630, September 2003,
              <https://www.rfc-editor.org/info/rfc3630>.

   [RFC4003]  Berger, L., "GMPLS Signaling Procedure for Egress
              Control", RFC 4003, DOI 10.17487/RFC4003, February 2005,
              <https://www.rfc-editor.org/info/rfc4003>.

   [RFC4328]  Papadimitriou, D., Ed., "Generalized Multi-Protocol Label
              Switching (GMPLS) Signaling Extensions for G.709 Optical
              Transport Networks Control", RFC 4328,
              DOI 10.17487/RFC4328, January 2006,
              <https://www.rfc-editor.org/info/rfc4328>.

   [RFC4606]  Mannie, E. and D. Papadimitriou, "Generalized Multi-
              Protocol Label Switching (GMPLS) Extensions for
              Synchronous Optical Network (SONET) and Synchronous
              Digital Hierarchy (SDH) Control", RFC 4606,
              DOI 10.17487/RFC4606, August 2006,
              <https://www.rfc-editor.org/info/rfc4606>.

   [RFC4802]  Nadeau, T., Ed. and A. Farrel, Ed., "Generalized
              Multiprotocol Label Switching (GMPLS) Traffic Engineering
              Management Information Base", RFC 4802,
              DOI 10.17487/RFC4802, February 2007,
              <https://www.rfc-editor.org/info/rfc4802>.

   [RFC4872]  Lang, J.P., Ed., Rekhter, Y., Ed., and D. Papadimitriou,
              Ed., "RSVP-TE Extensions in Support of End-to-End
              Generalized Multi-Protocol Label Switching (GMPLS)
              Recovery", RFC 4872, DOI 10.17487/RFC4872, May 2007,
              <https://www.rfc-editor.org/info/rfc4872>.

   [RFC4873]  Berger, L., Bryskin, I., Papadimitriou, D., and A. Farrel,
              "GMPLS Segment Recovery", RFC 4873, DOI 10.17487/RFC4873,
              May 2007, <https://www.rfc-editor.org/info/rfc4873>.

   [RFC5088]  Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R.
              Zhang, "OSPF Protocol Extensions for Path Computation
              Element (PCE) Discovery", RFC 5088, DOI 10.17487/RFC5088,
              January 2008, <https://www.rfc-editor.org/info/rfc5088>.

   [RFC5089]  Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R.
              Zhang, "IS-IS Protocol Extensions for Path Computation
              Element (PCE) Discovery", RFC 5089, DOI 10.17487/RFC5089,
              January 2008, <https://www.rfc-editor.org/info/rfc5089>.

   [RFC5440]  Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation
              Element (PCE) Communication Protocol (PCEP)", RFC 5440,
              DOI 10.17487/RFC5440, March 2009,
              <https://www.rfc-editor.org/info/rfc5440>.

   [RFC5511]  Farrel, A., "Routing Backus-Naur Form (RBNF): A Syntax
              Used to Form Encoding Rules in Various Routing Protocol
              Specifications", RFC 5511, DOI 10.17487/RFC5511, April
              2009, <https://www.rfc-editor.org/info/rfc5511>.

   [RFC5520]  Bradford, R., Ed., Vasseur, JP., and A. Farrel,
              "Preserving Topology Confidentiality in Inter-Domain Path
              Computation Using a Path-Key-Based Mechanism", RFC 5520,
              DOI 10.17487/RFC5520, April 2009,
              <https://www.rfc-editor.org/info/rfc5520>.

   [RFC5521]  Oki, E., Takeda, T., and A. Farrel, "Extensions to the
              Path Computation Element Communication Protocol (PCEP) for
              Route Exclusions", RFC 5521, DOI 10.17487/RFC5521, April
              2009, <https://www.rfc-editor.org/info/rfc5521>.

   [RFC5541]  Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of
              Objective Functions in the Path Computation Element
              Communication Protocol (PCEP)", RFC 5541,
              DOI 10.17487/RFC5541, June 2009,
              <https://www.rfc-editor.org/info/rfc5541>.

   [RFC6001]  Papadimitriou, D., Vigoureux, M., Shiomoto, K., Brungard,
              D., and JL. Le Roux, "Generalized MPLS (GMPLS) Protocol
              Extensions for Multi-Layer and Multi-Region Networks (MLN/
              MRN)", RFC 6001, DOI 10.17487/RFC6001, October 2010,
              <https://www.rfc-editor.org/info/rfc6001>.

   [RFC6003]  Papadimitriou, D., "Ethernet Traffic Parameters",
              RFC 6003, DOI 10.17487/RFC6003, October 2010,
              <https://www.rfc-editor.org/info/rfc6003>.

   [RFC6205]  Otani, T., Ed. and D. Li, Ed., "Generalized Labels for
              Lambda-Switch-Capable (LSC) Label Switching Routers",
              RFC 6205, DOI 10.17487/RFC6205, March 2011,
              <https://www.rfc-editor.org/info/rfc6205>.

   [RFC6387]  Takacs, A., Berger, L., Caviglia, D., Fedyk, D., and J.
              Meuric, "GMPLS Asymmetric Bandwidth Bidirectional Label
              Switched Paths (LSPs)", RFC 6387, DOI 10.17487/RFC6387,
              September 2011, <https://www.rfc-editor.org/info/rfc6387>.

   [RFC7139]  Zhang, F., Ed., Zhang, G., Belotti, S., Ceccarelli, D.,
              and K. Pithewan, "GMPLS Signaling Extensions for Control
              of Evolving G.709 Optical Transport Networks", RFC 7139,
              DOI 10.17487/RFC7139, March 2014,
              <https://www.rfc-editor.org/info/rfc7139>.

   [RFC7570]  Margaria, C., Ed., Martinelli, G., Balls, S., and B.
              Wright, "Label Switched Path (LSP) Attribute in the
              Explicit Route Object (ERO)", RFC 7570,
              DOI 10.17487/RFC7570, July 2015,
              <https://www.rfc-editor.org/info/rfc7570>.

   [RFC7792]  Zhang, F., Zhang, X., Farrel, A., Gonzalez de Dios, O.,
              and D. Ceccarelli, "RSVP-TE Signaling Extensions in
              Support of Flexi-Grid Dense Wavelength Division
              Multiplexing (DWDM) Networks", RFC 7792,
              DOI 10.17487/RFC7792, March 2016,
              <https://www.rfc-editor.org/info/rfc7792>.

   [RFC8126]  Cotton, M., Leiba, B., and T. Narten, "Guidelines for
              Writing an IANA Considerations Section in RFCs", BCP 26,
              RFC 8126, DOI 10.17487/RFC8126, June 2017,
              <https://www.rfc-editor.org/info/rfc8126>.

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

   [RFC8253]  Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody,
              "PCEPS: Usage of TLS to Provide a Secure Transport for the
              Path Computation Element Communication Protocol (PCEP)",
              RFC 8253, DOI 10.17487/RFC8253, October 2017,
              <https://www.rfc-editor.org/info/rfc8253>.

   [RFC8282]  Oki, E., Takeda, T., Farrel, A., and F. Zhang, "Extensions
              to the Path Computation Element Communication Protocol
              (PCEP) for Inter-Layer MPLS and GMPLS Traffic
              Engineering", RFC 8282, DOI 10.17487/RFC8282, December
              2017, <https://www.rfc-editor.org/info/rfc8282>.

   [RFC8306]  Zhao, Q., Dhody, D., Ed., Palleti, R., and D. King,
              "Extensions to the Path Computation Element Communication
              Protocol (PCEP) for Point-to-Multipoint Traffic
              Engineering Label Switched Paths", RFC 8306,
              DOI 10.17487/RFC8306, November 2017,
              <https://www.rfc-editor.org/info/rfc8306>.

7.2.  Informative References

   [RFC4655]  Farrel, A., Vasseur, J.-P., and J. Ash, "A Path
              Computation Element (PCE)-Based Architecture", RFC 4655,
              DOI 10.17487/RFC4655, August 2006,
              <https://www.rfc-editor.org/info/rfc4655>.

   [RFC4657]  Ash, J., Ed. and J.L. Le Roux, Ed., "Path Computation
              Element (PCE) Communication Protocol Generic
              Requirements", RFC 4657, DOI 10.17487/RFC4657, September
              2006, <https://www.rfc-editor.org/info/rfc4657>.

   [RFC5920]  Fang, L., Ed., "Security Framework for MPLS and GMPLS
              Networks", RFC 5920, DOI 10.17487/RFC5920, July 2010,
              <https://www.rfc-editor.org/info/rfc5920>.

   [RFC6123]  Farrel, A., "Inclusion of Manageability Sections in Path
              Computation Element (PCE) Working Group Drafts", RFC 6123,
              DOI 10.17487/RFC6123, February 2011,
              <https://www.rfc-editor.org/info/rfc6123>.

   [RFC6163]  Lee, Y., Ed., Bernstein, G., Ed., and W. Imajuku,
              "Framework for GMPLS and Path Computation Element (PCE)
              Control of Wavelength Switched Optical Networks (WSONs)",
              RFC 6163, DOI 10.17487/RFC6163, April 2011,
              <https://www.rfc-editor.org/info/rfc6163>.

   [RFC7025]  Otani, T., Ogaki, K., Caviglia, D., Zhang, F., and C.
              Margaria, "Requirements for GMPLS Applications of PCE",
              RFC 7025, DOI 10.17487/RFC7025, September 2013,
              <https://www.rfc-editor.org/info/rfc7025>.

   [RFC7449]  Lee, Y., Ed., Bernstein, G., Ed., Martensson, J., Takeda,
              T., Tsuritani, T., and O. Gonzalez de Dios, "Path
              Computation Element Communication Protocol (PCEP)
              Requirements for Wavelength Switched Optical Network
              (WSON) Routing and Wavelength Assignment", RFC 7449,
              DOI 10.17487/RFC7449, February 2015,
              <https://www.rfc-editor.org/info/rfc7449>.

Appendix A.  LOAD-BALANCING Usage for SDH Virtual Concatenation

   As an example, a request for one co-signaled n x VC-4 TE-LSP will not
   use LOAD-BALANCING.  In case the VC-4 components can use different
   paths, the BANDWIDTH with object type 3 will contain the complete n x
   VC-4 traffic specification, and the LOAD-BALANCING object will
   contain the minimum co-signaled VC-4.  For an SDH network, a request
   for a TE-LSP group with 10 VC-4 containers, with each path using at
   minimum 2 x VC-4 containers, can be represented with a BANDWIDTH
   object with object type 3, the Bw Spec Type set to 4, and the content
   of the Generalized Bandwidth field with ST=6, RCC=0, NCC=0, NVC=10,
   and MT=1.  The LOAD-BALANCING with object type 2 with the Bw Spec
   Type set to 4 and Max-LSP=5, Min Bandwidth Spec is ST=6, RCC=0,
   NCC=0, NVC=2, MT=1.  The PCE can respond with a maximum of 5 paths,
   with each path having a BANDWIDTH object type 3 and a Generalized
   Bandwidth field matching the Min Bandwidth Spec from the LOAD-
   BALANCING object of the corresponding request.

Acknowledgments

   The research of Ramon Casellas, Francisco Javier Jimenez Chico, Oscar
   Gonzalez de Dios, Cyril Margaria, and Franz Rambach that led to the
   results in this document received funding from the European
   Community's Seventh Framework Program FP7/2007-2013 under grant
   agreement no. 247674 and no. 317999.

   The authors would like to thank Julien Meuric, Lyndon Ong, Giada
   Lander, Jonathan Hardwick, Diego Lopez, David Sinicrope, Vincent
   Roca, Dhruv Dhody, Adrian Farrel, and Tianran Zhou for their review
   and useful comments.

   Thanks to Alisa Cooper, Benjamin Kaduk, Elwyn Davies, Martin
   Vigoureux, Roman Danyliw, and Suresh Krishnan for the IESG-related
   comments.

Contributors

   Elie Sfeir
   Coriant
   St. Martin Strasse 76
   81541 Munich
   Germany

   Email: elie.sfeir@coriant.com


   Franz Rambach
   Nockherstrasse 2-4
   81541 Munich
   Germany

   Phone: +49 178 8855738
   Email: franz.rambach@cgi.com


   Francisco Javier Jimenez Chico
   Telefonica Investigacion y Desarrollo
   C/ Emilio Vargas 6
   28043 Madrid
   Spain

   Phone: +34 91 3379037
   Email: fjjc@tid.es


   Suresh Babu

   Email: sureshhimnish@gmail.com


   Young Lee
   Samsung Electronics

   Email: younglee.tx@gmail.com


   Senthil Kumar S

   Email: ssenthilkumar@gmail.com


   Jun Sun
   Huawei Technologies
   Shenzhen
   China

   Email: johnsun@huawei.com


   Ramon Casellas
   CTTC - Centre Tecnologic de Telecomunicacions de Catalunya
   PMT Ed B4 Av. Carl Friedrich Gauss 7
   08660 Castelldefels, Barcelona
   Spain

   Phone: +34 93 6452916
   Email: ramon.casellas@cttc.e


Authors' Addresses

   Cyril Margaria (editor)
   Juniper

   Email: cmargaria@juniper.net


   Oscar Gonzalez de Dios (editor)
   Telefonica Investigacion y Desarrollo
   C/ Ronda de la Comunicacion
   28050 Madrid
   Spain

   Phone: +34 91 4833441
   Email: oscar.gonzalezdedios@telefonica.com


   Fatai Zhang (editor)
   Huawei Technologies
   F3-5-B R&D Center, Huawei Base
   Bantian, Longgang District
   Shenzhen
   518129
   China

   Email: zhangfatai@huawei.com