etsi-nfv-vnf.yang 98.2 KB
Newer Older
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
          "GS NFV IFA011: Section 7.1.6.5, SwImageDesc information
           element";
      }

      leaf name {
        mandatory true;
        type string;
        description
          "The name of this software image.";
        reference
          "GS NFV IFA011: Section 7.1.6.5 SwImageDesc
           information element.";
      }

      leaf version {
        mandatory true;
        type string;
        description
          "The version of this software image.";
        reference
          "GS NFV IFA011: Section 7.1.6.5 SwImageDesc
           information element.";
      }

1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
      leaf provider {
        type string;
        description
          "The provider of this software image. If not present the
           provider of the software image is assumed to be same as
           the VNF provider.";
        reference
          "GS NFV IFA011: Section 7.1.6.5 SwImageDesc
           information element.";
      }

1036
1037
1038
      container checksum {

        leaf algorithm {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1039
          mandatory true;
1040
1041
1042
          type identityref {
            base checksum-algorithm;
          }
1043
          description
1044
1045
            "Species the algorithm used to obtain the checksum
             value.";
1046
          reference
1047
            "GS NFV IFA011: Section 7.1.6.10 ChecksumData
1048
1049
             information element.";
        }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1050

1051
1052
        leaf hash {
          mandatory true;
1053
1054
          type string;
          description
1055
1056
1057
            "Contains the result of applying the algorithm
             indicated by the algorithm attribute to the data to
             which this ChecksumData refers.";
1058
          reference
1059
            "GS NFV IFA011: Section 7.1.6.10 ChecksumData
1060
1061
             information element.";
        }
1062
1063
1064
1065
1066
1067
        description
          "The checksum of the software image file.";
        reference
          "GS NFV IFA011: Section 7.1.6.5 SwImageDesc
           information element.";
      }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1068

1069
1070
1071
1072
      leaf container-format {
        default "bare";
        type enumeration {
          enum "aki" {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1073
            description
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
              "An Amazon kernel image.";
          }
          enum "ami" {
            description
              "An Amazon machine image.";
          }
          enum "ari" {
            description
              "An Amazon ramdisk image.";
          }
          enum "bare" {
            description
              "The image does not have a container or metadata
               envelope.";
          }
          enum "docker" {
            description
              "A docker container format.";
          }
          enum "ova" {
            description
              "An OVF package in a tarfile.";
          }
          enum "ovf" {
            description
              "The OVF container format.";
1100
1101
          }
        }
1102
1103
1104
1105
1106
1107
1108
        description
          "The container format describes the container file
           format in which software image is provided.";
        reference
          "GS NFV IFA011: Section 7.1.6.5 SwImageDesc
           information element.";
      }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
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
      leaf disk-format {
        default "qcow2";
        type enumeration {
          enum "aki" {
            description
              "An Amazon kernel image.";
          }
          enum "ami" {
            description
              "An Amazon machine image.";
          }
          enum "ari" {
            description
              "An Amazon ramdisk image.";
          }
          enum "iso" {
            description
              "An archive format for the data contents of an
               disk, such as CD-ROM.";
          }
          enum "qcow2" {
            description
              "Supported by the QEMU emulator that can expand
               dynamically and supports Copy on Write.";
          }
          enum "raw" {
            description
              "An unstructured disk image format; if you have a
               file without an extension it is possibly a raw
               format.";
          }
          enum "vdi" {
            description
              "Supported by VirtualBox virtual machine monitor
               and the QEMU emulator.";
          }
          enum "vhd" {
            description
              "The VHD disk format, a common disk format used by
               virtual machine monitors from VMware, Xen,
               Microsoft, VirtualBox, and others.";
          }
          enum "vhdx" {
            description
              "The VHDX disk format, an enhanced version of the
               VHD format, which supports larger disk sizes among
               other features.";
          }
          enum "vmdk" {
            description
              "Common disk format supported by many common virtual
               machine monitors.";
1162
1163
          }
        }
1164
1165
1166
1167
        description
          "The disk format of a software image is the format of
           the underlying disk image.";
      }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1168

