##
# 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
##
---
schema_version: "0.2"
vnf:
    name:        dataplaneVNF4
    description: "Example of a dataplane VNF consisting of two VMs for data plane workloads with one internal network. VMs use image name instead of the path"
    # class: parent      # Optional. Used to organize VNFs
    internal-connections:
    -   name:        datanet
        description: datanet
        type:        e-lan
        implementation: underlay
        ip-profile:
            ip-version:       IPv4
            subnet-address:   192.168.1.0/24
            gateway-address:  192.168.1.1
            dns-address:      8.8.8.8
            dhcp:
                enabled: true
                start-address: 192.168.1.100
                count: 100
        elements:
        -   VNFC:             VNF_2VMs-VM1
            local_iface_name: xe0
            ip_address:       192.168.1.2
        -   VNFC:             VNF_2VMs-VM2
            local_iface_name: xe0
            ip_address:       192.168.1.3
    external-connections:
    -   name:              control0
        type:              mgmt
        VNFC:              VNF_2VMs-VM1
        local_iface_name:  eth0
        description:       control interface VM1
    -   name:              control1
        type:              mgmt
        VNFC:              VNF_2VMs-VM2
        local_iface_name:  eth0
        description:       control interface VM2
    -   name:              in
        type:              data
        VNFC:              VNF_2VMs-VM1
        local_iface_name:  xe1
        description:       Dataplane interface input
    -   name:              out
        type:              data
        VNFC:              VNF_2VMs-VM2
        local_iface_name:  xe1
        description:       Dataplane interface output
    VNFC:
    -   name:        VNF_2VMs-VM1
        description: "Dataplane VM1 with 4 threads, 2 GB hugepages, 2 SR-IOV interface"
        image name: dataplaneVNF_2VMs-image
        disk: 10
        numas: 
        -   paired-threads: 2         # "cores", "paired-threads", "threads"
            memory: 2                 # GBytes
            interfaces:
            -   name:      xe0
                vpci:      "0000:00:11.0"
                dedicated: "no"         # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
                bandwidth: 1 Gbps
            -   name:      xe1
                vpci:      "0000:00:12.0"
                dedicated: "no"
                bandwidth: 1 Gbps
        bridge-ifaces:
        -   name:      eth0
            vpci:      "0000:00:09.0"
            bandwidth: 1 Mbps          # Optional, informative only

    -   name:        VNF_2VMs-VM2
        description: "Dataplane VM1 with 2 threads, 2 GB hugepages, 2 SR-IOV interface"
        image name: dataplaneVNF_2VMs-image
        disk: 10
        numas: 
        -   paired-threads: 1         # "cores", "paired-threads", "threads"
            memory: 2                 # GBytes
            interfaces:
            -   name:      xe0
                vpci:      "0000:00:11.0"
                dedicated: "no"         # "yes"(passthrough), "no"(sriov with vlan tags), "yes:sriov"(sriovi, but exclusive and without vlan tag)
                bandwidth: 1 Gbps
            -   name:      xe1
                vpci:      "0000:00:12.0"
                dedicated: "no"
                bandwidth: 1 Gbps
        bridge-ifaces:
        -   name:      eth0
            vpci:      "0000:00:09.0"
            bandwidth: 1 Mbps          # Optional, informative only

