etsi-nfv-ns.yang 58.2 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.";

14
  revision 2020-06-10 {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
15
    description
16
      "Version 3.3.1.
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
17

18
       NSD according to ETSI GS NFV-IFA 014 Release 3.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
19
20
  }

21
22
23
24
25
26
27
  revision 2020-06-01 {
    description
      "Version 2.8.1.

       NSD according to ETSI GS NFV-IFA 014 271.";
  }

Mahesh Jethanandani's avatar
Bug#251    
Mahesh Jethanandani committed
28
29
30
31
  revision 2019-10-01 {
    description
      "Version 2.7.1.

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
32
33
       Common data structures to support NSD according to:
       ETSI GS NFV-IFA 014 Ed271v264.";
Mahesh Jethanandani's avatar
Bug#251    
Mahesh Jethanandani committed
34
  }
35

36
  revision 2019-04-25 {
37
38
    description
      "Initial revision
39
40

       NSD according to ETSI GS NFV-IFA 014 Ed261v252.";
41

42
    reference
43
      "ETSI GS NFV-IFA 014 Ed261v252";
44
45
46
47
48
49
  }

  grouping resource-handle {
    leaf vim-id {
      type string;
    }
50
    leaf resource-provider-id {
51
52
53
54
55
56
57
      type string;
    }
    leaf resource-id {
      type string;
    }
  }

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
58
59
60
61
62
63
64
  grouping ns-local-affinity-or-anti-affinity-rule {
    list local-affinity-or-anti-affinity-rule {
      key "type scope";

      leaf type {
        type affinity-type;
        description
65
66
67
68
          "Specifies the rule.
           Values:
             • AFFINITY
             • ANTI_AFFINITY.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
69
70
71
72
73
74
75
76
        reference
          "GS NFV IFA014: Section 6.3.8.2,
           LocalAffinityOrAntiAffinityRule information element.";
      }

      leaf scope {
        type affinity-scope;
        description
77
78
79
80
81
82
83
          "Specifies the scope of the rule.
           Values:
             • NFVI_POP
             • ZONE
             • ZONE_GROUP
             • NFVI_NODE
             • etc.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
84
85
86
87
88
89
        reference
          "GS NFV IFA014: Section 6.3.8.2,
           LocalAffinityOrAntiAffinityRule information element.";
      }
    }
  }
90

91
  grouping nsd {
92
93
94
95
96
97
98
99
100
    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";
    }
101

102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
    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 {
143
        path "../../nsd/id";
144
      }
145
146
147
148
149
150
      description
        "References the NSD of a constituent nested NS.";
      reference
        "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
         information element";
    }
151

152
153
    leaf-list vnfd-id {
      type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
154
        path "/nfv:nfv/nfv:vnfd/nfv:id";
155
      }
156
157
158
159
160
161
      description
        "References the VNFD of a constituent VNF.";
      reference
        "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
         information element";
    }
162

163
164
    leaf-list pnfd-id {
      type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
165
        path "/nfv:nfv/nfv:pnfd/nfv:id";
166
      }
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
      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";
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
        container associated-cpd {
          choice constituent-base-element-id {
197
198
199
            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
204
205
206
              must "boolean(../../../vnfd-id[.=current()])";
            }
            leaf pnfd-id {
              mandatory true;
              type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
207
                path "/nfv:nfv/nfv:pnfd/nfv:id";
208
              }
209
210
              must "boolean(../pnfd-id[.=current()])";
            }
211
            leaf nsd-id {
212
213
              mandatory true;
              type leafref {
214
                path "../../../../nsd/id";
215
              }
216
              must "boolean(../nsd-id[.=current()])";
217
            }
218
219
220
221
            description
              "References the profile of an NS constituent.";
            reference
              "GS NFV IFA014: Section 6.4.8 CpdInConstituentElement information element";
222
          }
223
224
          choice constituent-cpd-id {  
            leaf vnf-ext-cpd  {
225
226
              mandatory true;
              type leafref {
227
                path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id";
228
              }
229
            }
230
231
232
233
234
235
236
            leaf pnf-ext-cpd  {
              mandatory true;
              type leafref {
                path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id";
              }
            }
            leaf sapd {
237
238
              mandatory true;
              type leafref {
239
                path "deref(../nsd-id)/../sapd/id";
240
241
              }
            }
242
243
244
245
246
247
            description
              "References the VNF external CPD for a given VnfProfile, or the PNF 
               external CPD for a given PnfProfile, or an NS SAPD for a given NsProfile
               identified by the constituentBaseElementId.";
            reference
              "GS NFV IFA014: Section 6.4.8 CpdInConstituentElement information element";
248
          }