1169
1170
        leaf min-disk {
          type uint64;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1171
          units "GB";
1172
          mandatory true;
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
          description
            "The minimal disk size requirement for this software
             image. The value of the 'size of storage' attribute
             of the VirtualStorageDesc referencing this
             SwImageDesc shall not be smaller than the value of
             minDisk.";
          reference
            "GS NFV IFA011: Section 7.1.6.5, SwImageDesc
             information element.";
        }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1183

1184
1185
1186
1187
      leaf min-ram {
        type decimal64 {
          fraction-digits 1;
          range "0..max";
1188
        }
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
        units "GB";
        default 0;
        description
          "The minimal RAM requirement for this software image.
           The value of the 'size' attribute of
           VirtualMemoryData of the Vdu referencing this
           SwImageDesc shall not be smaller than the value of
           minRam.";
        reference
          "GS NFV IFA011: Section 7.1.6.5, SwImageDesc
           information element.";
      }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1201

1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
      leaf size {
        mandatory true;
        type uint64;
        units "GB";
        description
          "The size of this software image.";
        reference
          "GS NFV IFA011: Section 7.1.6.5, SwImageDesc
           information element.";
      }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1212

1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
      leaf image {
        default ".";
        type inet:uri;
        description
          "This is a reference to the actual software image.
           The reference can be relative to the root of the VNF
           Package or can be a URL";
        reference
          "GS NFV IFA011: Section 7.1.6.5, SwImageDesc
           information element.";
      }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1224

1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
      leaf operating-system {
        type string;
        description
          "Identifies the operating system used in the software
           image. This attribute may also identify if a 32 bit
           or 64 bit software image is used.";
        reference
          "GS NFV IFA011: Section 7.1.6.5, SwImageDesc
           information element.";
      }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1235

