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