249
250
251
252
253
254
          description
              "Describes a CPD or SAPD in the context of an NS constituent element, which
               the SAPs instantiated from this SAPD are mapped to.";
          reference
              "GS NFV IFA014: Section 6.2.3	Sapd information element";
            
255
        }
256
      }
257
258
259
260
261
262
263
264
265
266
267
268

      uses cpd;
      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 IFA014: Section 6.6.3 Cpd information element";
      }
269
270
    }

271
272
    uses security-group-rule;

273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
    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";
      }
289

290
291
292
      uses connectivity-type;

      list df {
293
        key "id";
294

295
        description
296
297
298
          "The VirtualLinkDf information element specifies
           properties for instantiating a VL according to a
           specific flavour.";
299
        reference
300
          "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
301
           information element";
302

303
304
        leaf id {
          type string;
305
          description
306
307
            "Identifies this VirtualLinkDf information element
             within a VLD.";
308
          reference
309
            "GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
310
             information element";
311
        }
312

313
314
        container qos {
          presence "VL QoS parameters";
315
          description
316
317
            "The QoS information element specifies quality of
             service parameters applicable to a VL.";
318
          reference
319
            "GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
320
321
             information element";

322
323
324
325
          leaf latency {
            mandatory true;
            type uint32;
            units "ms";
326
            description
327
              "Specifies the maximum latency in ms.";
328
            reference
329
330
              "GS NFV IFA014: Section 6.5.6.2 QoS information
               element";
331
332
          }

333
334
335
336
          leaf packet-delay-variation {
            mandatory true;
            type uint32;
            units "ms";
337
            description
338
              "Specifies the maximum jitter in ms.";
339
            reference
340
341
342
              "GS NFV IFA014: Section 6.5.6.2 QoS information
               element";
          }
343

344
345
346
347
          leaf packet-loss-ratio {
            type decimal64 {
              fraction-digits "2";
              range "0..1.00";
348
            }
349
350
351
352
353
            description
              "Specifies the maximum packet loss ratio.";
            reference
              "GS NFV IFA014: Section 6.5.6.2 QoS information
               element";
354
          }
355

356
357
          leaf priority {
            type uint32;
358
            description
359
360
              "Specifies the priority level in case of
               congestion on the underlying physical links.";
361
            reference
362
363
              "GS NFV IFA014: Section 6.5.6.2 QoS information
               element";
364
365
366
          }
        }

367
        leaf service-availability-level {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
368
          type uint32;
369
          description
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
370
371
372
373
374
375
376
377
            "If present, specifies the service availability level
             for the VL instance created from this DF.

             THE FOLLOWING STATEMENT IS SUBJECT TO CHANGE:

             Either the serviceAvailabilityLevel attribute of NS DF
             or the serviceAvailabilityLevel attribute of the VL DF
             may be provided, but not both.";
378
          reference
379
            "GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
380
             information element";
381
        }
382
      }
383

384
385
386
387
388
      leaf test-access {
        type enumeration {
          enum none;
          enum passive-monitoring;
          enum active;
389
        }
390
391
392
393
394
        description
          "Specifies test access facilities expected on the VL.";
        reference
          "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
           information element";
395
      }
396

397
398
      leaf description {
        type string;
399
        description
400
401
          "Provides human-readable information on the purpose of
           the virtual link (e.g. VL for control plane traffic).";
402
        reference
403
          "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
404
           information element";
405
406
      }
    }
407

408
409
    list vnffgd {
      key "id";
410

411
412
413
414
415
416
417
418
419
420
421
422
423
424
      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
425
             element";
426
427
428
429
430
      }

      leaf-list vnf-profile-id {
        type leafref {
          path "../../df/vnf-profile/id";
431
        }
432
433
434
435
436
437
        description
          "References the VnfProfile of a constituent VNF.";
        reference
          "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
           element";
      }
438

439
440
441
      leaf-list pnf-profile-id {
        type leafref {
          path "../../df/pnf-profile/id";
442
        }
443
444
445
446
447
448
        description
          "References the PnfProfile of a constituent PNF.";
        reference
          "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
           element";
      }
449

450
451
452
      leaf-list nested-ns-profile-id {
        type leafref {
          path "../../df/ns-profile/id";
453
        }
454
455
456
457
458
459
        description
          "References the NsProfile of a nestedNS.";
        reference
          "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
           element";
      }
460

461
462
463
      leaf virtual-link-profile-id {
        type leafref {
          path "../../df/virtual-link-profile/id";
464
        }
465
466
467
468
469
470
471
        description
          "References the Virtual Link Profile of a constituent
             VL.";
        reference
          "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
           element";
      }
472