1236
1237
1238
1239
1240
1241
1242
1243
1244
      leaf-list supported-virtualization-environment {
        type string;
        description
          "Identifies the virtualisation environments
           (e.g. hypervisor) compatible with this software
           image.";
        reference
          "GS NFV IFA011: Section 7.1.6.5, SwImageDesc
           information element.";
1245
      }
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
    }

    list int-virtual-link-desc {
      key "id";
      description
        "Represents the type of network connectivity mandated by the
         VNF provider between two or more CPs which includes at
         least one internal CP.";
      reference
        "GS NFV IFA011: Section 7.1.2, Vnfd information element.";
1256

1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
      leaf id {
        type string;
        description
          "Unique identifier of this internal VLD in VNFD.";
        reference
          "GS NFV IFA011: Section 7.1.7.2, VnfVirtualLinkDesc
           Information elements.";
      }

      list flavour {
1267
1268
        key "id";
        description
1269
1270
          "Describes a specific flavour of the VL with specific
             bitrate requirements.";
1271
        reference
1272
1273
1274
          "GS NFV IFA011: Section 7.1.7.2, VnfVirtualLinkDesc
           Information elements.";

1275
1276
1277
        leaf id {
          type string;
          description
1278
            "Identifies a flavour within a VnfVirtualLinkDesc.";
1279
          reference
1280
1281
            "GS NFV IFA011: Section 7.1.8.5, VirtualLinkDescFlavour
             information element.";
1282
1283
        }

1284
1285
        container qos {
          presence "VL QoS parameters";
1286
          description
1287
            "QoS of the VL.";
1288
          reference
1289
1290
            "GS NFV IFA011: Section 7.1.8.5, VirtualLinkDescFlavour
             information element.";
1291

1292
1293
1294
1295
          leaf latency {
            type uint32;
            units "ms";
            mandatory true;
1296
            description
1297
              "Specifies the maximum latency in ms.";
1298
            reference
1299
1300
              "GS NFV IFA011: Section 7.1.8.10, QoS information
               element.";
1301
          }
1302
1303
1304
1305
1306

          leaf packet-delay-variation {
            type uint32;
            units "ms";
            mandatory true;
1307
            description
1308
              "Specifies the maximum jitter in ms.";
1309
            reference
1310
1311
              "GS NFV IFA011: Section 7.1.8.10, QoS information
               element.";
1312
          }
1313

1314
1315
1316
1317
1318
          leaf packet-loss-ratio {
            type decimal64 {
              fraction-digits "2";
              range "0..1.00";
            }
1319
            description
1320
1321
1322
1323
              "Specifies the maximum packet loss ratio.";
            reference
              "GS NFV IFA011: Section 7.1.8.10, QoS information
               element.";
1324
1325
1326
          }
        }
      }
1327

1328
      uses connectivity-type;
1329

1330
1331
      leaf-list test-access {
        type string;
1332
        description
1333
1334
1335
          "Specifies test access facilities expected on the VL
           (e.g. none, passive monitoring, or active (intrusive)
           loopbacks at endpoints.";
1336
        reference
1337
1338
          "GS NFV IFA011: Section 7.1.7.2, VnfVirtualLinkDesc
           information element.";
1339
1340
      }

1341
1342
      leaf description {
        type string;
1343
        description
1344
1345
          "Provides human-readable information on the purpose of
           the VL (e.g. control plane traffic).";
1346
        reference
1347
1348
1349
1350
1351
1352
1353
          "GS NFV IFA011: Section 7.1.7.2, VnfVirtualLinkDesc
           information element.";
      }

      list monitoring-parameters {
        key "id";

1354
1355
1356
        leaf id {
          type string;
          description
1357
            "Unique identifier of the monitoring parameter.";
1358
          reference
1359
1360
            "GS NFV IFA011: Section 7.1.11.3, MonitoringParameter
             information element.";
1361
        }
1362
1363
1364
        uses monitoring-parameter;
      }
    }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1365

1366
    uses security-group-rule;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1367

1368
1369
1370
    list ext-cpd {
      key "id";
      min-elements 1;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1371

1372
1373
1374
1375
1376
      description
        "Describes an external interface exposed by this VNF enabling
         connection with a Virual Link";
      reference
        "GS NFV IFA011: Section 7.1.2, VNFD information element.";
1377

1378
1379
1380
1381
1382
1383
1384
1385
      choice cp-connection {
        leaf int-virtual-link-desc {
          description
            "Reference to the internal Virtual Link Descriptor (VLD)
             to which CPs instantiated from this external CP
             Descriptor (CPD) connect. Either intVirtualLinkDesc or
             intCpd shall be present.";
          type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1386
            path "/nfv:nfv/nfv:vnfd/nfv:int-virtual-link-desc/nfv:id";
1387
          }
1388
        }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1389

1390
1391
        container int-cpd {
          leaf vdu-id {
1392
            type leafref {
1393
              path "../../../vdu/id";
1394
1395
            }
          }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1396

1397
1398
1399
          leaf cpd {
            type leafref {
              path "deref(../vdu-id)/../int-cpd/id";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1400
1401
            }
          }
1402
        }
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417

        leaf vip-cpd {
          type leafref {
            path "../../vip-cpd/id";
          }
          description
            "Reference to the VIP CPD which is used to instantiate CPs
             to hold virtual IP addresses. These CPs are, in turn,
             exposed as external CPs defined by this external CPD.
             One and only one of the following attributes shall be
             present: intVirtualLinkDesc or intCpd or vipCpd .";
          reference
            "GS NFV-IFA011: Section 7.1.3.2, VnfExtCpd information
             element";
        }
1418
      }
1419

1420
      uses virtual-network-interface-requirements;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1421

1422
1423
      leaf nicio-requirements {
        type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1424
          path "/nfv:nfv/nfv:vnfd/nfv:virtual-compute-desc/nfv:id";
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
        }
        description
          "This references (couples) the CPD with any logical node I/O
           requirements (for network devices) that may have been
           created. Linking these attributes is necessary so that so
           that I/O requirements that need to be articulated at the
           logical node level can be associated with the network
           interface requirements associated with the CPD.";
        reference
          "GS NFV-IFA011: Section 7.1.6.6,
           VirtualNetworkInterfaceRequirements information element";
      }
      uses cpd;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1438

