##
# 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:        dataplaneVNF1
    description: "Example of a dataplane VNF consisting of a single VM for data plane workloads with high I/O performance requirements: 14 HW threads, 16 GB hugepages and 4 10G interfaces"
    external-connections:
    -   name:              mgmt
        type:              mgmt       # "mgmt"(autoconnect to management net)
        VNFC:              dataplaneVNF1-VM
        local_iface_name:  eth0
        description:       Management interface for general use
    -   name:              xe0
        type:              data
        VNFC:              dataplaneVNF1-VM
        local_iface_name:  xe0
        description:       Dataplane interface 1
    -   name:              xe1
        type:              data
        VNFC:              dataplaneVNF1-VM
        local_iface_name:  xe1
        description:       Dataplane interface 2
    -   name:              xe2
        type:              data
        VNFC:              dataplaneVNF1-VM
        local_iface_name:  xe2
        description:       Dataplane interface 3
    -   name:              xe3
        type:              data
        VNFC:              dataplaneVNF1-VM
        local_iface_name:  xe3
        description:       Dataplane interface 4
    VNFC:
    -   name:        dataplaneVNF1-VM
        description: "Dataplane VM with high I/O performance requirements: 14 HW threads, 16 GB hugepages and 4 10G interfaces"
        #Copy the image to a compute path and edit this path
        VNFC image:  /path/to/imagefolder/dataplaneVNF1.qcow2
        numas: 
        -   paired-threads: 7          # "cores", "paired-threads", "threads"
            paired-threads-id: [ [0,1], [2,3], [4,5], [6,7], [8,9], [10,11], [12, 13] ]
            memory: 16                 # 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: "yes"
                bandwidth: 10 Gbps
            -   name:      xe3
                vpci:      "0000:00:14.0"
                dedicated: "yes"
                bandwidth: 10 Gbps
        bridge-ifaces:
        -   name:      eth0
            vpci:      "0000:00:09.0"
            bandwidth: 1 Mbps          # Optional, informative only