473
      list nfp-position-element {
474
        key "id";
475

Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
476
        min-elements 1;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
477

478
479
        leaf id {
          type string;
480
481
482
483
484
485
486
          description
            "Identifier of this NfpPositionElemen information
             element. It uniquely identifies an
             NfpPositionElemen.";
          reference
            "GS NFV IFA014: Section 6.4.6.2 NfpPositionElement
                 information element";
487
        }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
488

489
490
491
492
493
494
495
496
497
498
        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";
                }
499
500
              }
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
501

502
503
504
505
506
507
508
            container pnf-profile {
              leaf pnf-profile-id {
                must ". = deref(../../pnfd-profile-id)" {
                }
                type leafref {
                  path "../../../../../../nsd/df/pnf-profile/id";
                }
509
510
              }
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
511

512
513
514
515
516
517
518
            container ns-profile {
              leaf ns-profile-id {
                must ". = deref(../../ns-profile-id)" {
                }
                type leafref {
                  path "../../../../../../nsd/df/ns-profile/id";
                }
519
520
              }
            }
521
522
523
524
525
            description
              "Reference to the profile of an NS constituent.";
            reference
              "GS NFV IFA014: Section 6.4.8
               CpdInConstituentElement information element";
526
527
          }

Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
528
529
530
531
532
533
534
535
          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";
                }
536
              }
Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
537
538
539
540
              leaf cpd-id {
                type leafref {
                  path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id";
                }
541
542
              }
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
543

544
545
546
547
548
            container pnf {
              leaf pnfd-id {
                must ". = deref(../../pnfd-profile-id)/../pnfd-id" {
                }
                type leafref {
Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
549
                  path "/nfv:nfv/nfv:pnfd/nfv:id";
550
                }
551
              }
Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
552
553
554
555
              leaf pnf-cpd-id {
                type leafref {
                  path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id";
                }
556
557
              }
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
558

559
560
561
            container ns {
              leaf nsd-id {
                must ". = deref(../../nested-ns-profile-id)/" +
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
562
                     "../nsd-id" {
563
564
565
566
567
                }

                type leafref {
                  path "../../../../../../nsd/id";
                }
568
              }
569
570
571
572
              leaf sap-cpd-id {
                type leafref {
                  path "deref(../nsd-id)/../sapd/id";
                }
573
574
              }
            }
575
576
577
578
579
580
581
582
            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";
583
584
          }
          description
Mahesh Jethanandani's avatar
Bug#253    
Mahesh Jethanandani committed
585
            "Specifies a CPD or SAPD in the context of a profile
586
             of an NS constituent element.";
587
          reference
588
589
            "GS NFV IFA014: Section 6.4.6.2 NfpPositionElement
             information element";
590
591
        }
        description
592
593
594
          "One or a pair of CPDs or SAPDs. These descriptors
           shall be members of the CpdPool associated to the
           parent VNFFG.";
595
        reference
596
597
          "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
           information element";
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
      }

      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.
617
618
619
             The rule may be expressed as a criteria constructed out
             of atomic assertions linked by Boolean operators AND,
             OR and NOT.";
620
621
622
623
624
          reference
            "GS NFV IFA014: Section 6.4.3.2 Nfpd information
             element";
        }

625
        list position-desc {
626
627
          key "id";

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
628
          min-elements 1;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
629

630
631
632
          leaf id {
            type string;
            description
633
              "Identifier of this NfpPositionDesc element.";
634
            reference
635
636
              "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
               information element";
637
638
          }

639
640
641
          leaf-list nfp-position-element-id {
            type leafref {
              path "../../../nfp-position-element/id";
642
            }
643
            description
644
              "References one or a pair of CPDs or SAPDs.";
645
            reference
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
646
647
              "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
               information element";
648
          }
649

650
651
652
653
          leaf forwarding-behaviour {
            type identityref {
              base forwarding-behaviour;
            }
654
            description
655
656
657
              "Specifies a rule to apply to forward traffic to CP or
               SAP instances corresponding to the referenced CP
               profiles(s). The minimum list of rules to be supported
658
659
660
661
662
663
               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)
664
665
666
667
668
                 selected based on a load-balancing algorithm
               Values:
                 • ALL
                 • LB
                 • etc.";
669
            reference
670
671
              "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
               information element";
672
          }
673

674
675
676
677
678
679
680
681
682
          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";
683
          }
684
685
686
687
688
689
690
691
692

          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";
693
        }
694
695
696
697
698
        description
          "The network forwarding path associated to the VNFFG.";
        reference
          "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
           element";
699
      }
700
    }
701

702
703
704
    leaf-list autoscale-rule {
      type string;
    }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
705

706
707
708
    list lifecycle-management-script {
      key "event";
      leaf event {
709
710
        type string;
      }
711
712
      leaf script {
        type string;
713
      }
714
    }
