##
# Copyright 2015 Telefónica Investigación y Desarrollo, S.A.U.
# This file is part of openmano
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# For those usages not covered by the Apache License, Version 2.0 please
# contact with: nfvlabs@tid.es
##
---
vnf:
    name:        dataplaneVNF2
    description: "Example of a dataplane VNF consisting of a single VM for data plane workloads with high I/O performance requirements: 3 cores, 8 GB hugepages, 2 10G interfaces and 1 SR-IOV interface"
    external-connections:
    -   name:              mgmt
        type:              mgmt       # "mgmt"(autoconnect to management net)
        VNFC:              dataplaneVNF2-VM
        local_iface_name:  eth0
        description:       Management interface for general use
    -   name:              control
        type:              bridge
        VNFC:              dataplaneVNF2-VM
        local_iface_name:  eth1
        description:       Bridge interface
    -   name:              xe0
        type:              data
        VNFC:              dataplaneVNF2-VM
        local_iface_name:  xe0
        description:       Dataplane interface 1
    -   name:              xe1
        type:              data
        VNFC:              dataplaneVNF2-VM
        local_iface_name:  xe1
        description:       Dataplane interface 2
    -   name:              xe2
        type:              data
        VNFC:              dataplaneVNF2-VM
        local_iface_name:  xe2
        description:       Dataplane interface 3 (SR-IOV)
    VNFC:
    -   name:        dataplaneVNF2-VM
        description: "Dataplane VM with high I/O performance requirements: 3 cores (no hyperthreading), 8 GB hugepages, 2 10G interfaces and 1 SR-IOV interface"
        #Copy the image to a compute path and edit this path
        VNFC image:  /path/to/imagefolder/dataplaneVNF2.qcow2
        numas: 
        -   cores: 3          # "cores", "paired-threads", "threads"
            memory: 8                 # GBytes
            interfaces:
            -   name:      xe0
                vpci:      "0000:00:11.0"
                dedicated: "yes"         # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
                bandwidth: 10 Gbps
            -   name:      xe1
                vpci:      "0000:00:12.0"
                dedicated: "yes"
                bandwidth: 10 Gbps
            -   name:      xe2
                vpci:      "0000:00:13.0"
                dedicated: "no"
                bandwidth: 1 Gbps
        bridge-ifaces:
        -   name:      eth0
            vpci:      "0000:00:09.0"
            bandwidth: 1 Mbps          # Optional, informative only
        -   name:      eth1
            vpci:      "0000:00:10.0"
            bandwidth: 1 Mbps          # Optional, informative only

