etsi-nfv-ns.yang 50.1 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;
    }
  }

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
  grouping ns-local-affinity-or-anti-affinity-rule {
    list local-affinity-or-anti-affinity-rule {
      key "type scope";

      leaf type {
        type affinity-type;
        description
          "Specifies whether the rule is an affinity rule or an
           anti-affinity rule.";
        reference
          "GS NFV IFA014: Section 6.3.8.2,
           LocalAffinityOrAntiAffinityRule information element.";
      }

      leaf scope {
        type affinity-scope;
        description
          "Specifies the scope of the rule, possible values are
           'NFVI-PoP', 'Zone', 'ZoneGroup', 'NFVI-node'.";
        reference
          "GS NFV IFA014: Section 6.3.8.2,
           LocalAffinityOrAntiAffinityRule information element.";
      }
    }
  }
69

70
  grouping nsd {
71
72
73
74
75
76
77
78
79
    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";
    }
80

81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
    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 {
122
        path "../../nsd/id";
123
      }
124
125
126
127
128
129
      description
        "References the NSD of a constituent nested NS.";
      reference
        "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
         information element";
    }
130

131
132
    leaf-list vnfd-id {
      type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
133
        path "/nfv:nfv/nfv:vnfd/nfv:id";
134
      }
135
136
137
138
139
140
      description
        "References the VNFD of a constituent VNF.";
      reference
        "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
         information element";
    }
141

142
143
    leaf-list pnfd-id {
      type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
144
        path "/nfv:nfv/nfv:pnfd/nfv:id";
145
      }
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
      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";
161

162
163
      leaf id {
        type string;
164
        description
165
          "Identifier of this Cpd information element.";
166
        reference
167
          "GS NFV IFA014: Section 6.6.3.1 Cpd information element";
168
169
      }

170
171
      leaf address-assignment {
        type boolean;
172
        description
173
174
175
176
177
178
          "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.";
179
        reference
180
181
          "GS NFV IFA014: Section 6.2.3.2 Sapd information element";
      }
182

183
184
185
186
187
      choice cpd-or-virtual-link {
        leaf virtual-link-desc {
          type leafref {
            path "../../virtual-link-desc/id";
          }
188
          description
189
190
            "References the descriptor of the NS VL instance to
             which the SAP instantiated from this SAPD connects to.";
191
192
          reference
            "GS NFV IFA014: Section 6.2.3.2 Sapd information element";
193
        }
194

195
196
197
198
199
        choice associated-cpd-id {
          container vnf {
            leaf vnfd-id {
              mandatory true;
              type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
200
                path "/nfv:nfv/nfv:vnfd/nfv:id";
201
              }
202
203
              must "boolean(../../../vnfd-id[.=current()])";
            }
204

205
206
207
            leaf ext-cpd-id {
              mandatory true;
              type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
208
                path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id";
209
210
              }
            }
211
          }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
212

213
214
215
216
          container pnf {
            leaf pnfd-id {
              mandatory true;
              type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
217
                path "/nfv:nfv/nfv:pnfd/nfv:id";
218
              }
219
220
              must "boolean(../pnfd-id[.=current()])";
            }
221

222
223
224
            leaf ext-cpd-id {
              mandatory true;
              type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
225
                path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id";
226
227
              }
            }
228
229
230
231
232
          }
          container ns {
            leaf nsd-id {
              mandatory true;
              type leafref {
233
                path "../../../../nsd/id";
234
              }
235
236
              must "boolean(../nsd-id[.=current()])";
            }
237

238
239
240
            leaf ext-cpd-id {
              mandatory true;
              type leafref {
241
                path "deref(../nsd-id)/../sapd/id";
242
243
244
245
              }
            }
          }
        }
246
      }
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
    }

    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";
      }
265

