Add PNF Descriptor requirements
[vnfrqts/requirements.git] / docs / Chapter5 / Tosca.rst
1 .. Modifications Copyright © 2017-2018 AT&T Intellectual Property.
2
3 .. Licensed under the Creative Commons License, Attribution 4.0 Intl.
4    (the "License"); you may not use this documentation except in compliance
5    with the License. You may obtain a copy of the License at
6
7 .. https://creativecommons.org/licenses/by/4.0/
8
9 .. Unless required by applicable law or agreed to in writing, software
10    distributed under the License is distributed on an "AS IS" BASIS,
11    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12    See the License for the specific language governing permissions and
13    limitations under the License.
14
15
16 ONAP TOSCA VNFD or PNFD Requirements
17 ------------------------------------
18
19
20 Introduction
21 ^^^^^^^^^^^^
22
23 The following sub-clauses describe the numbered requirements for VNF
24 Descriptor (VNFD) and PNF Descriptor (PNFD) or in other words the VNF/PNF
25 Service Template based on the most updated draft of ETSI NFV-SOL001 standard
26 for VNF/PNF Descriptor. The ETSI standard specifies a NFV specific data
27 model using TOSCA/YAML data model constructs specified in TOSCA Simple
28 Profile in YAML v.1.2.
29
30 The requirements for TOSCA/CSAR based VNF/PNF package are described as well
31 and they are based on ETSI NFV-SOL004 standard.
32
33 References
34 ^^^^^^^^^^^^^^^^^^
35
36   1. ETSI GS NFV-SOL001 v.2.5.1
37   2. TOSCA SIMPLE Profile in YAML v.1.2
38   3. ETSI GS NFV-SOL004 v.2.6.1 + NFV CR NFVSOL(18)000746r3.
39
40 Intended Audience
41 ^^^^^^^^^^^^^^^^^^
42
43 This document is intended for developers of VNF TOSCA templates that
44 will be orchestrated by ONAP. The document is also applicable for
45 creating RFP’s with the list of required TOSCA/YAML features
46 supported by VNF provider.
47
48 Scope
49 ^^^^^^^^^^^^^^^^
50
51 ONAP implementations of Network Cloud supports TOSCA Templates, also
52 referred to as TOSCA in this document.
53
54 ONAP requires the TOSCA Templates to follow a specific format. This
55 document provides the mandatory, recommended, and optional requirements
56 associated with this format.
57
58 Overview
59 ^^^^^^^^^^^^^^^^
60
61 The document includes three charters to help the VNF or PNF providers to
62 use the VNF or PNF model design tools and understand the VNF or PNF package
63 structure and VNF or PNF TOSCA templates.
64
65 In the ONAP, VNF or PNF Package and VNFD or PNFD template can be designed by
66 manually or via model designer tools. VNF or PNF model designer tools can
67 provide the GUI and CLI tools for the VNF or PNF provider to develop the
68 VNF or PNF Package and VNFD or PNFD template.
69
70 The VNF or PNF package structure is align to the NFV TOSCA protocol,
71 and supports CSAR
72
73 The VNFD or PNFD and VNF or PNF package are all align to the NFV TOSCA
74 protocol, which supports multiple TOSCA template yaml files, and also
75 supports self-defined node or other extensions.
76
77 VNF or PNF CSAR Package
78 ^^^^^^^^^^^^^^^^^^^^^^
79
80 CSAR Overview
81 ~~~~~~~~~~~~~~~~
82
83 TOSCA YAML CSAR file is an archive file using the ZIP file format whose
84 structure complies with the TOSCA Simple Profile YAML v1.2 Specification.
85 The CSAR file may have one of the two following structures:
86
87   - CSAR containing a TOSCA-Metadata directory, which includes the TOSCA.meta
88     metadata file providing an entry information for processing a CSAR file.
89
90   - CSAR containing a single yaml (.yml or .yaml) file at the root of the
91     archive. The yaml file is a TOSCA definition template that contains a
92     metadata section with template_name and template_version metadata. This
93     file is the CSAR Entry-Definitions file.
94
95 VNF Package Structure and Format
96 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
97
98 .. req::
99     :id: R-51347
100     :target: VNF
101     :keyword: MUST
102     :introduced: casablanca
103
104     The VNF package **MUST** be arranged as a CSAR archive as specified in
105     TOSCA Simple Profile in YAML 1.2.
106
107
108 .. req::
109     :id: R-87234
110     :target: VNF
111     :keyword: MAY
112     :introduced: casablanca
113
114     The VNF package provided by a VNF vendor **MAY** be either with
115     TOSCA-Metadata directory (CSAR Option 1) or without TOSCA-Metadata
116     directory (CSAR Option 2) as specified in ETSI GS NFV-SOL004. On-boarding
117     entity (ONAP SDC) must support both options.
118
119     **Note:** SDC supports only the CSAR Option 1 in Casablanca. The Option 2
120     will be considered in future ONAP releases,
121
122
123 VNF Package Contents
124 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
125
126 .. req::
127     :id: R-10087
128     :target: VNF
129     :keyword: MUST
130     :introduced: casablanca
131
132     The VNF package **MUST** contain all standard artifacts as specified in
133     ETSI GS NFV-SOL004 including Manifest file, VNFD (or Main TOSCA/YAML
134     based Service Template) and other optional artifacts. CSAR Manifest
135     file as per SOL004 - for example ROOT\\ **MainServiceTemplate.mf**
136
137 .. req::
138     :id: R-01123
139     :target: VNF or PNF
140     :keyword: MUST
141     :introduced: casablanca
142     :updated: dublin
143
144     The VNF or PNF package Manifest file **MUST** contain: VNF or PNF package
145     meta-data, a list of all artifacts (both internal and external) entry's
146     including their respected URI's, an algorithm to calculate a digest and
147     a digest result calculated on the content of each artifacts, as specified
148     in ETSI GS NFV-SOL004.
149
150 .. req::
151     :id: R-21322
152     :target: VNF
153     :keyword: MUST
154     :introduced: casablanca
155
156     The VNF provider **MUST** provide their testing scripts to support
157     testing as specified in ETSI NFV-SOL004 - Testing directory in CSAR
158
159 .. req::
160     :id: R-26885
161     :target: VNF
162     :keyword: MUST
163     :introduced: casablanca
164
165     The VNF provider **MUST** provide the binaries and images needed to
166     instantiate the VNF (VNF and VNFC images) either as:
167
168       - Local artifact in CSAR: ROOT\\Artifacts\\ **VNF_Image.bin**
169
170       - externally referred (by URI) artifact in Manifest file (also may be
171         referred by VNF Descriptor)
172
173     Note: Currently, ONAP doesn't have the capability of Image management,
174     we upload the image into VIM/VNFM manually.
175
176 .. req::
177     :id: R-40820
178     :target: VNF
179     :keyword: MUST
180     :introduced: casablanca
181
182     The VNF provider MUST enumerate all of the open source licenses
183     their VNF(s) incorporate. CSAR License directory as per ETSI SOL004.
184
185     for example ROOT\\Licenses\\ **License_term.txt**
186
187 .. req::
188     :id: R-146092
189     :target: VNF or PNF
190     :keyword: MUST
191     :introduced: dublin
192     
193     The VNF or PNF package Manifest file **MUST** contain: non-mano artifact
194     set with following ONAP public tag:
195
196       - onap_ves_events
197
198       - onap_pm_dictionary
199
200       - onap_yang_module
201
202       - onap_others
203
204 VNF or PNF Package Authenticity
205 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
206
207 VNF or PNF package shall support a method for authenticity and integrity
208 assurance. Note, Option 2 specified in SOL004 is supported in Dublin release.
209
210 .. req::
211     :id: R-444945
212     :target: VNF or PNF
213     :keyword: MUST
214     :introduced: dublin
215
216     The complete CSAR file **MUST** be digitally signed with the VNF or PNF
217     provider private key. The VNF or PNF provider delivers one zip file
218     consisting of the CSAR file, a signature file and a certificate file that
219     includes the VNF or PNF provider public key. The certificate may also be
220     included in the signaturecontainer, if the signature format allows that.
221
222 VNF Package ONAP Extensions
223 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
224
225 1. TOACA data type extension tosca.datatypes.nfv.injectFile is used for vCPE
226    use case.
227 2. ONAP extensions for VNF package that is currently proposed for Dublin
228    release is VES extension described below.
229
230 TOSCA Introduction
231 ^^^^^^^^^^^^^^^^^^^
232
233 TOSCA defines a Meta model for defining IT services. This Meta model
234 defines both the structure of a service as well as how to manage it. A
235 Topology Template (also referred to as the topology model of a service)
236 defines the structure of a service. Plans define the process models that
237 are used to create and terminate a service as well as to manage a
238 service during its whole lifetime.
239
240 A Topology Template consists of a set of Node Templates and Relationship
241 Templates that together define the topology model of a service as a (not
242 necessarily connected) directed graph. A node in this graph is
243 represented by a *Node Template*. A Node Template specifies the
244 occurrence of a Node Type as a component of a service. A *Node Type*
245 defines the properties of such a component (via *Node Type Properties*)
246 and the operations (via *Interfaces*) available to manipulate the
247 component. Node Types are defined separately for reuse purposes and a
248 Node Template references a Node Type and adds usage constraints, such as
249 how many times the component can occur.
250
251 |image1|
252
253 Figure 1: Structural Elements of Service Template and their Relations
254
255 TOSCA Modeling Principles & Data Model
256 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
257
258 This section describing TOSCA modeling principles and data model for
259 NFV, which shall be based on [TOSCA-1.0] and [TOSCA-Simple-Profile-YAML
260 V1.0], or new type based on ETSI NFV requirements, etc.
261
262 TOSCA VNF Descriptor
263 ^^^^^^^^^^^^^^^^^^^^^^^^^
264
265 General
266 ~~~~~~~~~~
267
268 .. req::
269     :id: R-35854
270     :target: VNF
271     :keyword: MUST
272     :introduced: casablanca
273
274     The VNF Descriptor (VNFD) provided by VNF vendor **MUST** comply with
275     TOSCA/YAML based Service template for VNF descriptor specified in
276     ETSI NFV-SOL001.
277
278     **Note**: As the ETSI NFV-SOL001 is work in progress the below tables
279     summarizes the TOSCA definitions agreed to be part of current version
280     of NFV profile and that VNFD MUST comply with in ONAP Release 2+
281     Requirements.
282
283
284 .. req::
285     :id: R-65486
286     :target: VNF
287     :keyword: MUST
288     :introduced: casablanca
289
290     The VNFD **MUST** comply with ETSI GS NFV-SOL001 document endorsing
291     the above mentioned NFV Profile and maintaining the gaps with the
292     requirements specified in ETSI GS NFV-IFA011 standard.
293
294
295 .. req::
296     :id: R-17852
297     :target: VNF
298     :keyword: MAY
299     :introduced: casablanca
300
301     The VNFD **MAY** include TOSCA/YAML definitions that are not part of
302     NFV Profile. If provided, these definitions MUST comply with TOSCA
303     Simple Profile in YAML v.1.2.
304
305 .. req::
306     :id: R-46527
307     :target: VNF
308     :keyword: MUST
309     :introduced: casablanca
310
311     A VNFD is a deployment template which describes a VNF in terms of
312     deployment and operational behavior requirements. It contains
313     virtualized resources (nodes) requirements as well as connectivity
314     and interfaces requirements and **MUST** comply with info elements
315     specified in ETSI GS NFV-IFA 011. The main parts of the VNFD are
316     the following:
317
318       - VNF topology: it is modeled in a cloud agnostic way using virtualized
319         containers and their connectivity. Virtual Deployment Units (VDU)
320         describe the capabilities of the virtualized containers, such as
321         virtual CPU, RAM, disks; their connectivity is modeled with VDU
322         Connection Point Descriptors (VduCpd), Virtual Link Descriptors
323         (VnfVld) and VNF External Connection Point Descriptors
324         (VnfExternalCpd);
325
326       - VNF deployment aspects: they are described in one or more
327         deployment flavours, including configurable parameters, instantiation
328         levels, placement constraints (affinity / antiaffinity), minimum and
329         maximum VDU instance numbers. Horizontal scaling is modeled with
330         scaling aspects and the respective scaling levels in the deployment
331         flavours;
332
333     **Note**: The deployment aspects (deployment flavour etc.) are postponed
334     for future ONAP releases.
335
336       - VNF lifecycle management (LCM) operations: describes the LCM operations
337         supported per deployment flavour, and their input parameters;
338         Note, thatthe actual LCM implementation resides in a different layer,
339         namely referring to additional template artifacts.
340
341 .. req::
342     :id: R-15837
343     :target: VNF
344     :keyword: MUST
345     :introduced: casablanca
346
347     The following table defines the major TOSCA  Types specified in
348     ETSI NFV-SOL001 standard draft. The VNFD provided by a VNF vendor
349     **MUST** comply with the below definitions:
350
351
352 .. csv-table:: **TOSCA Definition**
353    :file: TOSCA_descriptor.csv
354    :header-rows: 1
355    :align: center
356    :widths: auto
357
358 Data Types
359 ~~~~~~~~~~~~
360
361 .. req::
362     :id: R-54356
363     :target: VNF
364     :keyword: MUST
365     :introduced: casablanca
366
367     The below table includes the data types used by NFV node and is based
368     on TOSCA/YAML constructs specified in draft GS NFV-SOL 001. The node
369     data definitions/attributes used in VNFD **MUST** comply with the below
370     table.
371
372 .. csv-table:: **NFV Data Types**
373    :file: NFV_data_type.csv
374    :header-rows: 1
375    :align: center
376    :widths: auto
377
378 .. req::
379     :id: R-54876
380     :target: VNF
381     :keyword: MUST
382     :introduced: casablanca
383
384     The below table describes the data types used for LCM configuration
385     and is based on TOSCA constructs specified in draft GS NFV-SOL 001.
386     The LCM configuration data elements used in VNFD **MUST** comply
387     with the below table.
388
389 .. csv-table:: **LCM Configuration**
390    :file: LCM_config.csv
391    :header-rows: 1
392    :align: center
393    :widths: auto
394
395 Artifact Types
396 ~~~~~~~~~~~~~~~~~~~~~~~~
397
398 No artifact type is currently supported in ONAP.
399
400 Capability Types
401 ~~~~~~~~~~~~~~~~~~~~~~~~
402
403 .. req::
404     :id: R-67895
405     :target: VNF
406     :keyword: MUST
407     :introduced: casablanca
408
409     The VNFD provided by VNF vendor may use the below described TOSCA
410     capabilities. An on-boarding entity (ONAP SDC) **MUST** support them.
411
412       **tosca.capabilities.nfv.VirtualBindable**
413
414         A node type that includes the VirtualBindable capability indicates
415         that it can be pointed by **tosca.relationships.nfv.VirtualBindsTo**
416         relationship type.
417
418       **tosca.capabilities.nfv.VirtualLinkable**
419
420         A node type that includes the VirtualLinkable capability indicates
421         that it can be pointed by **tosca.relationships.nfv.VirtualLinksTo**
422         relationship.
423
424       **tosca.capabilities.nfv.ExtVirtualLinkable**
425
426         A node type that includes the ExtVirtualLinkable capability
427         indicates that it can be pointed by
428         **tosca.relationships.nfv.VirtualLinksTo** relationship.
429
430       **Note**: This capability type is used in Casablanca how it does
431       not exist in the last SOL001 draft
432
433       **tosca.capabilities.nfv.VirtualCompute** and
434       **tosca.capabilities.nfv.VirtualStorage** includes flavours of VDU
435
436
437 Relationship Types
438 ~~~~~~~~~~~~~~~~~~~~~~~~
439
440 .. req::
441     :id: R-95321
442     :target: VNF
443     :keyword: MUST
444     :introduced: casablanca
445
446     The VNFD provided by VNF vendor may use the below described TOSCA
447     relationships. An on-boarding entity (ONAP SDC) **MUST** support them.
448
449       **tosca.relationships.nfv.VirtualBindsTo**
450
451         This relationship type represents an association relationship between
452         VDU and CP node types.
453
454       **tosca.relationships.nfv.VirtualLinksTo**
455
456         This relationship type represents an association relationship between
457         the VduCpd's and VirtualLinkDesc node types.
458
459
460 Interface Types
461 ~~~~~~~~~~~~~~~~~~~~~~~~
462
463 .. req::
464     :id: R-32155
465     :target: VNF
466     :keyword: MUST
467     :introduced: casablanca
468
469     The VNFD provided by VNF vendor may use the below described TOSCA
470     interface types. An on-boarding entity (ONAP SDC) **MUST** support them.
471
472       **tosca.interfaces.nfv.vnf.lifecycle.Nfv** supports LCM operations
473
474
475 TOSCA PNF Descriptor
476 ^^^^^^^^^^^^^^^^^^^^^^^^^
477
478
479 General
480 ~~~~~~~~~~
481
482
483 Data Types
484 ~~~~~~~~~~~~~~
485
486
487 Artifact Types
488 ~~~~~~~~~~~~~~~~~~~~~~~~
489
490 No artifact type is currently supported in ONAP.
491
492
493 Capability Types
494 ~~~~~~~~~~~~~~~~~~~~~~~~
495
496
497 Requirements Types
498 ~~~~~~~~~~~~~~~~~~~~~~~~
499
500
501 Relationship Types
502 ~~~~~~~~~~~~~~~~~~~~~~~~
503
504 No requirements type is currently supported in ONAP.
505
506
507 Interface Types
508 ~~~~~~~~~~~~~~~~~~~~~~~~
509
510 No interface type is currently supported in ONAP.
511
512
513 Node Types
514 ~~~~~~~~~~~~~~
515
516
517 Group Types
518 ~~~~~~~~~~~~~~
519
520 No group type is currently supported in ONAP.
521
522
523 Policy Types
524 ~~~~~~~~~~~~~~
525
526
527
528 +--------------------------------------------------------------------+
529 | +--------------------------------------------------------------+   |
530 | | tosca\_definitions\_version: tosca\_simple\_yaml\_1\_0       |   |
531 | |                                                              |   |
532 | | description: VNFD TOSCA file demo                            |   |
533 | |                                                              |   |
534 | | imports:                                                     |   |
535 | |                                                              |   |
536 | | - TOSCA\_definition\_nfv\_1\_0.yaml                          |   |
537 | |                                                              |   |
538 | | - TOSCA\_definition\_nfv\_ext\_1\_0.yaml                     |   |
539 | |                                                              |   |
540 | | | **node\_types:                                             |   |
541 | |   tosca.nodes.nfv.VNF.vOpenNAT:                              |   |
542 | |   derived\_from:** tosca.nodes.nfv.VNF                       |   |
543 | | | **requirements:                                            |   |
544 | |   **- **sriov\_plane:                                        |   |
545 | |   capability:** tosca.capabilities.nfv.VirtualLinkable       |   |
546 | | | **node:** tosca.nodes.nfv.VnfVirtualLinkDesc               |   |
547 | | | **relationship:** tosca.relationships.nfv.VirtualLinksTo   |   |
548 | +--------------------------------------------------------------+   |
549 +====================================================================+
550 +--------------------------------------------------------------------+
551
552
553 HPA Requirements
554 ^^^^^^^^^^^^^^^^^^
555
556 1. SR-IOV Passthrought
557
558 Definitions of SRIOV\_Port are necessary if VDU supports SR-IOV. Here is
559 an example.
560
561 .. code-block:: yaml
562
563   node\_templates:
564
565   vdu\_vNat:
566
567   SRIOV\_Port:
568
569   attributes:
570
571   tosca\_name: SRIOV\_Port
572
573   properties:
574
575   virtual\_network\_interface\_requirements:
576
577   - name: sriov
578
579   support\_mandatory: false
580
581   description: sriov
582
583   requirement:
584
585   SRIOV: true
586
587   role: root
588
589   description: sriov port
590
591   layer\_protocol: ipv4
592
593   requirements:
594
595   - virtual\_binding:
596
597   capability: virtual\_binding
598
599   node: vdu\_vNat
600
601   relationship:
602
603   type: tosca.relationships.nfv.VirtualBindsTo
604
605   - virtual\_link:
606
607   node: tosca.nodes.Root
608
609   type: tosca.nodes.nfv.VduCpd
610
611   substitution\_mappings:
612
613   requirements:
614
615   sriov\_plane:
616
617   - SRIOV\_Port
618
619   - virtual\_link
620
621   node\_type: tosca.nodes.nfv.VNF.vOpenNAT
622
623
624 2. Hugepages
625
626 Definitions of mem\_page\_size as one property shall be added to
627 Properties and set the value to large if one VDU node supports
628 huagepages. Here is an example.
629
630 .. code-block:: yaml
631
632   node\_templates:
633
634   vdu\_vNat:
635
636   Hugepages:
637
638   attributes:
639
640   tosca\_name: Huge\_pages\_demo
641
642   properties:
643
644   mem\_page\_size:large
645
646
647 3. NUMA (CPU/Mem)
648
649 Likewise, we shall add definitions of numa to
650 requested\_additional\_capabilities if we wand VUD nodes to support
651 NUMA. Here is an example.
652
653 .. code-block:: yaml
654
655   topology\_template:
656
657   node\_templates:
658
659   vdu\_vNat:
660
661   capabilities:
662
663   virtual\_compute:
664
665   properties:
666
667   virtual\_memory:
668
669   numa\_enabled: true
670
671   virtual\_mem\_size: 2 GB
672
673   requested\_additional\_capabilities:
674
675   numa:
676
677   support\_mandatory: true
678
679   requested\_additional\_capability\_name: numa
680
681   target\_performance\_parameters:
682
683   hw:numa\_nodes: "2"
684
685   hw:numa\_cpus.0: "0,1"
686
687   hw:numa\_mem.0: "1024"
688
689   hw:numa\_cpus.1: "2,3,4,5"
690
691   hw:numa\_mem.1: "1024"
692
693
694 4. Hyper-Theading
695
696 Definitions of Hyper-Theading are necessary as one of
697 requested\_additional\_capabilities of one VUD node if that node
698 supports Hyper-Theading. Here is an example.
699
700 .. code-block:: yaml
701
702   topology\_template:
703
704   node\_templates:
705
706   vdu\_vNat:
707
708   capabilities:
709
710   virtual\_compute:
711
712   properties:
713
714   virtual\_memory:
715
716   numa\_enabled: true
717
718   virtual\_mem\_size: 2 GB
719
720   requested\_additional\_capabilities:
721
722   hyper\_threading:
723
724   support\_mandatory: true
725
726   requested\_additional\_capability\_name: hyper\_threading
727
728   target\_performance\_parameters:
729
730   hw:cpu\_sockets : "2"
731
732   hw:cpu\_threads : "2"
733
734   hw:cpu\_cores : "2"
735
736   hw:cpu\_threads\_policy: "isolate"
737
738
739 5. OVS+DPDK
740
741 Definitions of ovs\_dpdk are necessary as one of
742 requested\_additional\_capabilities of one VUD node if that node
743 supports dpdk. Here is an example.
744
745 .. code-block:: yaml
746
747   topology\_template:
748
749   node\_templates:
750
751   vdu\_vNat:
752
753   capabilities:
754
755   virtual\_compute:
756
757   properties:
758
759   virtual\_memory:
760
761   numa\_enabled: true
762
763   virtual\_mem\_size: 2 GB
764
765   requested\_additional\_capabilities:
766
767   ovs\_dpdk:
768
769   support\_mandatory: true
770
771   requested\_additional\_capability\_name: ovs\_dpdk
772
773   target\_performance\_parameters:
774
775   sw:ovs\_dpdk: "true"
776
777
778 VES Requirements
779 ^^^^^^^^^^^^^^^^^^^^^^^^^
780
781 **Note: ONAP proprietary extensions in ETSI SOL004 standards for VES support
782 in CSAR package need to be manually loaded in R3 (Casablanca) for VNF and
783 PNFs. Platform support will be developed for this in upcoming releases.**
784
785
786 NFV TOSCA Type Definition
787 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
788
789 tosca.capabilites.nfv.VirtualCompute
790 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
791
792 This capability is used with the properties specified in ETSI SOL001 draft.
793
794 tosca.nodes.nfv.VDU.Compute
795 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
796
797 The NFV Virtualization Deployment Unit (VDU) compute node type
798 represents a VDU entity which it describes the deployment and
799 operational behavior of a VNF component (VNFC), as defined by **[ETSI
800 NFV IFA011].**
801
802 +-----------------------+-------------------------------+
803 | Shorthand Name        | VDU.Compute                   |
804 +=======================+===============================+
805 | Type Qualified Name   | tosca:VDU.Compute             |
806 +-----------------------+-------------------------------+
807 | Type URI              | tosca.nodes.nfv.VDU.Compute   |
808 +-----------------------+-------------------------------+
809 | derived\_from         | tosca.nodes.Compute           |
810 +-----------------------+-------------------------------+
811
812
813
814 Attributes
815 ++++++++++++
816
817 None
818
819
820 Capabilities
821 ++++++++++++++
822
823 +------------+--------------------+------------+------------------------------+
824 | Name       | Type               | Constraints| Description                  |
825 +============+====================+============+==============================+
826 | virtual\   | tosca.\            |            | Describes virtual compute    |
827 | _compute   | capabilities.nfv.\ |            | resources capabilities.      |
828 |            | VirtualCompute     |            |                              |
829 +------------+--------------------+------------+------------------------------+
830 | monitoring\| tosca.\            | None       | Monitoring parameter, which  |
831 | _parameter | capabilities.nfv.\ |            | can be tracked for a VNFC    |
832 |            | Metric             |            | based on this VDU            |
833 |            |                    |            |                              |
834 |            |                    |            | Examples include:            |
835 |            |                    |            | memory-consumption,          |
836 |            |                    |            | CPU-utilisation,             |
837 |            |                    |            | bandwidth-consumption, VNFC  |
838 |            |                    |            | downtime, etc.               |
839 +------------+--------------------+------------+------------------------------+
840 | Virtual\   | tosca.\            |            | Defines ability of           |
841 | _binding   | capabilities.nfv.\ |            | VirtualBindable              |
842 |            | VirtualBindable    |            |                              |
843 |            |                    |            |                              |
844 |            | editor note: need  |            |                              |
845 |            | to create a        |            |                              |
846 |            | capability type    |            |                              |
847 +------------+--------------------+------------+------------------------------+
848
849
850
851 Definition
852 ++++++++++++
853
854 .. code-block:: yaml
855
856   tosca.nodes.nfv.VDU.Compute:
857
858   derived\_from: tosca.nodes.Compute
859
860   properties:
861
862   name:
863
864   type: string
865
866   required: true
867
868   description:
869
870   type: string
871
872   required: true
873
874   boot\_order:
875
876   type: list # explicit index (boot index) not necessary, contrary to IFA011
877
878   entry\_schema:
879
880   type: string
881
882   required: false
883
884   nfvi\_constraints:
885
886   type: list
887
888   entry\_schema:
889
890   type: string
891
892   required: false
893
894   configurable\_properties:
895
896   type: map
897
898   entry\_schema:
899
900   type: tosca.datatypes.nfv.VnfcConfigurableProperties
901
902   required: true
903
904   attributes:
905
906   private\_address:
907
908   status: deprecated
909
910   public\_address:
911
912   status: deprecated
913
914   networks:
915
916   status: deprecated
917
918   ports:
919
920   status: deprecated
921
922   capabilities:
923
924   virtual\_compute:
925
926   type: tosca.capabilities.nfv.VirtualCompute
927
928   virtual\_binding:
929
930   type: tosca.capabilities.nfv.VirtualBindable
931
932   #monitoring\_parameter:
933
934   # modeled as ad hoc (named) capabilities in VDU node template
935
936   # for example:
937
938   #capabilities:
939
940   # cpu\_load: tosca.capabilities.nfv.Metric
941
942   # memory\_usage: tosca.capabilities.nfv.Metric
943
944   host: #Editor note: FFS. How this capabilities should be used in NFV Profile|
945
946   type: *tosca.capabilities.Container*
947
948   valid\_source\_types:
949   [*tosca.nodes.SoftwareComponent*]
950
951   occurrences: [0,UNBOUNDED]
952
953   endpoint:
954
955   occurrences: [0,0]
956
957   os:
958
959   occurrences: [0,0]
960
961   scalable:
962   #Editor note: FFS. How this capabilities should be used in NFV Profile
963
964   type: *tosca.capabilities.Scalable*
965
966   binding:
967
968   occurrences: [0,UNBOUND]
969
970   requirements:
971
972   - virtual\_storage:
973
974   capability: tosca.capabilities.nfv.VirtualStorage
975
976   relationship: tosca.relationships.nfv.VDU.AttachedTo
977
978   node: tosca.nodes.nfv.VDU.VirtualStorage
979
980   occurences: [ 0, UNBOUNDED ]
981
982   - local\_storage: #For NFV Profile, this requirement is deprecated.
983
984   occurrences: [0,0]
985
986   artifacts:
987
988   - sw\_image:
989
990   file:
991
992   type: tosca.artifacts.nfv.SwImage
993
994
995 Artifact
996 ++++++++++
997
998 Note: currently not supported.
999
1000 +--------+---------+----------------+------------+------------------------+
1001 | Name   | Required| Type           | Constraints| Description            |
1002 +========+=========+================+============+========================+
1003 | SwImage| Yes     | tosca.\        |            | Describes the software |
1004 |        |         | artifacts.nfv.\|            | image which is directly|
1005 |        |         | SwImage        |            | realizing this virtual |
1006 |        |         |                |            | storage                |
1007 +--------+---------+----------------+------------+------------------------+
1008
1009
1010 |image2|
1011
1012
1013
1014 tosca.nodes.nfv.VDU.VirtualStorage
1015 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1016
1017 The NFV VirtualStorage node type represents a virtual storage entity
1018 which it describes the deployment and operational behavior of a virtual
1019 storage resources, as defined by **[ETSI NFV IFA011].**
1020
1021 **[editor note]** open issue: should NFV profile use the current storage
1022 model as described in YAML 1.1. Pending on Shitao proposal (see
1023 NFVIFA(17)000110 discussion paper)
1024
1025 **[editor note]** new relationship type as suggested in Matt
1026 presentation. Slide 8. With specific rules of "valid\_target\_type"
1027
1028 +---------------------------+--------------------------------------+
1029 | **Shorthand Name**        | VirtualStorage                       |
1030 +===========================+======================================+
1031 | **Type Qualified Name**   | tosca: VirtualStorage                |
1032 +---------------------------+--------------------------------------+
1033 | **Type URI**              | tosca.nodes.nfv.VDU.VirtualStorage   |
1034 +---------------------------+--------------------------------------+
1035 | **derived\_from**         | tosca.nodes.Root                     |
1036 +---------------------------+--------------------------------------+
1037
1038 tosca.artifacts.nfv.SwImage
1039 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1040
1041 +---------------------------+------------------------------------+
1042 | **Shorthand Name**        | SwImage                            |
1043 +===========================+====================================+
1044 | **Type Qualified Name**   | tosca:SwImage                      |
1045 +---------------------------+------------------------------------+
1046 | **Type URI**              | tosca.artifacts.nfv.SwImage        |
1047 +---------------------------+------------------------------------+
1048 | **derived\_from**         | tosca.artifacts.Deployment.Image   |
1049 +---------------------------+------------------------------------+
1050
1051 Properties
1052 ++++++++++++
1053
1054 +-----------------+---------+----------+------------+-------------------------+
1055 | Name            | Required| Type     | Constraints| Description             |
1056 +=================+=========+==========+============+=========================+
1057 | name            | yes     | string   |            | Name of this software   |
1058 |                 |         |          |            | image                   |
1059 +-----------------+---------+----------+------------+-------------------------+
1060 | version         | yes     | string   |            | Version of this software|
1061 |                 |         |          |            | image                   |
1062 +-----------------+---------+----------+------------+-------------------------+
1063 | checksum        | yes     | string   |            | Checksum of the software|
1064 |                 |         |          |            | image file              |
1065 +-----------------+---------+----------+------------+-------------------------+
1066 | container\      | yes     | string   |            | The container format    |
1067 | _format         |         |          |            | describes the container |
1068 |                 |         |          |            | file format in which    |
1069 |                 |         |          |            | software image is       |
1070 |                 |         |          |            | provided.               |
1071 +-----------------+---------+----------+------------+-------------------------+
1072 | disk\_format    | yes     | string   |            | The disk format of a    |
1073 |                 |         |          |            | software image is the   |
1074 |                 |         |          |            | format of the underlying|
1075 |                 |         |          |            | disk image              |
1076 +-----------------+---------+----------+------------+-------------------------+
1077 | min\_disk       | yes     | scalar-\ |            | The minimal disk size   |
1078 |                 |         | unit.size|            | requirement for this    |
1079 |                 |         |          |            | software image.         |
1080 +-----------------+---------+----------+------------+-------------------------+
1081 | min\_ram        | no      | scalar-\ |            | The minimal RAM         |
1082 |                 |         | unit.size|            | requirement for this    |
1083 |                 |         |          |            | software image.         |
1084 +-----------------+---------+----------+------------+-------------------------+
1085 | Size            | yes     | scalar-\ |            | The size of this        |
1086 |                 |         | unit.size|            | software image          |
1087 +-----------------+---------+----------+------------+-------------------------+
1088 | sw\_image       | yes     | string   |            | A reference to the      |
1089 |                 |         |          |            | actual software image   |
1090 |                 |         |          |            | within VNF Package, or  |
1091 |                 |         |          |            | url.                    |
1092 +-----------------+---------+----------+------------+-------------------------+
1093 | operating\      | no      | string   |            | Identifies the operating|
1094 | _system         |         |          |            | system used in the      |
1095 |                 |         |          |            | software image.         |
1096 +-----------------+---------+----------+------------+-------------------------+
1097 | supported\      | no      | list     |            | Identifies the          |
1098 | _virtualization\|         |          |            | virtualization          |
1099 | _enviroment     |         |          |            | environments (e.g.      |
1100 |                 |         |          |            | hypervisor) compatible  |
1101 |                 |         |          |            | with this software image|
1102 +-----------------+---------+----------+------------+-------------------------+
1103
1104
1105 Definition
1106 +++++++++++
1107
1108 .. code-block:: yaml
1109
1110   tosca.artifacts.nfv.SwImage:
1111
1112     derived\_from: tosca.artifacts.Deployment.Image
1113
1114     properties or metadata:
1115
1116       #id:
1117
1118         # node name
1119
1120       name:
1121
1122         type: string
1123
1124   required: true
1125
1126       version:
1127
1128         type: string
1129
1130   required: true
1131
1132       checksum:
1133
1134         type: string
1135
1136   required: true
1137
1138       container\_format:
1139
1140         type: string
1141
1142   required: true
1143
1144       disk\_format:
1145
1146         type: string
1147
1148   required: true
1149
1150       min\_disk:
1151
1152         type: scalar-unit.size # Number
1153
1154   required: true
1155
1156       min\_ram:
1157
1158         type: scalar-unit.size # Number
1159
1160   required: false
1161
1162       size:
1163
1164         type: scalar-unit.size # Number
1165
1166   required: true
1167
1168       sw\_image:
1169
1170         type: string
1171
1172   required: true
1173
1174       operating\_system:
1175
1176         type: string
1177
1178   required: false
1179
1180       supported\_virtualisation\_environments:
1181
1182         type: list
1183
1184         entry\_schema:
1185
1186           type: string
1187
1188   required: false
1189
1190
1191 .. |image1| image:: ../Image1.png
1192    :width: 5.76806in
1193    :height: 4.67161in
1194
1195 .. |image2| image:: ../Image2.png
1196    :width: 5.40486in
1197    :height: 2.46042in