##
# 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
##
---
name:            complex2
description:     Complex network scenario consisting of 2 VNFs interconnected
topology: 
  nodes: 
    VNF2vms:                        # vnf/net name in the scenario
      type:      VNF                # VNF, network, external_network (if it is a datacenter network)
      VNF model: dataplaneVNF_2VMs  # VNF name as introduced in OPENMANO DB
    VNF3:
      type:      VNF
      VNF model: dataplaneVNF3
    default: 
      type:      external_network # Datacenter net
      model:     default
  connections: 
    dataconn1:
      nodes: 
      -   VNF2vms: in
      -   VNF3:    data0
    dataconn2:
      nodes: 
      -   VNF2vms: out
      -   VNF3:    data1
    mngmt-net:
      nodes: 
      -   default: null
      -   VNF2vms: control0
      -   VNF2vms: control1
      -   VNF3:    mgmt