266
267
268
      uses connectivity-type;

      list df {
269
        key "id";
270

271
        description
272
273
274
          "The VirtualLinkDf information element specifies
           properties for instantiating a VL according to a
           specific flavour.";
275
        reference
276
          "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
277
           information element";
278

279
280
        leaf id {
          type string;
281
          description
282
283
            "Identifies this VirtualLinkDf information element
             within a VLD.";
284
          reference
285
            "GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
286
             information element";
287
        }
288

289
290
        container qos {
          presence "VL QoS parameters";
291
          description
292
293
            "The QoS information element specifies quality of
             service parameters applicable to a VL.";
294
          reference
295
            "GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
296
297
             information element";

298
299
300
301
          leaf latency {
            mandatory true;
            type uint32;
            units "ms";
302
            description
303
              "Specifies the maximum latency in ms.";
304
            reference
305
306
              "GS NFV IFA014: Section 6.5.6.2 QoS information
               element";
307
308
          }

309
310
311
312
          leaf packet-delay-variation {
            mandatory true;
            type uint32;
            units "ms";
313
            description
314
              "Specifies the maximum jitter in ms.";
315
            reference
316
317
318
              "GS NFV IFA014: Section 6.5.6.2 QoS information
               element";
          }
319

320
321
322
323
          leaf packet-loss-ratio {
            type decimal64 {
              fraction-digits "2";
              range "0..1.00";
324
            }
325
326
327
328
329
            description
              "Specifies the maximum packet loss ratio.";
            reference
              "GS NFV IFA014: Section 6.5.6.2 QoS information
               element";
330
          }
331

332
333
          leaf priority {
            type uint32;
334
            description
335
336
              "Specifies the priority level in case of
               congestion on the underlying physical links.";
337
            reference
338
339
              "GS NFV IFA014: Section 6.5.6.2 QoS information
               element";
340
341
342
          }
        }

343
        leaf service-availability-level {
344
          type enumeration {
345
346
347
            enum "level-1";
            enum "level-2";
            enum "level-3";
348
          }
349
          description
350
351
352
353
354
            "Specifies one of the three levels defined in ETSI
             ETSI GS NFV-REL 001 [i.5]
               * Level 1.
               * Level 2.
               * Level 3.";
355
          reference
356
            "GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
357
             information element";
358
        }
359
      }
360

361
362
363
364
365
      leaf test-access {
        type enumeration {
          enum none;
          enum passive-monitoring;
          enum active;
366
        }
367
368
369
370
371
        description
          "Specifies test access facilities expected on the VL.";
        reference
          "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
           information element";
372
      }
373

374
375
      leaf description {
        type string;
376
        description
377
378
          "Provides human-readable information on the purpose of
           the virtual link (e.g. VL for control plane traffic).";
379
        reference
380
          "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
381
           information element";
382
383
384
      }
      uses security-parameters;
    }
385

386
387
    list vnffgd {
      key "id";
388

389
390
391
392
393
394
395
396
397
398
399
400
401
402
      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
403
             element";
404
405
406
407
408
      }

      leaf-list vnf-profile-id {
        type leafref {
          path "../../df/vnf-profile/id";
409
        }
410
411
412
413
414
415
        description
          "References the VnfProfile of a constituent VNF.";
        reference
          "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
           element";
      }
416

417
418
419
      leaf-list pnf-profile-id {
        type leafref {
          path "../../df/pnf-profile/id";
420
        }
421
422
423
424
425
426
        description
          "References the PnfProfile of a constituent PNF.";
        reference
          "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
           element";
      }
427

428
429
430
      leaf-list nested-ns-profile-id {
        type leafref {
          path "../../df/ns-profile/id";
431
        }
432
433
434
435
436
437
        description
          "References the NsProfile of a nestedNS.";
        reference
          "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
           element";
      }
438

439
440
441
      leaf virtual-link-profile-id {
        type leafref {
          path "../../df/virtual-link-profile/id";
442
        }
443
444
445
446
447
448
449
        description
          "References the Virtual Link Profile of a constituent
             VL.";
        reference
          "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
           element";
      }
450

451
      list nfp-position-element {
452
        key "id";
453

Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
454
        min-elements 1;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
455

456
457
        leaf id {
          type string;
458
459
460
461
462
463
464
          description
            "Identifier of this NfpPositionElemen information
             element. It uniquely identifies an
             NfpPositionElemen.";
          reference
            "GS NFV IFA014: Section 6.4.6.2 NfpPositionElement
                 information element";
465
        }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
466

467
468
469
470
471
472
473
474
475
476
        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";
                }
477
478
              }
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
479