1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
      leaf security-group-rule-id {
        type leafref {
          path "../../security-group-rule/id";
        }
        description
          "Reference of the security group rules bound to this
           CPD.";
        reference
          "GS NFV IFA011: Section 7.1.6.3 Cpd information element";
      }
    }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
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
    list vip-cpd {
      key "id";

      leaf-list int-cpd {
        type leafref {
          path "../../vdu/int-cpd/int-virtual-link-desc";
        }
        description
          "Reference to the internal VDU CPD which is used to
           instantiate internal CPs. These internal CPs share the
           virtual IP addresses allocated when a VipCp instance
           is created from the VipCpd.";
        reference
          "GS NFV IFA011: Section 7.1.x, VipCpd information element.";
      }

      leaf-list vnf-ext-cpd {
        type leafref {
          path "../../ext-cpd/id";
        }
        description
          "Reference to the VNF external CPD which is used to
           instantiate external CPs. These external CPs share the
           virtual IP addresses allocated when a VipCp instance is
           created from the VipCpd.";
        reference
          "GS NFV IFA011: Section 7.1.x, VipCpd information element.";
      }

      leaf vip-function {
        type identityref {
          base vip-function;
        }
        description
          "It indicates the function the virtual IP address is used
           for. Permitted values: high availability, load balancing.";
        reference
          "GS NFV IFA011: Section 7.1.x, VipCpd information element.";
      }

      uses cpd;

      description
        "Describes virtual IP addresses to be shared among instances
         of connection points. See clause 7.1.x.";
      reference
        "GS NFV IFA011: Section 7.1.2, VNFD information element.";
    }

1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
    list df {
      must "default-instantiation-level or " +
           "count(instantiation-level) = 1";
      key "id";
      min-elements 1;
      description
        "Describes a specific Deployment Flavour (DF) of a VNF with
         specific requirements for capacity and performance.";
      reference
        "GS NFV IFA011: Section 7.1.2, VNFD information element.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1510

1511
1512
1513
1514
1515
1516
1517
1518
      leaf id {
        type string;
        description
          "Identifier of this DF within the VNFD.";
        reference
          "GS NFV IFA011: Section 7.1.8, Information elements
           to the DeploymentFlavour.";
      }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1519

1520
1521
1522
1523
1524
1525
1526
1527
      leaf description {
        type string;
        description
          "Human readable description of the deployment flavour";
        reference
          "GS NFV IFA011: Section 7.1.8, Information elements
           to the DeploymentFlavour.";
      }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1528

1529
1530
1531
1532
1533
1534
1535
1536
1537
      list vdu-profile {
        key "id";
        min-elements 1;
        description
          "The Vduprofile describes additional instantiation data for
           a given VDU used in a deployment flavour.";
        reference
          "GS NFV IFA011: Section 7.1.8, Information elements
           to the DeploymentFlavour.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1538

1539
1540
1541
        leaf id {
          type leafref {
            path "../../../vdu/id";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1542
          }
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
          reference
            "GS NFV IFA011: Section 7.1.8.3, VduProfile information
             element.";
        }

        leaf min-number-of-instances {
          type uint16;
          default 1;
          description
            "Minimum number of instances of the VNFC based on this
             VDU that is permitted to exist for this flavour.";
          reference
            "GS NFV IFA011: Section 7.1.8.3, VduProfile information
             element.";
        }

        leaf max-number-of-instances {
          type uint16;
          default 1;
          must ". >= ../min-number-of-instances";
          reference
            "GS NFV IFA011: Section 7.1.8.3, VduProfile information
             element.";
1566
        }
1567
        uses local-affinity-or-anti-affinity-rule;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1568

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1569
1570
1571
1572
        leaf-list affinity-or-anti-affinity-group-id {
          type leafref {
            path "../../affinity-or-anti-affinity-group/id";
          }
1573
1574
1575
          description
            "Identifier(s) of the affinity or anti-affinity
             group(s) the VDU belongs to.";
1576
          reference
1577
1578
1579
1580
            "GS NFV IFA011: Section 7.1.8.3, VduProfile information
             element.";
        }
      }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1581

1582
1583
1584
1585
1586
1587
1588
1589
      list virtual-link-profile {
        key "id flavour";
        description
          "Defines the internal VLD along with additional data which
           is used in this DF.";
        reference
          "GS NFV IFA011: Section 7.1.8.2, VnfDf information
           element.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1590

1591
1592
        leaf id {
          type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1593
            path "/nfv:nfv/nfv:vnfd/nfv:int-virtual-link-desc/nfv:id";
1594
          }
1595
1596
1597
1598
1599
          description
            "Uniquely identifies a Vnf VLD.";
          reference
            "GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
             information element.";
1600
        }
1601
1602

        leaf flavour {
1603
          type leafref {
1604
            path "deref(../../../ext-cpd/int-virtual-link-desc)" +
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1605
                 "/../nfv:flavour/nfv:id";
1606
1607
          }
          description
1608
            "Identifies a flavour within the VnfVirtualLinkDesc.";
1609
          reference
1610
1611
            "GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
             information element.";
1612
        }
1613
1614
        uses local-affinity-or-anti-affinity-rule;

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1615
1616
1617
        leaf-list affinity-or-anti-affinity-group-id {
          type leafref {
            path "../../affinity-or-anti-affinity-group/id";
1618
1619
          }
          description
1620
1621
            "Identifier(s) of the affinity or anti-affinity
             group(s) the VnfVirtualLinkDesc belongs to.";
1622
          reference
1623
1624
            "GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
             information element.";
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

        container max-bit-rate-requirements {
          leaf root {
            mandatory "true";
            type uint32;
            description
              "Throughput requirement of the link (e.g. bitrate of
               E-Line, root bitrate of E-Tree, aggregate capacity
               of E-LAN).";
            reference
              "GS NFV IFA011: Section 7.1.8.6,
               LinkBitrateRequirements information element.";
          }

          leaf leaf {
            type uint32;
            description
              "Throughput requirement of leaf connections to the
               link when applicable to the connectivity type
               (e.g. for E-Tree and E-LAN branches).";
            reference
              "GS NFV IFA011: Section 7.1.8.6,
               LinkBitrateRequirements information element.";
          }
1650
          description
1651
1652
            "Specifies the maximum bitrate requirements for a VL
             instantiated according to this profile.";
1653
          reference
1654
1655
1656
            "GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
             information element.";
        }
1657

1658
1659
1660
1661
        container min-bit-rate-requirements {
          leaf root {
            mandatory "true";
            type uint32;
1662
            description
1663
1664
1665
              "Throughput requirement of the link (e.g. bitrate of
               E-Line, root bitrate of E-Tree, aggregate capacity
               of E-LAN).";
1666
            reference
1667
1668
              "GS NFV IFA011: Section 7.1.8.6,
               LinkBitrateRequirements information element.";
1669
          }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1670

1671
1672
          leaf leaf {
            type uint32;
1673
            description
1674
1675
1676
              "Throughput requirement of leaf connections to the
               link when applicable to the connectivity type
               (e.g. for E-Tree and E-LAN branches).";
1677
            reference
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
              "GS NFV IFA011: Section 7.1.8.6,
               LinkBitrateRequirements information element.";
          }
          description
            "Specifies the minimum bitrate requirements for a VL
             instantiated according to this profile.";
          reference
            "GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
             information element.";
        }