715

716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
    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";
746
        }
747
748
749
        description
          "Assurance parameter against which this flavour is being
           described.
750

751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
           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.";
        }
766
767
        key "id";
        description
768
          "VNF profile to be used for the NS flavour.";
769
        reference
770
          "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
771
772
773

        leaf id {
          type string;
774
          description
775
            "Identifier of this VnfProfile information element. It
776
             uniquely identifies a VnfProfile.";
777
          reference
778
779
            "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
             element";
780
781
        }

782
783
        leaf vnfd-id {
          mandatory true;
784
          type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
785
            path "/nfv:nfv/nfv:vnfd/nfv:id";
786
          }
787
          description
788
789
790
791
792
            "References a VNFD.";
          reference
            "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
             element";
        }
793

794
795
796
        leaf flavour-id {
          mandatory true;
          type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
797
            path "deref(../vnfd-id)/../nfv:df/nfv:id";
798
799
          }
          description
800
            "References a flavour within the VNFD.";
801
          reference
802
803
            "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
             element";
804
805
        }

806
807
808
        leaf instantiation-level {
          mandatory true;
          type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
809
            path "deref(../flavour-id)/../nfv:instantiation-level/" +
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
810
                 "nfv:id";
811
          }
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
          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
844
        uses ns-local-affinity-or-anti-affinity-rule;
845

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
846
847
848
849
        leaf-list affinity-or-anti-affinity-group-id {
          type leafref {
            path "../../affinity-or-anti-affinity-group/id";
          }
850
          description
851
852
            "Reference(s) the affinity or anti-affinity group(s)
             the VnfProfile belongs to.";
853
          reference
854
855
856
            "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
             element";
        }
857

858
859
860
861
862
863
864
865
866
        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
867
               element";
868

869
          leaf virtual-link-profile-id {
870
            type leafref {
871
              path "../../../virtual-link-profile/id";
872
            }
873
            description
874
              "Reference an NS VL profile.";
875
            reference
876
877
              "GS NFV IFA014: Section 6.3.7.2, NsVirutalLinkConnectivity
               information element.";
878
879
          }

880
881
          list constituent-cpd-id {
            key "constituent-base-element-id";
882

883
            description
884
885
886
887
              "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.";
888
            reference
889
890
              "GS NFV IFA014: Section 6.3.7
               NsVirtualLinkConnectivity information element";
891

892
            leaf constituent-base-element-id {
893
              type leafref {
894
                path "../../../id";
895
              }
896
897
898
899
900
              description
                "Reference to the profile of an NS constituent.";
              reference
                "GS NFV IFA014: Section 6.4.8
                 CpdInConstituentElement information element";
901
902
            }

903
            leaf constituent-cpd-id {
904
              type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
905
                path "deref(../../../vnfd-id)/../nfv:ext-cpd/nfv:id";
906
              }
907
              description
908
909
910
                "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.";
911
              reference
912
913
                "GS NFV IFA014: Section 6.4.4.2 CpdPool information
                 element";
914
            }
915
916
          }
        }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931

        leaf service-availability-level {
          must "not(../../service-availability-level)";
          type uint32;
          description
            "If present, specifies the service availability level for
             the VNF instance created from this profile.

             Either the serviceAvailabilityLevel attribute of NS DF
             or the serviceAvailabilityLevel attribute of the
             VnfProfile may be provided, but not both.";
          reference
            "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
               element";
        }
932
      }
933

934
935
936
937
938
939
940
      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
941

942
943
944
945
946
947
948
949
950
        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
951

952
953
        leaf pnfd-id {
          type leafref {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
954
            path "/nfv:nfv/nfv:pnfd/nfv:id";
955
          }
956
957
958
959
960
          description
            "References a PNFD.";
          reference
            "GS NFV IFA014: Section 6.3.6.2 PnfProfile information
             element";
961
        }
962

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

966
967
968
969
970
971
972
          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";
973

974
          leaf virtual-link-profile-id {
975
            type leafref {
976
              path "../../../virtual-link-profile/id";
977
978
            }
            description
979
              "Reference an NS VL profile.";
980
            reference
981
982
              "GS NFV IFA014: Section 6.3.7.2, NsVirutalLinkConnectivity
               information element.";
983
984
          }

985
986
          list constituent-cpd-id {
            key "constituent-base-element-id";
987
988

            description
989
990
991
992
              "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.";
993
            reference
994
995
              "GS NFV IFA014: Section 6.3.7
               NsVirtualLinkConnectivity information element";
996

997
            leaf constituent-base-element-id {
998
              type leafref {
999
                path "../../../id";
1000
              }
For faster browsing, not all history is shown. View entire blame