480
481
482
483
484
485
486
            container pnf-profile {
              leaf pnf-profile-id {
                must ". = deref(../../pnfd-profile-id)" {
                }
                type leafref {
                  path "../../../../../../nsd/df/pnf-profile/id";
                }
487
488
              }
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
489

490
491
492
493
494
495
496
            container ns-profile {
              leaf ns-profile-id {
                must ". = deref(../../ns-profile-id)" {
                }
                type leafref {
                  path "../../../../../../nsd/df/ns-profile/id";
                }
497
498
              }
            }
499
500
501
502
503
            description
              "Reference to the profile of an NS constituent.";
            reference
              "GS NFV IFA014: Section 6.4.8
               CpdInConstituentElement information element";
504
505
          }

Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
506
507
508
509
510
511
512
513
          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";
                }
514
              }
Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
515
516
517
518
              leaf cpd-id {
                type leafref {
                  path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id";
                }
519
520
              }
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
521

522
523
524
525
526
            container pnf {
              leaf pnfd-id {
                must ". = deref(../../pnfd-profile-id)/../pnfd-id" {
                }
                type leafref {
Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
527
                  path "/nfv:nfv/nfv:pnfd/nfv:id";
528
                }
529
              }
Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
530
531
532
533
              leaf pnf-cpd-id {
                type leafref {
                  path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id";
                }
534
535
              }
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
536

537
538
539
            container ns {
              leaf nsd-id {
                must ". = deref(../../nested-ns-profile-id)/" +
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
540
                     "../nsd-id" {
541
542
543
544
545
                }

                type leafref {
                  path "../../../../../../nsd/id";
                }
546
              }
547
548
549
550
              leaf sap-cpd-id {
                type leafref {
                  path "deref(../nsd-id)/../sapd/id";
                }
551
552
              }
            }
553
554
555
556
557
558
559
560
            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";
561
562
          }
          description
Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
563
            "Specifies a CPD or SAPD in the context of a profile
564
             of an NS constituent element.";
565
          reference
566
567
            "GS NFV IFA014: Section 6.4.6.2 NfpPositionElement
             information element";
568
569
        }
        description
570
571
572
          "One or a pair of CPDs or SAPDs. These descriptors
           shall be members of the CpdPool associated to the
           parent VNFFG.";
573
        reference
574
575
          "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
           information element";
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
      }

      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.
595
596
597
             The rule may be expressed as a criteria constructed out
             of atomic assertions linked by Boolean operators AND,
             OR and NOT.";
598
599
600
601
602
          reference
            "GS NFV IFA014: Section 6.4.3.2 Nfpd information
             element";
        }

603
        list position-desc {
604
605
          key "id";

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
606
          min-elements 1;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
607

608
609
610
          leaf id {
            type string;
            description
611
              "Identifier of this NfpPositionDesc element.";
612
            reference
613
614
              "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
               information element";
615
616
          }

617
618
619
          leaf-list nfp-position-element-id {
            type leafref {
              path "../../../nfp-position-element/id";
620
            }
621
            description
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
622
              "Reference to one or a pair of CPDs or SAPDs.";
623
            reference
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
624
625
              "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
               information element";
626
          }
627

628
629
630
631
          leaf forwarding-behaviour {
            type identityref {
              base forwarding-behaviour;
            }
632
            description
633
634
635
636
637
638
639
640
641
642
              "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.";
643
            reference
644
645
              "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
               information element";
646
          }
647

648
649
650
651
652
653
654
655
656
          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";
657
          }
658
659
660
661
662
663
664
665
666

          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";
667
        }
668
669
670
671
672
        description
          "The network forwarding path associated to the VNFFG.";
        reference
          "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
           element";
673
      }
674
    }
675

676
677
678
    leaf-list autoscale-rule {
      type string;
    }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
679

680
681
682
    list lifecycle-management-script {
      key "event";
      leaf event {
683
684
        type string;
      }
685
686
      leaf script {
        type string;
687
      }
688
    }
689

690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
    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";
720
        }
721
722
723
        description
          "Assurance parameter against which this flavour is being
           described.
724

725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
           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.";
        }
740
741
        key "id";
        description
742
          "VNF profile to be used for the NS flavour.";
743
        reference
744
          "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
745
746
747

        leaf id {
          type string;
748
          description
749
750
            "Identifier of this vnfProfile information element. It
             uniquely identifies a VnfProfile.";
751
          reference
752
753
            "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
             element";
754
755
        }

756
757
        leaf vnfd-id {
          mandatory true;
758
          type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
759
            path "/nfv:nfv/nfv:vnfd/nfv:id";
760
          }
761
          description
762
763
764
765
766
            "References a VNFD.";
          reference
            "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
             element";
        }
767

