etsi-nfv-ns.yang 48.7 KB
Newer Older
1001
1002
1003
1004
1005
            "Identifies a flavour within the VLD.";
          reference
            "GS NFV IFA014: Section 6.3.2.2 VirtualLinkProfile
             information element";
        }
1006

1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
        uses local-affinity-or-anti-affinity-rule;

        list affinity-or-anti-affinity-group {
          key "id";

          description
            "Identifies an affinity or anti-affinity group the
             VLs instantiated according to the VlProfile belong
             to.";
          reference
            "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile
             information element";

          leaf id {
1021
            type leafref {
1022
              path "../../../affinity-or-anti-affinity-group/id";
1023
1024
            }
          }
1025
        }
1026

1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
        container max-bitrate-requirements {
          description
            "Specifies the maximum bitrate requirements for a VL
             instantiated according to this profile.";
          reference
            "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile
             information element";
          uses link-bitrate-requirements;
        }
        container min-bitrate-requirements {
          description
            "Specifies the minimum bitrate requirements for a VL
             instantiated according to this profile.";
          reference
            "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile
             information element";
          uses link-bitrate-requirements;
        }
      }
1046

1047
1048
      list scaling-aspect {
        key "id";
1049

1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
        description
          "The scaling aspects supported by this DF of the NS.";
        reference
          "GS NFV IFA014: Section 6.3.2.2 NsDf information element";

        leaf id {
          type string;
          description
            "Identifier of this NsScalingAspect information element.
             It uniquely identifies the NS scaling aspect in an
             NSD.";
          reference
            "GS NFV IFA014: Section 6.7.2.2 NsScalingAspect
             information element";
1064
1065
        }

1066
1067
1068
1069
1070
1071
1072
1073
1074
        leaf name {
          type string;
          description
            "Provides a human readable name of the NS scaling
             aspect.";
          reference
            "GS NFV IFA014: Section 6.7.2.2 NsScalingAspect
             information element";
        }
1075

1076
1077
        leaf description {
          type string;
1078
          description
1079
1080
            "Provides a human readable description of the NS
             scaling aspect.";
1081
          reference
1082
1083
1084
            "GS NFV IFA014: Section 6.7.2.2 NsScalingAspect
             information element";
        }
1085

1086
1087
1088
        leaf scaling-level {
          type leafref {
            path "../../ns-instantiation-level/id";
1089
          }
1090
1091
1092
1093
1094
1095
1096
          description
            "Describes the details of an NS level.";
          reference
            "GS NFV IFA014: Section 6.7.2.2 NsScalingAspect
             information element";
        }
      }
1097

1098
1099
      list affinity-or-anti-affinity-group {
        key "id";
1100

1101
1102
1103
1104
1105
1106
1107
1108
1109
        description
          "Specifies affinity or anti-affinity relationship
           applicable between the VNF instances created using
           different VNFDs, the Virtual Link instances created
           using different NsVirtualLinkDescs or the nested NS
           instances created using different NSDs in the same
           affinity or anti-affinity group.";
        reference
          "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
1110

1111
1112
1113
1114
1115
1116
1117
1118
        leaf id {
          type string;
          description
            "Identifier of Identifier of this
             AffinityOrAntiAffinityGroup information element.";
          reference
            "GS NFV IFA014: Section 6.3.5.2 AffinityOrAntiAffinity
             information element";
1119
1120
        }

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1121
        leaf type {
1122
1123
1124
1125
1126
1127
1128
1129
1130
          mandatory true;
          type affinity-type;
          description
            "Specifies the type of relationship that the members of
             the group have: 'affinity' or 'anti-affinity.'";
          reference
            "GS NFV IFA014: Section 6.3.5.2 AffinityOrAntiAffinity
             information element";
        }
1131

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1132
        leaf scope {
1133
1134
          mandatory true;
          type affinity-scope;
1135
          description
1136
1137
            "Specifies the scope of the affinity or anti-affinity
             relationship e.g. a NFVI node, an NFVI PoP, etc.";
1138
          reference
1139
1140
1141
1142
            "GS NFV IFA014: Section 6.3.5.2 AffinityOrAntiAffinity
             information element";
        }
      }
1143

