Reference VNF and NS Descriptors (Release ONE): Difference between revisions

From OSM Public Wiki
Jump to: navigation, search
(Instructions to create OSM packages)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The following reference examples are provided to help VNF vendors to create their own descriptors (NSD, VNFD) usable in OSM.
The following reference examples are provided to help VNF vendors to create their own descriptors (NSD, VNFD) usable in OSM. Please follow the below instruction to create descriptor packages
 
* Clone the descriptor-packages repo:
git clone https://osm.etsi.org/gerrit/osm/descriptor-packages
* Create a new VNF folder under src/vnfd and copy the VNF yaml descriptors in the new folder
* Create a new NS folder under src/nsd and copy the NS yaml descriptors in the new folder
* Build VNF and NS packages
make
* Packages will be created under build/vnfd_pkgs and build/nsd_pkgs
 


= Reference NS#1: Testing an endpoint VNF =
= Reference NS#1: Testing an endpoint VNF =
Line 39: Line 48:


=== OSM VNF descriptor for VNF#11 ===
=== OSM VNF descriptor for VNF#11 ===
[[File:Ref_VNF_11.tar.gz]]
[https://osm.etsi.org/gitweb/?p=osm/descriptor-packages.git;a=blob;f=src/vnfd/ref11_vnf/ref11_vnfd.yaml;h=f308282b4f3fab25161e780c084efd82bc0f42d2;hb=HEAD VNF11.yaml]
<nowiki>
vnfd:vnfd-catalog:
    vnfd:vnfd:
    -  vnfd:connection-point:
        -  vnfd:name: mgmt0
            vnfd:type: VPORT
        vnfd:description: A simple VNF descriptor w/ VM1 and VM2
        vnfd:id: 287671e2-2858-48cf-a13c-b4cb1351aa9f
        vnfd:name: Ref_VNF_11
        vnfd:short-name: Ref_VNF_11
        vnfd:vdu:
        -  vnfd:external-interface:
            -  vnfd:name: iface10
                vnfd:virtual-interface:
                    vnfd:type: OM-MGMT
                vnfd:vnfd-connection-point-ref: mgmt0
            vnfd:id: abd6831e-f811-4580-9aad-1de9c6424180
            vnfd:image: ref_vm1.qcow2
            vnfd:name: Ref_VM1
            vnfd:vm-flavor:
                vnfd:memory-mb: '2048'
                vnfd:storage-gb: '8'
                vnfd:vcpu-count: '2'
        vnfd:vendor: ETSI
        vnfd:version: '1.0'
</nowiki>


== Reference VNF#21: Generator 1 port ==
== Reference VNF#21: Generator 1 port ==
Line 79: Line 62:


=== OSM VNF descriptor for VNF#21 ===
=== OSM VNF descriptor for VNF#21 ===
[[File:Ref_VNF_21.tar.gz]]
[https://osm.etsi.org/gitweb/?p=osm/descriptor-packages.git;a=blob;f=src/vnfd/ref21_vnf/ref21_vnfd.yaml;h=f308282b4f3fab25161e780c084efd82bc0f42d2;hb=HEAD VNF21.yaml]
<nowiki>
vnfd:vnfd-catalog:
    vnfd:vnfd:
    -  vnfd:connection-point:
        -  vnfd:name: cp1
            vnfd:type: VPORT
        vnfd:description: A simple VNF descriptor w/ one VDU
        vnfd:id: d6c25720-895a-40a2-b303-b2a98d10674c
        vnfd:name: Ref_Vnf_21
        vnfd:short-name: Ref_Vnf_21
        vnfd:vdu:
        -  vnfd:external-interface:
            -  vnfd:name: eth0
                vnfd:virtual-interface:
                    vnfd:type: VIRTIO
                vnfd:vnfd-connection-point-ref: cp1
            vnfd:id: abd6831e-f811-4580-9aad-1de9c6424180
            vnfd:image: ref_vm21.qcow2
            vnfd:name: Ref_VM5
            vnfd:vm-flavor:
                vnfd:memory-mb: '1024'
                vnfd:storage-gb: '16'
                vnfd:vcpu-count: '1'
        vnfd:vendor: ETSI
        vnfd:version: '1.0'
</nowiki>


== OSM NS descriptor for NS#1 ==
== OSM NS descriptor for NS#1 ==
[[File:Ref_NS1.tar.gz]]
[https://osm.etsi.org/gitweb/?p=osm/descriptor-packages.git;a=blob;f=src/vnfd/ref1_ns/ref1_nsd.yaml;h=f308282b4f3fab25161e780c084efd82bc0f42d2;hb=HEAD NS1.yaml]
 
<nowiki>
nsd:nsd-catalog:
    nsd:nsd:
    -  nsd:constituent-vnfd:
        -  nsd:member-vnf-index: '1'
            nsd:start-by-default: 'true'
            nsd:vnfd-id-ref: d6c25720-895a-40a2-b303-b2a98d10674c
        -  nsd:member-vnf-index: '2'
            nsd:vnfd-id-ref: 287671e2-2858-48cf-a13c-b4cb1351aa9f
        nsd:description: Reference NS 1
        nsd:id: 9b684262-ded5-4d43-82d3-5e2bf69b7446
        nsd:name: Ref_NS_1
        nsd:vendor: ETSI
        nsd:vld:
        -  nsd:description: Mgmt VL
            nsd:id: 54c04
            nsd:name: VL1
            nsd:short-name: VL1
            nsd:type: ELAN
            nsd:vendor: ETSI
            nsd:vnfd-connection-point-ref:
            -  nsd:member-vnf-index-ref: '1'
                nsd:vnfd-connection-point-ref: mgmt
                nsd:vnfd-id-ref: d6c25720-895a-40a2-b303-b2a98d10674c
            -  nsd:member-vnf-index-ref: '2'
                nsd:vnfd-connection-point-ref: mgmt0
                nsd:vnfd-id-ref: 287671e2-2858-48cf-a13c-b4cb1351aa9f
</nowiki>


= Reference NS #2: Testing a middle point VNF =
= Reference NS #2: Testing a middle point VNF =
Line 179: Line 107:


=== OSM VNF descriptor for VNF#12 ===
=== OSM VNF descriptor for VNF#12 ===
[[File:Ref_VNF_12.tar.gz]]
[https://osm.etsi.org/gitweb/?p=osm/descriptor-packages.git;a=blob;f=src/vnfd/ref12_vnf/ref12_vnfd.yaml;h=f308282b4f3fab25161e780c084efd82bc0f42d2;hb=HEAD VNF12.yaml]
<nowiki>
vnfd:vnfd-catalog:
    vnfd:vnfd:
    -  vnfd:connection-point:
        -  vnfd:name: mgmt0
            vnfd:type: VPORT
        vnfd:description: A simple VNF descriptor w/ two VDU
        vnfd:id: abae3d33-36ec-4707-95aa-e48907bf2442
        vnfd:name: Ref_Vnf_12
        vnfd:short-name: Ref_Vnf_12
        vnfd:vdu:
        -  vnfd:description: Middlepoint
            vnfd:external-interface:
            -  vnfd:name: iface30
                vnfd:virtual-interface:
                    vnfd:type: OM-MGMT
                vnfd:vnfd-connection-point-ref: mgmt0
            vnfd:guest-epa:
                vnfd:cpu-pinning-policy: DEDICATED
            vnfd:id: abd6831e-f811-4580-9aad-1de9c6424180
            vnfd:image: ref_vm3.qcow2
            vnfd:internal-connection-point:
            -  vnfd:id: 5f813
                vnfd:name: icp0
                vnfd:type: VPORT
            vnfd:internal-interface:
            -  vnfd:name: iface31
                vnfd:vdu-internal-connection-point-ref: 5f813
                vnfd:virtual-interface:
                    vnfd:type: VIRTIO
            vnfd:name: Ref_VM3
            vnfd:vm-flavor:
                vnfd:memory-mb: '2048'
                vnfd:storage-gb: '8'
                vnfd:vcpu-count: '2'
        -  vnfd:external-interface:
            -  vnfd:name: iface42
                vnfd:virtual-interface:
                    vnfd:type: PCI-PASSTHROUGH
            -  vnfd:name: iface43
                vnfd:virtual-interface:
                    vnfd:type: SR-IOV
            vnfd:guest-epa:
                vnfd:cpu-pinning-policy: DEDICATED
            vnfd:id: e526e
            vnfd:internal-connection-point:
            -  vnfd:id: 9ec35
                vnfd:name: icp0
                vnfd:type: VPORT
            vnfd:internal-interface:
            -  vnfd:name: iface41
                vnfd:vdu-internal-connection-point-ref: 9ec35
                vnfd:virtual-interface:
                    vnfd:type: VIRTIO
        vnfd:vendor: ETSI
        vnfd:version: '1.0'
</nowiki>


== Reference VNF#22: Generator 2 ports ==
== Reference VNF#22: Generator 2 ports ==
Line 255: Line 126:


=== OSM VNF descriptor for VNF#22 ===
=== OSM VNF descriptor for VNF#22 ===
[[File:Ref_VNF_22.tar.gz]]
[https://osm.etsi.org/gitweb/?p=osm/descriptor-packages.git;a=blob;f=src/vnfd/ref22_vnf/ref22_vnfd.yaml;h=f308282b4f3fab25161e780c084efd82bc0f42d2;hb=HEAD VNF22.yaml]
<nowiki>
vnfd:vnfd-catalog:
    vnfd:vnfd:
    -  vnfd:connection-point:
        -  vnfd:name: cp1
            vnfd:type: VPORT
        vnfd:description: A simple VNF descriptor w/ one VDU
        vnfd:id: c993c90e-857f-499e-aad3-74f1667216d2
        vnfd:name: Ref_VNF_22
        vnfd:short-name: Ref_VNF_22
        vnfd:vdu:
        -  vnfd:external-interface:
            -  vnfd:name: eth0
                vnfd:virtual-interface:
                    vnfd:type: VIRTIO
                vnfd:vnfd-connection-point-ref: cp1
            -  vnfd:name: iface61
                vnfd:virtual-interface:
                    vnfd:type: PCI-PASSTHROUGH
            -  vnfd:name: iface62
                vnfd:virtual-interface:
                    vnfd:type: SR-IOV
            vnfd:id: abd6831e-f811-4580-9aad-1de9c6424180
            vnfd:image: ref_vm22.qcow2
            vnfd:name: Ref_VM6
            vnfd:vm-flavor:
                vnfd:memory-mb: '1024'
                vnfd:storage-gb: '16'
                vnfd:vcpu-count: '1'
        vnfd:vendor: ETSI
        vnfd:version: '1.0'
</nowiki>


== OSM NS descriptor for NS#2 ==
== OSM NS descriptor for NS#2 ==
[[File:Ref_NS_2.tar.gz]]
[https://osm.etsi.org/gitweb/?p=osm/descriptor-packages.git;a=blob;f=src/vnfd/ref2_ns/ref2_nsd.yaml;h=f308282b4f3fab25161e780c084efd82bc0f42d2;hb=HEAD NS2.yaml]
<nowiki>
nsd:nsd-catalog:
    nsd:nsd:
    -  nsd:constituent-vnfd:
        -  nsd:member-vnf-index: '1'
            nsd:vnfd-id-ref: abae3d33-36ec-4707-95aa-e48907bf2442
        -  nsd:member-vnf-index: '2'
            nsd:vnfd-id-ref: c993c90e-857f-499e-aad3-74f1667216d2
        nsd:description: Reference NS2
        nsd:id: cbd6d406-57ff-40ee-8155-8013a40f6bad
        nsd:name: Ref_NS_2
        nsd:vendor: ETSI
        nsd:vld:
        -  nsd:id: '97465'
            nsd:name: Mgmt
            nsd:vnfd-connection-point-ref:
            -  nsd:member-vnf-index-ref: '1'
                nsd:vnfd-connection-point-ref: mgmt0
                nsd:vnfd-id-ref: abae3d33-36ec-4707-95aa-e48907bf2442
            -  nsd:member-vnf-index-ref: '2'
                nsd:vnfd-connection-point-ref: mgmt
                nsd:vnfd-id-ref: c993c90e-857f-499e-aad3-74f1667216d2
        -  nsd:id: f66e6
            nsd:vnfd-connection-point-ref:
            -  nsd:member-vnf-index-ref: '1'
                nsd:vnfd-connection-point-ref: east
                nsd:vnfd-id-ref: abae3d33-36ec-4707-95aa-e48907bf2442
            -  nsd:member-vnf-index-ref: '2'
                nsd:vnfd-connection-point-ref: east
                nsd:vnfd-id-ref: c993c90e-857f-499e-aad3-74f1667216d2
</nowiki>

Latest revision as of 19:39, 8 March 2017

The following reference examples are provided to help VNF vendors to create their own descriptors (NSD, VNFD) usable in OSM. Please follow the below instruction to create descriptor packages

  • Clone the descriptor-packages repo:
git clone https://osm.etsi.org/gerrit/osm/descriptor-packages
  • Create a new VNF folder under src/vnfd and copy the VNF yaml descriptors in the new folder
  • Create a new NS folder under src/nsd and copy the NS yaml descriptors in the new folder
  • Build VNF and NS packages
make
  • Packages will be created under build/vnfd_pkgs and build/nsd_pkgs


Reference NS#1: Testing an endpoint VNF

The following network service captures a simple test setup where a VNF is tested with a traffic generator VNF (or a simple VNF/VM with a basic client application). For simplicity, this network service assumes that the VNF under test is the endpoint of a given service (e.g. DNS, AAA, etc.) and does not require special conditions or resource allocation besides the usual in a standard cloud environments.

Reference NS #1: Testing an endpoint VNF

In this example, unless otherwise specified in the description, the following defaults apply:

  • CPs are regular para-virtualized interfaces (VirtIO or equivalent).
  • VLs provide E-LAN connectivity via regular (overlay) networks provided by the VIM.
  • VLs provide IP addressing via DHCP if applicable.
  • Mapping between internal and external CPs may be either direct (as aliases) or via an intermediate VL.
  • VIM+NFVI can guarantee predictable ordering of guest interfaces' virtual PCI addresses.

In the case of REF_NS_1:

  • When deploying the NS, VL1 would be typically mapped to a pre-created VIM network intended to provide management IP address to VNFs via DHCP.
  • DHCP in VL2 may be optional.


Reference VNF#11: Endpoint VNF

Reference VNF#11: Endpoint

Description in common language

  • Name: Ref_VNF_11
    • Component: Ref_VM1
      • Memory: 2 GB
      • CPU: 2 vCPU
      • Storage: 8 GB
      • Image: ref_vm1.qcow2
    • Component: Ref_VM2
      • Memory: 4GB
      • CPU: 2 vCPU
      • Storage: 16GB
      • Image: ref_vm2.qcow2
    • Internal Virtual Link: VL12
      • No DHCP server is enabled.
      • Static addressing may be used at CP iface11 and CP iface21.

OSM VNF descriptor for VNF#11

VNF11.yaml

Reference VNF#21: Generator 1 port

Reference VNF#21: Generator 1 port

Description in common language

  • Name: Ref_VNF_21
    • Component: Ref_VM5
      • Memory: 1 GB
      • CPU: 1 vCPU
      • Storage: 16 GB
      • Image: ref_vm21.qcow2

OSM VNF descriptor for VNF#21

VNF21.yaml

OSM NS descriptor for NS#1

NS1.yaml

Reference NS #2: Testing a middle point VNF

Reference NS #2: Testing a middle point VNF

The following network service captures a more advanced test setup where the VNF under test is a middlepoint in the communication (e.g. router, EPC) and might require special conditions or resource allocation and connectivity foreseen in NFV ISG specs. In this case, the traffic generator VNF behaves as source and sink of traffic and might also require special resource allocation.

In this example, unless otherwise specified in the description, the following applies:

  • Same defaults as in NS#1
  • vCPUs must be pinned to dedicated physical CPUs, with no over subscription.
  • CPUs, memory and interfaces (if applicable) to be assigned to a given VM should belong to the same socket (NUMA awareness).
  • Memory assigned to VMs should be backed by host's huge pages memory.
  • VL2 and VL3 are E-Line underlay connectivity. No DHCP is required.





Reference VNF#12: Middle point VNF

Reference VNF#12: Middle point

Description in common language

  • Name: Ref_VNF_12
    • Component: Ref_VM3
      • Memory: 2 GB huge pages
      • CPU: 2 vCPU (= CPU)
      • Storage: 8 GB
      • Image: ref_vm3.qcow2
    • Component: Ref_VM4
      • Memory: 4GB
      • CPU: 2 vCPU
      • Storage: 16GB
      • Image: ref_vm4.qcow2
    • Connection Point: iface42 (west)
      • Type: Passthrough
    • Connection Point: iface43 (east)
      • Type: SR-IOV

OSM VNF descriptor for VNF#12

VNF12.yaml

Reference VNF#22: Generator 2 ports

Reference VNF#22: Generator 2 ports

Description in common language

  • Name: Ref_VNF_22
    • Component: Ref_VM6
      • Memory: 1 GB huge pages
      • CPU: 1 vCPU (= CPU)
      • Storage: 16 GB
      • Image: ref_vm22.qcow2
    • Connection Point: iface61 (west)
      • Type: Passthrough
    • Connection Point: iface62 (east)
      • Type: SR-IOV

OSM VNF descriptor for VNF#22

VNF22.yaml

OSM NS descriptor for NS#2

NS2.yaml