etsi-nfv-ns.yang 49.4 KB
Newer Older
1
submodule etsi-nfv-ns {
2
  yang-version 1.1;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
3
  belongs-to etsi-nfv-descriptors {
4
5
6
    prefix nfv;
  }

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
7
  include etsi-nfv-common;
8
9
10
  include etsi-nfv-vnf;
  include etsi-nfv-pnf;

11
12
13
  description
    "Models for NS according to ETSI GS NFV-IFA 014.";

Mahesh Jethanandani's avatar
Bug#251    
Mahesh Jethanandani committed
14
15
16
17
18
19
20
21
  revision 2019-10-01 {
    description
      "Version 2.7.1.

       Common data structures to support VNFD and NSD according to:
       ETSI GS NFV-IFA 014 Ed271v264
       ETSI GS NFV-IFA 011 Ed271v264";
  }
22
  revision 2019-04-25 {
23
24
    description
      "Initial revision
25
       Common data structure to support NSD according to:
26
       ETSI GS NFV-IFA 014 Ed261v252";
27

28
    reference
29
      "ETSI GS NFV-IFA 014 Ed261v252";
30
31
32
33
34
35
  }

  grouping resource-handle {
    leaf vim-id {
      type string;
    }
36
    leaf resource-provider-id {
37
38
39
40
41
42
43
      type string;
    }
    leaf resource-id {
      type string;
    }
  }

44

45
  grouping nsd {
46
47
48
49
50
51
52
53
54
    leaf id {
      type string;
      description
        "Identifier of this NSD information element. It Globally
         uniquely identifies an instance of the NSD.";
      reference
        "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
         information element";
    }
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
    leaf designer {
      type string;
      description
        "Identifies the designer of the NSD.";
      reference
        "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
         information element";
    }

    leaf version {
      type string;
      description
        "Identifies the version of the NSD.";
      reference
        "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
         information element";
    }

    leaf name {
      type string;
      description
        "Provides the human readable name of the NSD.";
      reference
        "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
         information element";
    }

    leaf invariant-id {
      type string;
      description
        "Identifies an NSD in a version independent manner. This
         attribute is invariant across versions of the network
         service descriptor.";
      reference
        "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
         information element";
    }

    leaf-list nested-nsd-id {
      must ". != ../id";
      type leafref {
97
        path "../../nsd/id";
98
      }
99
100
101
102
103
104
      description
        "References the NSD of a constituent nested NS.";
      reference
        "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
         information element";
    }
105

106
107
    leaf-list vnfd-id {
      type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
108
        path "/nfv:nfv/nfv:vnfd/nfv:id";
109
      }
110
111
112
113
114
115
      description
        "References the VNFD of a constituent VNF.";
      reference
        "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
         information element";
    }
116

117
118
    leaf-list pnfd-id {
      type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
119
        path "/nfv:nfv/nfv:pnfd/nfv:id";
120
      }
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
      description
        "References the PNFD of a constituent PNF.";
      reference
        "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
         information element";
    }

    list sapd {
      key "id";
      description
        "Provides the descriptor of a service access point of the
         network service.";
      reference
        "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
         information element";
136

137
138
      leaf id {
        type string;
139
        description
140
          "Identifier of this Cpd information element.";
141
        reference
142
          "GS NFV IFA014: Section 6.6.3.1 Cpd information element";
143
144
      }

145
146
      leaf address-assignment {
        type boolean;
147
        description
148
149
150
151
152
153
          "Specify whether the SAP address assignment is under the
           responsibility of management and orchestration functions
           or not. If it is set to True, management and
           orchestration functions are responsible for assigning
           addresses to the access points instantiated from this
           SAPD.";
154
        reference
155
156
          "GS NFV IFA014: Section 6.2.3.2 Sapd information element";
      }
157

158
159
160
161
162
      choice cpd-or-virtual-link {
        leaf virtual-link-desc {
          type leafref {
            path "../../virtual-link-desc/id";
          }
163
          description
164
165
            "References the descriptor of the NS VL instance to
             which the SAP instantiated from this SAPD connects to.";
166
167
          reference
            "GS NFV IFA014: Section 6.2.3.2 Sapd information element";
168
        }
169

170
171
172
173
174
        choice associated-cpd-id {
          container vnf {
            leaf vnfd-id {
              mandatory true;
              type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
175
                path "/nfv:nfv/nfv:vnfd/nfv:id";
176
              }
177
178
              must "boolean(../../../vnfd-id[.=current()])";
            }
179

180
181
182
            leaf ext-cpd-id {
              mandatory true;
              type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
183
                path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id";
184
185
              }
            }
186
          }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
187

188
189
190
191
          container pnf {
            leaf pnfd-id {
              mandatory true;
              type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
192
                path "/nfv:nfv/nfv:pnfd/nfv:id";
193
              }
194
195
              must "boolean(../pnfd-id[.=current()])";
            }
196

197
198
199
            leaf ext-cpd-id {
              mandatory true;
              type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
200
                path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id";
201
202
              }
            }