1144
1145
1146
      list ns-instantiation-level {
        min-elements 1;
        key "id";
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
        description
          "Describes the details of an NS level.";
        reference
          "GS NFV IFA014: Section 6.3.2.2 NsDf information element
           GS NFV IFA014: Section 6.7.2.2 NsScaling information
           element";

        leaf id {
          type string;
          description
            "Identifier of this NsLevel information element. It
             uniquely identifies an NS level within the DF.";
          reference
            "GS NFV IFA014: Section 6.3.9.2 NsLevel information
             element";
        }

        leaf description {
          type string;
          description
            "Human readable description of the NS level.";
          reference
            "GS NFV IFA014: Section 6.3.9.2 NsLevel information
             element";
        }

        list vnf-to-level-mapping {
          key "vnf-profile-id";

          description
            "Specifies the profile of the VNFs involved in this NS
             level and, for each of them, the required number of
             instances.";
          reference
            "GS NFV IFA014: Section 6.3.9.2 NsLevel information
             element";

          leaf vnf-profile-id {
            type leafref {
              path "../../../vnf-profile/id";
            }
1189
            description
1190
1191
              "Identifies the profile to be used for a VNF
               involved in an NS level.";
1192
            reference
1193
              "GS NFV IFA014: Section 6.7.4.2 VnfToLevelMapping
1194
               information element";
1195
1196
          }

1197
1198
1199
          leaf number-of-instances {
            default 1;
            type uint32;
1200
            description
1201
1202
              "Specifies the number of VNF instances required for
               an NS level.";
1203
            reference
1204
              "GS NFV IFA014: Section 6.7.4.2 VnfToLevelMapping
1205
               information element";
1206
1207
1208
          }
        }

1209
1210
        list virtual-link-to-level-mapping {
          key "virtual-link-profile-id";
1211
1212

          description
1213
1214
            "Specifies the profile of the VLs involved in this NS
             level and, for each of them, the needed bandwidth.";
1215
          reference
1216
            "GS NFV IFA014: Section 6.3.9.2 NsLevel information
1217
1218
             element";

1219
1220
1221
1222
          leaf virtual-link-profile-id {
            type leafref {
              path "../../../virtual-link-profile/id";
            }
1223
            description
1224
1225
              "Identifies the profile to be used for a VL involved
               in an NS level.";
1226
            reference
1227
1228
              "GS NFV IFA014: Section 6.7.5.2
               VirtualLinkToLevelMapping information element";
1229
1230
          }

1231
1232
1233
1234
1235
          uses link-bitrate-requirements;
        }

        list ns-to-level-mapping {
          key "ns-profile-id";
1236

1237
1238
1239
1240
1241
1242
1243
          description
            "Specifies the profile of the nested NSs involved in
             this NS level and, for each of them, the required
             number of instances.";
          reference
            "GS NFV IFA014: Section 6.3.9.2 NsLevel information
             element";
1244

1245
1246
1247
1248
          leaf ns-profile-id {
            type leafref {
              path "../../../ns-profile/id";
            }
1249
            description
1250
1251
              "Identifies the profile to be used for a nested NS
               involved in the NS level.";
1252
            reference
1253
              "GS NFV IFA014: Section 6.7.6.2 NsToLevel information
1254
               element";
1255
1256
          }

1257
1258
1259
          leaf number-of-instances {
            default 1;
            type uint32;
1260
            description
1261
1262
              "Specifies the number of nested NS instances required
               for the NS scale level.";
1263
            reference
1264
              "GS NFV IFA014: Section 6.7.6.2 NsToLevel information
1265
               element";
1266
1267
          }
        }
1268

1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
        must "(count(vnf-to-level-mapping) + " +
             "count(virtual-link-to-level-mapping) + " +
             "count(ns-to-level-mapping)) > 0" {
          error-message
	    "At least one attribute between " +
            "vnf-to-level-mapping, " +
            "virtual-link-to-level-mapping and " +
            "ns-to-level-mapping shall be present.";
          description
            "At least one attribute between vnfToLevelMapping,
             vlirtualLinkToLevelMapping and nsToLevelMapping shall
             be present.";
          reference
            "GS NFV IFA014: Section 6.3.9.2 NsLevel information
             element";
        }
      }
1286

1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
      leaf default-instantiation-level {
        type leafref {
          path "../ns-instantiation-level/id";
        }
        description
          "Identifies the NS level which represents the default NS
           instantiation level for this DF. It shall be present if
           there are multiple 'nsIinstantiationLevel' entries.";
        reference
          "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
      }
1298

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
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
      container ns-lcm-additional-params {
        container instantiate {
          list params {
            key "key";

            leaf key {
              type string;
            }

            leaf value {
              type string;
            }
	    description
              "Array of KVP requirements for additional parameters
               of NS to be passed when invoking the Instantiate Ns
               operation.";
            reference
              "GS NFV IFA014: Section 6.2.10.3
               InstantiateNsAdditionalParams information element";
          }
        }

        container scale {
          list params {
            key "key";

            leaf key {
              type string;
            }

            leaf value {
              type string;
            }
	    description
              "Array of KVP requirements for additional parameters
               of NS to be passed when invoking the Scale Ns
               operation.";
            reference
              "GS NFV IFA014: Section 6.2.10.4
               ScaleNsAdditionalParams information element";
          }
        }

        container heal {
          list params {
            key "key";

            leaf key {
              type string;
            }

            leaf value {
              type string;
            }
	    description
              "Array of KVP requirements for additional parameters
               of NS to be passed when invoking the Heal Ns
               operation.";
            reference
              "GS NFV IFA014: Section 6.2.10.5
               HealNsAdditionalParams information element";
          }
        }
      }