768
769
770
        leaf flavour-id {
          mandatory true;
          type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
771
            path "deref(../vnfd-id)/../nfv:df/nfv:id";
772
773
774
          }
          description
            "Identifies a flavour within the VNFD.";
775
          reference
776
777
            "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
             element";
778
779
        }

780
781
782
        leaf instantiation-level {
          mandatory true;
          type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
783
            path "deref(../flavour-id)/../nfv:instantiation-level/" +
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
784
                 "nfv:id";
785
          }
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
          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";
        }

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
818
        uses ns-local-affinity-or-anti-affinity-rule;
819
820

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

823
          description
824
825
            "Identifier(s) of the affinity or anti-affinity
             group(s) the VnfProfile belongs to.";
826
          reference
827
828
            "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
             element";
829
830
831

          leaf id {
            type leafref {
832
              path "../../../affinity-or-anti-affinity-group/id";
833
834
            }
          }
835
        }
836

837
838
839
840
841
842
843
844
845
        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
846
               element";
847

848
          leaf virtual-link-profile-id {
849
            type leafref {
850
              path "../../../virtual-link-profile/id";
851
            }
852
            description
853
              "Reference an NS VL profile.";
854
            reference
855
856
              "GS NFV IFA014: Section 6.3.7.2, NsVirutalLinkConnectivity
               information element.";
857
858
          }

859
860
          list constituent-cpd-id {
            key "constituent-base-element-id";
861

862
            description
863
864
865
866
              "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.";
867
            reference
868
869
              "GS NFV IFA014: Section 6.3.7
               NsVirtualLinkConnectivity information element";
870

871
            leaf constituent-base-element-id {
872
              type leafref {
873
                path "../../../id";
874
              }
875
876
877
878
879
              description
                "Reference to the profile of an NS constituent.";
              reference
                "GS NFV IFA014: Section 6.4.8
                 CpdInConstituentElement information element";
880
881
            }

882
            leaf constituent-cpd-id {
883
              type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
884
                path "deref(../../../vnfd-id)/../nfv:ext-cpd/nfv:id";
885
              }
886
              description
887
888
889
                "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.";
890
              reference
891
892
                "GS NFV IFA014: Section 6.4.4.2 CpdPool information
                 element";
893
            }
894
895
896
          }
        }
      }
897

898
899
900
901
902
903
904
      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
905

906
907
908
909
910
911
912
913
914
        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
915

916
917
        leaf pnfd-id {
          type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
918
            path "/nfv:nfv/nfv:pnfd/nfv:id";
919
          }
920
921
922
923
924
          description
            "References a PNFD.";
          reference
            "GS NFV IFA014: Section 6.3.6.2 PnfProfile information
             element";
925
        }
926

927
928
        list virtual-link-connectivity {
          key "virtual-link-profile-id";
929

930
931
932
933
934
935
936
          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";
937

938
          leaf virtual-link-profile-id {
939
            type leafref {
940
              path "../../../virtual-link-profile/id";
941
942
            }
            description
943
              "Reference an NS VL profile.";
944
            reference
945
946
              "GS NFV IFA014: Section 6.3.7.2, NsVirutalLinkConnectivity
               information element.";
947
948
          }

949
950
          list constituent-cpd-id {
            key "constituent-base-element-id";
951
952

            description
953
954
955
956
              "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.";
957
            reference
958
959
              "GS NFV IFA014: Section 6.3.7
               NsVirtualLinkConnectivity information element";
960

961
            leaf constituent-base-element-id {
962
              type leafref {
963
                path "../../../id";
964
              }
965
              description
966
                "Reference to the profile of an NS constituent.";
967
              reference
968
969
                "GS NFV IFA014: Section 6.4.8
                 CpdInConstituentElement information element";
970
971
            }

972
973
            leaf constituent-cpd-id {
              type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
974
                path "deref(../../../pnfd-id)/../nfv:ext-cpd/nfv:id";
975
              }
976
              description
977
978
979
                "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.";
980
              reference
981
982
                "GS NFV IFA014: Section 6.4.4.2 CpdPool information
                 element";
983
984
985
            }
          }
        }
986
      }
987

988
989
      list virtual-link-profile {
        key "id";
990

991
992
993
994
995
996
997
        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;
998
          description
999
1000
            "Uniquely identifies this VirtualLinkProfile
             information element.";
For faster browsing, not all history is shown. View entire blame