203
204
205
206
207
          }
          container ns {
            leaf nsd-id {
              mandatory true;
              type leafref {
208
                path "../../../../nsd/id";
209
              }
210
211
              must "boolean(../nsd-id[.=current()])";
            }
212

213
214
215
            leaf ext-cpd-id {
              mandatory true;
              type leafref {
216
                path "deref(../nsd-id)/../sapd/id";
217
218
219
220
              }
            }
          }
        }
221
      }
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
    }

    list virtual-link-desc {
      key "id";
      description
        "Provides the constituent VLDs.";
      reference
        "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
         information element";
      leaf id {
        type string;
        description
          "Identifier of the NsVirtualLinkDesc information element.
           It uniquely identifies a VLD.";
        reference
          "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
           information element";
      }
240

241
242
243
      uses connectivity-type;

      list df {
244
        key "id";
245

246
        description
247
248
249
          "The VirtualLinkDf information element specifies
           properties for instantiating a VL according to a
           specific flavour.";
250
        reference
251
          "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
252
           information element";
253

254
255
        leaf id {
          type string;
256
          description
257
258
            "Identifies this VirtualLinkDf information element
             within a VLD.";
259
          reference
260
            "GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
261
             information element";
262
        }
263

264
265
        container qos {
          presence "VL QoS parameters";
266
          description
267
268
            "The QoS information element specifies quality of
             service parameters applicable to a VL.";
269
          reference
270
            "GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
271
272
             information element";

273
274
275
276
          leaf latency {
            mandatory true;
            type uint32;
            units "ms";
277
            description
278
              "Specifies the maximum latency in ms.";
279
            reference
280
281
              "GS NFV IFA014: Section 6.5.6.2 QoS information
               element";
282
283
          }

284
285
286
287
          leaf packet-delay-variation {
            mandatory true;
            type uint32;
            units "ms";
288
            description
289
              "Specifies the maximum jitter in ms.";
290
            reference
291
292
293
              "GS NFV IFA014: Section 6.5.6.2 QoS information
               element";
          }
294

295
296
297
298
          leaf packet-loss-ratio {
            type decimal64 {
              fraction-digits "2";
              range "0..1.00";
299
            }
300
301
302
303
304
            description
              "Specifies the maximum packet loss ratio.";
            reference
              "GS NFV IFA014: Section 6.5.6.2 QoS information
               element";
305
          }
306

307
308
          leaf priority {
            type uint32;
309
            description
310
311
              "Specifies the priority level in case of
               congestion on the underlying physical links.";
312
            reference
313
314
              "GS NFV IFA014: Section 6.5.6.2 QoS information
               element";
315
316
317
          }
        }

318
        leaf service-availability-level {
319
          type enumeration {
320
321
322
            enum "level-1";
            enum "level-2";
            enum "level-3";
323
          }
324
          description
325
326
327
328
329
            "Specifies one of the three levels defined in ETSI
             ETSI GS NFV-REL 001 [i.5]
               * Level 1.
               * Level 2.
               * Level 3.";
330
          reference
331
            "GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
332
             information element";
333
        }
334
      }
335

336
337
338
339
340
      leaf test-access {
        type enumeration {
          enum none;
          enum passive-monitoring;
          enum active;
341
        }
342
343
344
345
346
        description
          "Specifies test access facilities expected on the VL.";
        reference
          "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
           information element";
347
      }
348

349
350
      leaf description {
        type string;
351
        description
352
353
          "Provides human-readable information on the purpose of
           the virtual link (e.g. VL for control plane traffic).";
354
        reference
355
          "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
356
           information element";
357
358
359
      }
      uses security-parameters;
    }