1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
      list ns-profile {
        must "min-number-of-instances <= max-number-of-instances" {
          error-message
            "min-number-of-instances has to be less than or equal" +
            "max-number-of-instances.";
        }
        must "boolean(../../nested-nsd-id[.=current()/nsd-id])" {
          error-message
	    "PNFDs in the profile has to be listed as a " +
            "dependency of the network service " +
            "descriptor.";
        }
        key "id";
1377

1378
1379
1380
1381
        description
          "Specifies a NS Profile supported by this NS DF.";
        reference
          "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
1382

1383
1384
1385
1386
1387
1388
1389
1390
        leaf id {
          type string;
          description
            "Identifies an NS profile.";
          reference
            "GS NFV IFA014: Section 6.3.11.2 NsProfile information
             element";
        }
1391

1392
1393
1394
        leaf nsd-id {
          mandatory true;
          type leafref {
1395
            path "../../../../nsd/id";
1396
          }
1397
1398
1399
1400
1401
1402
1403
          description
            "Identifies the NSD applicable to NS instantiated
             according to this profile.";
          reference
            "GS NFV IFA014: Section 6.3.11.2 NsProfile information
             element";
        }
1404

1405
1406
1407
1408
	leaf ns-df-id {
          mandatory true;
          type leafref {
            path "deref(../nsd-id)/../df/id";
1409
          }
1410
1411
1412
1413
1414
1415
          description
            "Identifies the applicable network service DF within
             the scope of the NSD.";
          reference
            "GS NFV IFA014: Section 6.3.11.2 NsProfile information
             element";
1416
1417
        }

1418
1419
	leaf instantiation-level-id {
          mandatory true;
1420
          type leafref {
1421
            path "deref(../ns-df-id)/../ns-instantiation-level/id";
1422
          }
1423
          description
1424
1425
1426
1427
            "Identifies the NS level within the referenced NS DF to
             be used in the context of the parent NS instantiation.
             If not present, the default NS instantiation level as
             declared in the referenced NSD shall be used.";
1428
          reference
1429
1430
            "GS NFV IFA014: Section 6.3.11.2 NsProfile information
             element";
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
	leaf min-number-of-instances {
          type uint16;
          default 1;
          description
            "Minimum number of nested NS instances based on the
             referenced NSD that is permitted to exist for this
             NsProfile.";
          reference
            "GS NFV IFA014: Section 6.3.11.2 NsProfile information
             element";
        }

	leaf max-number-of-instances {
          type uint16;
          default 1;
          description
            "Maximum number of nested NS instances based on the
             referenced NSD that is permitted to exist for this
             NsProfile.";
          reference
            "GS NFV IFA014: Section 6.3.11.2 NsProfile information
             element";
        }

        list affinity-or-anti-affinity-group-id {
1458
1459
1460
          key "id";

          description
1461
1462
            "Identifies an affinity or anti-affinity group the NSs
             created according to this NsProfile belongs to.";
1463
          reference
1464
1465
            "GS NFV IFA014: Section 6.3.11.2 NsProfile information
             element";
1466
1467

          leaf id {
1468
            type leafref {
1469
              path "../../../affinity-or-anti-affinity-group/id";
1470
1471
            }
          }
1472
1473
1474
1475
1476
1477
        }

        list virtual-link-connectivity {
          key "virtual-link-profile-id";

          leaf virtual-link-profile-id {
1478
            type leafref {
1479
              path "../../../virtual-link-profile/id";
1480
            }
1481
            description
1482
              "Reference an NS VL profile.";
1483
            reference
1484
1485
              "GS NFV IFA014: Section 6.3.7.2, NsVirutalLinkConnectivity
               information element.";
1486
          }
1487

1488
1489
          list constituent-cpd-id {
            key "constituent-base-element-id";
1490

1491
            description
1492
1493
1494
1495
              "Describes a connection point on a VNF/PNF or a SAP
               which connects to virtual links instantiated from
               the profile identified in the virtualLinkProfileId
               attribute.";
1496
            reference
1497
1498
              "GS NFV IFA014: Section 6.3.7
               NsVirtualLinkConnectivity information element";
1499

1500
            leaf constituent-base-element-id {
1501
              type leafref {
1502
                path "../../../id";
1503
              }
1504
1505
1506
1507
1508
              description
                "Reference to the profile of an NS constituent.";
              reference
                "GS NFV IFA014: Section 6.4.8
                 CpdInConstituentElement information element";
1509
            }
1510

1511
            leaf constituent-cpd-id {
1512
              type leafref {
1513
                path "deref(../../../nsd-id)/../sapd/id";
1514
1515
              }
              description
1516
1517
1518
                "A reference to the descriptor of a connection point
                 attached to one of the constituent VNFs and PNFs or to
                 the descriptor of a NS SAP.";
1519
              reference
1520
1521
                "GS NFV IFA014: Section 6.4.4.2 CpdPool information
                 element";
1522
            }
1523
1524
1525
          }
        }
      }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1526

1527
1528
      list dependencies {
        key "id";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1529

1530
1531
1532
1533
1534
        description
          "Specifies the order in which instances of the VNFs and/or
           nested NSs have to be created.";
        reference
          "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1535

1536
1537
1538
        leaf id {
          type string;
        }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1539

1540
1541
1542
1543
        choice primary-id {
          leaf primary-vnf-profile {
            type leafref {
              path "../../vnf-profile/vnfd-id";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1544
            }
1545
1546
1547
1548
1549
1550
          }
          leaf primary-ns-profile {
            type leafref {
              path "../../ns-profile/nsd-id";
            }
          }
1551
          description
1552
            "References a VnfProfile or NsProfile.";
1553
          reference
1554
1555
1556
            "GS NFV IFA014: Section 6.3.12.2 Dependencies
             information element";
        }
1557

1558
1559
1560
1561
1562
	choice secondary-id {
          leaf secondary-vnf-profile {
            type leafref {
              path "../../vnf-profile/vnfd-id";
            }
1563
          }
1564
1565
1566
          leaf secondary-ns-profile {
            type leafref {
              path "../../ns-profile/nsd-id";
1567
            }
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
          }
          description
            "References a VnfProfile or NsProfile.";
          reference
            "GS NFV IFA014: Section 6.3.12.2 Dependencies
             information element";
        }
      }

      list monitored-info {
        key "id";

        leaf id {
          type string;
        }

        container vnf-indicator-info {
          leaf vnfd-id {
            type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1587
              path "/nfv:nfv/nfv:vnfd/nfv:id";
1588
            }
1589
            description
1590
              "Identifies a VNFD.";
1591
            reference
1592
              "GS NFV IFA014: Section 6.2.7.2 VnfIndicatorData
1593
               information element";
1594
          }
1595
1596
1597
1598

	  leaf vnf-indicator {
            mandatory true;
            type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1599
              path "deref(../vnfd-id)/../nfv:indicator/nfv:id";
1600
            }
1601
            description
1602
              "Identifies a VNF indicator within the VNFD.";
1603
            reference
1604
              "GS NFV IFA014: Section 6.2.7.2 VnfIndicatorData
1605
               information element";
1606
          }
1607
1608
1609
1610
1611
1612
          description
            "Uniquely identifies this VNF Indicator information
             element.";
          reference
            "GS NFV IFA014: Section 6.2.6.2 MonitoredData
             information element";
1613
        }