1688

1689
1690
1691
1692
        container virtual-link-protocol-data {
          leaf associated-layer-protocol {
            type identityref {
              base layer-protocol;
1693
            }
1694
1695
1696
1697
1698
1699
1700
            description
              "One of the values of the attribute layerProtocol of
               the ConnectivityType IE.";
            reference
              "GS NFV IFA011: Section 7.1.8.13,
               VirtualLinkProtocolData information element.";
          }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1701

1702
1703
1704
1705
1706
1707
1708
1709
          container l2-protocol-data {
            when "(../associated-layer-protocol = 'Ethernet') or " +
                 "(../associated-layer-protocol = 'MPLS') or " +
                 "(../associated-layer-protocol = 'ODU2') or " +
                 "(../associated-layer-protocol = 'Pseudo-Wire')";

            leaf name {
              type string;
1710
              description
1711
                "Network name associated with this L2 protocol.";
1712
              reference
1713
1714
                "GS NFV IFA011: Section 7.1.8.14,
                 L2ProtocolData information element.";
1715
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1716

1717
1718
1719
1720
1721
1722
            leaf network-type {
              type enumeration {
                enum flat;
                enum vlan;
                enum vxlan;
                enum gre;
1723
1724
              }
              description
1725
1726
                "Specifies the network type for this L2 protocol.
                 Possible values: FLAT, VLAN, VXLAN, GRE.";
1727
              reference
1728
1729
                "GS NFV IFA011: Section 7.1.8.14,
                 L2ProtocolData information element.";
1730
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1731

1732
            leaf vlan-transparent {
1733
1734
              type boolean;
              description
1735
1736
                "Specifies whether to support VLAN transparency for
                 this L2 protocol or not.";
1737
              reference
1738
1739
                "GS NFV IFA011: Section 7.1.8.14,
                 L2ProtocolData information element.";
1740
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1741

1742
1743
1744
1745
1746
1747
1748
1749
1750
            leaf mtu {
              type uint16;
              description
                "Specifies the maximum transmission unit (MTU) value
                 for this L2 protocol.";
              reference
                "GS NFV IFA011: Section 7.1.8.14,
                 L2ProtocolData information element.";
            }
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763

	    leaf segmentation-id {
	      type string;
	      description
                "If present, specifies a specific virtualised network
                 segment, which depends on the network type. For e.g.,
                 VLAN ID for VLAN network type and tunnel ID for
                 GRE/VXLAN network types.";
	      reference
                "GS NFV IFA011: Section 7.1.8.14,
                 L2ProtocolData information element.";
	    }

1764
            description
1765
1766
1767
1768
              "Specifies the L2 protocol data for this virtual link.
               Shall be present when the associatedLayerProtocol
               attribute indicates a L2 protocol and shall be absent
               otherwise.";
1769
            reference
1770
1771
1772
              "GS NFV IFA011: Section 7.1.8.13,
               VirtualLinkProtocolData information element.";
          }
1773

1774
1775
1776
          container l3-protocol-data {
            when "(../associated-layer-protocol = 'IPv4') or " +
                 "(../associated-layer-protocol = 'IPv6')";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1777

1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
            leaf name {
              type string;
              description
                "Network name associated with this L3 protocol.";
              reference
                "GS NFV IFA011: Section 7.1.8.15,
                 L3ProtocolData information element.";
            }

            leaf ip-version {
              type enumeration {
                enum ipv4;
                enum ipv6;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1791
              }
1792
              default "ipv4";
1793
              description
1794
1795
1796
1797
                "Specifies IP version of this L3 protocol.
                 Value:
                 • IPV4.
                 • IPV6.";
1798
              reference
1799
1800
                "GS NFV IFA011: Section 7.1.8.15,
                 L3ProtocolData information element.";
1801
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1802

1803
            leaf cidr {
1804
1805
              type string;
              description
1806
1807
                "Specifies the CIDR (Classless InterDomain Routing)
                 of this L3 protocol.";
1808
              reference
1809
1810
                "GS NFV IFA011: Section 7.1.8.15,
                 L3ProtocolData information element.";
1811
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1812

1813
1814
1815
1816
1817
1818
1819
1820
1821
            leaf-list ip-allocation-pools {
              type string;
              description
                "Specifies the allocation pools with start and end
                 IP addresses for this L3 protocol.";
              reference
                "GS NFV IFA011: Section 7.1.8.15,
                 L3ProtocolData information element.";
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1822

1823
1824
            leaf gateway-ip {
              type inet:ip-address;
1825
              description
1826
1827
                "Specifies the gateway IP address for this L3
                 protocol.";
1828
              reference
1829
1830
                "GS NFV IFA011: Section 7.1.8.15,
                 L3ProtocolData information element.";
1831
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1832

1833
1834
1835
            leaf dhcp-enabled {
              type boolean;
              default "true";
1836
              description
1837
1838
1839
                "Indicates whether DHCP (Dynamic Host Configuration
                 Protocol) is enabled or disabled for this L3
                 protocol.";
1840
              reference
1841
1842
                "GS NFV IFA011: Section 7.1.8.15,
                 L3ProtocolData information element.";
1843
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1844

1845
1846
1847
1848
1849
1850
            leaf ipv6-address-mode {
              when "../ip-version = 'ipv6'";
              type enumeration {
                enum slaac;
                enum dhcpv6-stateful;
                enum dhcpv6-stateless;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1851
1852
              }
              description
1853
1854
1855
1856
1857
1858
                "Specifies IPv6 address mode. Possible values:
                 • SLAAC.
                 • DHCPV6-STATEFUL.
                 • DHCPV6-STATELESS.
                 May be present when the value of the ipVersion
                 attribute is 'IPV6' and shall be absent otherwise.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1859
              reference
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
                "GS NFV IFA011: Section 7.1.8.15,
                 L3ProtocolData information element.";
            }
            description
              "Specifies the L3 protocol data for this virtual link.
               Shall be present when the associatedLayerProtocol
               attribute indicates a L3 protocol and shall be absent
               otherwise.";
            reference
              "GS NFV IFA011: Section 7.1.8.13,
               VirtualLinkProtocolData information element.";
          }
          description
            "Specifies the protocol data for a VL instantiated
             according to this profile. Cardinality 0 is used when
             no protocol data needs to be specified.";
          reference
            "GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
             information element.";
        }
      }

      list instantiation-level {
        key "id";
        min-elements 1;
        description
          "Describes the various levels of resources that can be
           used to instantiate the VNF using this flavour.
           Examples: Small, Medium, Large. If there is only one
           'instantiationLevel' entry, it shall be treated as the
           default instantiation level for this DF.

           The InstantiationLevel information element describes a
           given level of resources to be instantiated within a
           deployment flavour in term of the number of VNFC instances
           to be created from each VDU.
           All the VDUs referenced in the level shall be part of the
           corresponding deployment flavour and their number shall
           be within the range (min/max) for this deployment flavour.";
        reference
          "GS NFV IFA011: Section 7.1.8.2 VnfDf information element";

        leaf id {
          type string;
          description
            "Uniquely identifies a level with the DF.";
          reference
            "GS NFV IFA011: Section 7.1.8.7 InstantiationLevel
             information element";
        }

        leaf description {
          type string;
          description
            "Human readable description of the instantiation level";
          reference
            "GS NFV IFA011: Section 7.1.8.7 InstantiationLevel
             information element";
        }

        list vdu-level {
          key "vdu-id";
          min-elements 1;
          description
            "Sets the number of instances for the VDU in this
             instantiation level.";
          reference
            "GS NFV IFA011: Section 7.1.8.7 InstantiationLevel
             information element";

          leaf vdu-id {
            type leafref {
              path "../../../../vdu/id";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1933
            }
1934
1935
1936
1937
1938
            description
              "Uniquely identifies a VDU.";
            reference
              "GS NFV IFA011: Section 7.1.8.9 VduLevel information
               element";
1939
          }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1940

1941
1942
1943
1944
1945
1946
1947
1948
1949
          leaf number-of-instances {
            type uint16;
            must ". <= ../../../../df/" +
                 "vdu-profile[id=current()/../vdu-id]/" +
                 "max-number-of-instances";
            must ". >= ../../../../df/" +
                 "vdu-profile[id=current()/../vdu-id]/" +
                 "min-number-of-instances";
            default 1;
1950
            description
1951
1952
              "Number of instances of VNFC based on this VDU to
               deploy for this level.";
1953
            reference
1954
1955
1956
1957
              "GS NFV IFA011: Section 7.1.8.9 VduLevel information
               element";
          }
        }
1958

1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
        list scaling-info {
          key "scaling-aspect-id";
          description
            "The InstantiationLevel information element describes a
             given level of resources to be instantiated within a
             DF in term of the number of VNFC instances to be
             created from each VDU.";
          reference
            "GS NFV IFA011: Section 7.1.8.7 InstantiationLevel
             information element";

          leaf scaling-aspect-id {
            type leafref {
              path "../../../scaling-aspect/id";
1973
            }
1974
1975
1976
1977
1978
1979
            description
              "Identifier of the scaling aspect.";
            reference
              "GS NFV IFA011: Section 7.1.8.8 ScaleInfo information
               element";
          }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
1980

1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
          leaf scale-level {
            type uint32;
            description
              "The scale level, greater than or equal to 0.";
            reference
              "GS NFV IFA011: Section 7.1.8.8 ScaleInfo information
               element";
          }
        }
      }

      leaf default-instantiation-level {
        type leafref {
          path "../instantiation-level/id";
        }
        description
          "This attribute references the 'instantiationLevel'
           entry which defines the default instantiation level for
           this DF. It shall be present if there are multiple
           'instantiationLevel' entries.";
For faster browsing, not all history is shown. View entire blame