360

361
362
    list vnffgd {
      key "id";
363

364
365
366
367
368
369
370
371
372
373
374
375
376
377
      description
        "Provides the descriptors of the applicable forwarding
         graphs.";
      reference
        "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
         information element";

      leaf id {
        type string;
        description
          "Identifier of this Vnffgd information element. It
           uniquely identifies a VNFFGD.";
        reference
          "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
378
             element";
379
380
381
382
383
      }

      leaf-list vnf-profile-id {
        type leafref {
          path "../../df/vnf-profile/id";
384
        }
385
386
387
388
389
390
        description
          "References the VnfProfile of a constituent VNF.";
        reference
          "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
           element";
      }
391

392
393
394
      leaf-list pnf-profile-id {
        type leafref {
          path "../../df/pnf-profile/id";
395
        }
396
397
398
399
400
401
        description
          "References the PnfProfile of a constituent PNF.";
        reference
          "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
           element";
      }
402

403
404
405
      leaf-list nested-ns-profile-id {
        type leafref {
          path "../../df/ns-profile/id";
406
        }
407
408
409
410
411
412
        description
          "References the NsProfile of a nestedNS.";
        reference
          "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
           element";
      }
413

414
415
416
      leaf virtual-link-profile-id {
        type leafref {
          path "../../df/virtual-link-profile/id";
417
        }
418
419
420
421
422
423
424
        description
          "References the Virtual Link Profile of a constituent
             VL.";
        reference
          "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
           element";
      }
425

426
      list nfp-position-element {
427
        key "id";
428

Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
429
        min-elements 1;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
430

431
432
        leaf id {
          type string;
433
434
435
436
437
438
439
          description
            "Identifier of this NfpPositionElemen information
             element. It uniquely identifies an
             NfpPositionElemen.";
          reference
            "GS NFV IFA014: Section 6.4.6.2 NfpPositionElement
                 information element";
440
        }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
441

442
443
444
445
446
447
448
449
450
451
        container desc {
          choice constituent-base-element-id {
            mandatory "true";
            container vnf-profile {
              leaf vnf-profile-id {
                must ". = deref(../../vnfd-profile-id)" {
                }
                type leafref {
                  path "../../../../../../nsd/df/vnf-profile/id";
                }
452
453
              }
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
454

455
456
457
458
459
460
461
            container pnf-profile {
              leaf pnf-profile-id {
                must ". = deref(../../pnfd-profile-id)" {
                }
                type leafref {
                  path "../../../../../../nsd/df/pnf-profile/id";
                }
462
463
              }
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
464

465
466
467
468
469
470
471
            container ns-profile {
              leaf ns-profile-id {
                must ". = deref(../../ns-profile-id)" {
                }
                type leafref {
                  path "../../../../../../nsd/df/ns-profile/id";
                }
472
473
              }
            }
474
475
476
477
478
            description
              "Reference to the profile of an NS constituent.";
            reference
              "GS NFV IFA014: Section 6.4.8
               CpdInConstituentElement information element";
479
480
          }

Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
481
482
483
484
485
486
487
488
          choice constituent-cpd-id {
            container vnf {
              leaf vnfd-id {
                must ". = deref(../../vnfd-profile-id)/../vnfd-id" {
                }
                type leafref {
                  path "/nfv:nfv/nfv:vnfd/nfv:id";
                }
489
              }
Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
490
491
492
493
              leaf cpd-id {
                type leafref {
                  path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id";
                }
494
495
              }
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
496

497
498
499
500
501
            container pnf {
              leaf pnfd-id {
                must ". = deref(../../pnfd-profile-id)/../pnfd-id" {
                }
                type leafref {
Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
502
                  path "/nfv:nfv/nfv:pnfd/nfv:id";
503
                }
504
              }
Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
505
506
507
508
              leaf pnf-cpd-id {
                type leafref {
                  path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id";
                }
509
510
              }
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
511

512
513
514
            container ns {
              leaf nsd-id {
                must ". = deref(../../nested-ns-profile-id)/" +
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
515
                     "../nsd-id" {
516
517
518
519
520
                }

                type leafref {
                  path "../../../../../../nsd/id";
                }
521
              }
522
523
524
525
              leaf sap-cpd-id {
                type leafref {
                  path "deref(../nsd-id)/../sapd/id";
                }
526
527
              }
            }
528
529
530
531
532
533
534
535
            description
              "References the VNF external CPD for a given
               VnfProfile, or the PNF external CPD for a given
               PnfProfile, or a NS SAPD for a given NsProfile
               identified by the constituentBaseElementId.";
            reference
              "GS NFV IFA014: Section 6.4.8.2
               CpdInConstituentElement information element";
536
537
          }
          description
Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
538
            "Specifies a CPD or SAPD in the context of a profile
539
             of an NS constituent element.";
540
          reference
541
542
            "GS NFV IFA014: Section 6.4.6.2 NfpPositionElement
             information element";
543
544
        }
        description
545
546
547
          "One or a pair of CPDs or SAPDs. These descriptors
           shall be members of the CpdPool associated to the
           parent VNFFG.";
548
        reference
549
550
          "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
           information element";
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
      }

      list nfpd {
        key "id";

        leaf id {
          type string;
          description
            "Identifies this nfpd information element within a
             VNFFGD.";
          reference
            "GS NFV IFA014: Section 6.4.3.2 Nfpd information
             element";
        }

        leaf rule {
          type string;
          description
            "Provides an NFP classification and selection rule.
570
571
572
             The rule may be expressed as a criteria constructed out
             of atomic assertions linked by Boolean operators AND,
             OR and NOT.";
573
574
575
576
577
          reference
            "GS NFV IFA014: Section 6.4.3.2 Nfpd information
             element";
        }

578
        list position-desc {
579
580
          key "id";

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
581
          min-elements 1;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
582

583
584
585
          leaf id {
            type string;
            description
586
              "Identifier of this NfpPositionDesc element.";
587
            reference
588
589
              "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
               information element";
590
591
          }

592
593
594
          leaf-list nfp-position-element-id {
            type leafref {
              path "../../../nfp-position-element/id";
595
            }
596
            description
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
597
              "Reference to one or a pair of CPDs or SAPDs.";
598
            reference
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
599
600
              "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
               information element";
601
          }
602

603
604
605
606
          leaf forwarding-behaviour {
            type identityref {
              base forwarding-behaviour;
            }
607
            description
608
609
610
611
612
613
614
615
616
617
              "Identifies a rule to apply to forward traffic to CP or
               SAP instances corresponding to the referenced CPD(s)
               and SAPD(s). The minimum list of rules to be supported
               shall include:
               • ALL = Traffic flows shall be forwarded simultaneously
                 to all CP or SAP instances created from the
                 referenced CP profile(s).
               • LB = Traffic flows shall be forwarded to one CP or SAP
                 instance created from the referenced CP profile(s)
                 selected based on a load-balancing algorithm.";
618
            reference
619
620
              "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
               information element";
621
          }
622

623
624
625
626
627
628
629
630
631
          leaf forwarding-behavior-input-parameters {
            type string;
            description
              "Provides input parameters to configure the forwarding
               behaviour (e.g. identifies a load balancing
               algorithm).";
            reference
              "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
               information element";
632
          }
633
634
635
636
637
638
639
640
641

          description
            "Describes a position in the NFP in terms of one or more
             CPDs and SAPDs and rules for distributing the traffic
             among CP and SAP instances created from these CPDs
             and SAPDs.";
          reference
            "GS NFV IFA014: Section 6.4.3.2 Nfpd information
             element";
642
        }
643
644
645
646
647
        description
          "The network forwarding path associated to the VNFFG.";
        reference
          "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
           element";
648
      }
649
    }
650

651
652
653
    leaf-list autoscale-rule {
      type string;
    }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
654

655
656
657
    list lifecycle-management-script {
      key "event";
      leaf event {
658
659
        type string;
      }
660
661
      leaf script {
        type string;
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
    list df {
      min-elements 1;
      must "default-instantiation-level or " +
           "count(ns-instantiation-level) = 1" {
        error-message
          "default-instantiation-level must be present if there " +
          "multiple instantion-level";
        reference
          "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
      }

      key "id";
      description
        "Identifies a DF within the scope of an NSD.";
      reference
        "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
         information element";

      leaf id {
        type string;
        description
          "Identifies this NsDf information element. It identifies
           a NS DF within the NSD.";
        reference
          "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
      }

      leaf flavour-key {
        type leafref {
          path "../monitored-info/id";
695
        }
696
697
698
        description
          "Assurance parameter against which this flavour is being
           described.
699

700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
           The key can be a combination of multiple assurance
           parameters with a logical relationship between them.
           The parameters should be present as a monitoredInfo
           attribute in the NSD.";
        reference
          "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
      }

      list vnf-profile {
        must "min-number-of-instances <= max-number-of-instances";
        must "boolean(../../vnfd-id[.=current()/vnfd-id])" {
          error-message "VNFDs in the profile has to be listed as a " +
                        "dependency of the network service " +
                        "descriptor.";
        }
715
716
        key "id";
        description
717
          "VNF profile to be used for the NS flavour.";
718
        reference
719
          "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
720
721
722

        leaf id {
          type string;
723
          description
724
725
            "Identifier of this vnfProfile information element. It
             uniquely identifies a VnfProfile.";
726
          reference
727
728
            "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
             element";
729
730
        }

731
732
        leaf vnfd-id {
          mandatory true;
733
          type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
734
            path "/nfv:nfv/nfv:vnfd/nfv:id";
735
          }
736
          description
737
738
739
740
741
            "References a VNFD.";
          reference
            "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
             element";
        }
742

743
744
745
        leaf flavour-id {
          mandatory true;
          type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
746
            path "deref(../vnfd-id)/../nfv:df/nfv:id";
747
748
749
          }
          description
            "Identifies a flavour within the VNFD.";
750
          reference
751
752
            "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
             element";
753
754
        }

755
756
757
        leaf instantiation-level {
          mandatory true;
          type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
758
            path "deref(../flavour-id)/../nfv:instantiation-level/" +
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
759
                 "nfv:id";
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
          description
            "Identifier of the instantiation level of the VNF DF
             to be used for instantiation. If not present, the
             default instantiation level as declared in the VNFD
             shall be used.";
          reference
            "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
             element";
        }

        leaf min-number-of-instances {
          default 1;
          type uint16;
          description
            "Minimum number of instances of the VNF based on this
             VNFD that is permitted to exist for this VnfProfile.";
          reference
            "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
             element";
        }

        leaf max-number-of-instances {
          default 1;
          type uint16;
          description
            "Maximum number of instances of the VNF based on this
             VNFD that is permitted to exist for this VnfProfile.";
          reference
            "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
             element";
        }

        uses local-affinity-or-anti-affinity-rule;

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

798
          description
799
800
            "Identifier(s) of the affinity or anti-affinity
             group(s) the VnfProfile belongs to.";
801
          reference
802
803
            "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
             element";
804
805
806

          leaf id {
            type leafref {
807
              path "../../../affinity-or-anti-affinity-group/id";
808
809
            }
          }
810
        }
811

812
813
814
815
816
817
818
819
820
        list virtual-link-connectivity {
          key "virtual-link-profile-id";

          description
            "Defines the connection information of the VNF, it
             contains connection relationship between a VNF
             connection point and a NS Virtual Link.";
          reference
            "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
821
               element";
822

823
          leaf virtual-link-profile-id {
824
            type leafref {
825
              path "../../../virtual-link-profile/id";
826
            }
827
            description
828
              "Reference an NS VL profile.";
829
            reference
830
831
              "GS NFV IFA014: Section 6.3.7.2, NsVirutalLinkConnectivity
               information element.";
832
833
          }

834
835
          list constituent-cpd-id {
            key "constituent-base-element-id";
836

837
            description
838
839
840
841
              "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.";
842
            reference
843
844
              "GS NFV IFA014: Section 6.3.7
               NsVirtualLinkConnectivity information element";
845

846
            leaf constituent-base-element-id {
847
              type leafref {
848
                path "../../../id";
849
              }
850
851
852
853
854
              description
                "Reference to the profile of an NS constituent.";
              reference
                "GS NFV IFA014: Section 6.4.8
                 CpdInConstituentElement information element";
855
856
            }

857
            leaf constituent-cpd-id {
858
              type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
859
                path "deref(../../../vnfd-id)/../nfv:ext-cpd/nfv:id";
860
              }
861
              description
862
863
864
                "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.";
865
              reference
866
867
                "GS NFV IFA014: Section 6.4.4.2 CpdPool information
                 element";
868
            }
869
870
871
          }
        }
      }
872

873
874
875
876
877
878
879
      list pnf-profile {
        key "id";
        must "boolean(../../pnfd-id[.=current()/pnfd-id])" {
          error-message "PNFDs in the profile has to be listed as a " +
                        "dependency of the network service " +
                        "descriptor.";
        }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
880

881
882
883
884
885
886
887
888
889
        leaf id {
          type string;
          description
            "Identifier of this PnfProfile information element.
             It uniquely identifies a PnfProfile.";
          reference
            "GS NFV IFA014: Section 6.3.6.2 PnfProfile information
             element";
        }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
890

891
892
        leaf pnfd-id {
          type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
893
            path "/nfv:nfv/nfv:pnfd/nfv:id";
894
          }
895
896
897
898
899
          description
            "References a PNFD.";
          reference
            "GS NFV IFA014: Section 6.3.6.2 PnfProfile information
             element";
900
        }
901

902
903
        list virtual-link-connectivity {
          key "virtual-link-profile-id";
904

905
906
907
908
909
910
911
          description
            "Defines the connection information of the PNF, it
             contains connection relationship between a PNF
             connection point and a NS Virtual Link.";
          reference
            "GS NFV IFA014: Section 6.3.6.2 PnfProfile information
             element";
912

913
          leaf virtual-link-profile-id {
914
            type leafref {
915
              path "../../../virtual-link-profile/id";
916
917
            }
            description
918
              "Reference an NS VL profile.";
919
            reference
920
921
              "GS NFV IFA014: Section 6.3.7.2, NsVirutalLinkConnectivity
               information element.";
922
923
          }

924
925
          list constituent-cpd-id {
            key "constituent-base-element-id";
926
927

            description
928
929
930
931
              "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.";
932
            reference
933
934
              "GS NFV IFA014: Section 6.3.7
               NsVirtualLinkConnectivity information element";
935

936
            leaf constituent-base-element-id {
937
              type leafref {
938
                path "../../../id";
939
              }
940
              description
941
                "Reference to the profile of an NS constituent.";
942
              reference
943
944
                "GS NFV IFA014: Section 6.4.8
                 CpdInConstituentElement information element";
945
946
            }

947
948
            leaf constituent-cpd-id {
              type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
949
                path "deref(../../../pnfd-id)/../nfv:ext-cpd/nfv:id";
950
              }
951
              description
952
953
954
                "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.";
955
              reference
956
957
                "GS NFV IFA014: Section 6.4.4.2 CpdPool information
                 element";
958
959
960
            }
          }
        }
961
      }
962

963
964
      list virtual-link-profile {
        key "id";
965

966
967
968
969
970
971
972
        description
          "VL profile to be used for the NS flavour.";
        reference
          "GS NFV IFA014: Section 6.3.2.2 NsDf information element";

        leaf id {
          type string;
973
          description
974
975
            "Uniquely identifies this VirtualLinkProfile
             information element.";
976
          reference
977
978
979
            "GS NFV IFA014: Section 6.3.2.2 VirtualLinkProfile
             information element";
        }
980

981
982
983
984
        leaf virtual-link-desc-id {
          mandatory true;
          type leafref {
            path "../../../virtual-link-desc/id";
985
          }
986
987
988
989
990
991
          description
            "Uniquely references a VLD.";
          reference
            "GS NFV IFA014: Section 6.3.2.2 VirtualLinkProfile
             information element";
        }
992

993
994
995
996
        leaf flavour-id {
          mandatory true;
          type leafref {
            path "deref(../virtual-link-desc-id)/../df/id";
997
          }
998
999
1000
          description
            "Identifies a flavour within the VLD.";
          reference
For faster browsing, not all history is shown. View entire blame