1614

1615
1616
1617
1618
        // monitoringParameter in IFA014 is defined by MonitoredData
        // whereas monitoringParameter in IFA011 is defined by
        // MonitoringParameter.
        container monitoring-parameter {
1619
1620
          leaf id {
            type string;
1621
1622
1623
1624
1625
1626
            description
              "Unique identifier of this monitoring parameter
               information element.";
            reference
              "GS NFV IFA014: Section 6.2.8.2 MonitoringParameter
               information element";
1627
1628
          }

1629
1630
          leaf name {
            type string;
1631
            description
1632
              "Human readable name of the monitoring parameter.";
1633
            reference
1634
              "GS NFV IFA014: Section 6.2.8.2 MonitoringParameter
1635
1636
1637
               information element";
          }

1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
          leaf performance-metric {
            mandatory true;
            type string;
            description
              "Defines the virtualised resource-related performance
               metric.";
            reference
              "GS NFV IFA014: Section 6.2.8.2 MonitoringParameter
               information element";
          }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1648

1649
1650
1651
1652
1653
1654
1655
1656
          leaf collection-period {
            type string;
            description
              "An attribute that describes the periodicity at
               which to collect the performance information.";
            reference
              "GS NFV IFA014: Section 6.2.8.2 MonitoringParameter
               information element";
1657
          }
1658
        }
1659
1660
      }
    }
1661
    uses security-parameters;
1662
1663
  }
}
For faster browsing, not all history is shown. View entire blame