##
# 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.3"
scenario:
  name:          complex4
  description:   Complex network scenario consisting of 2 VNFs interconnected by overlay networks and IP profiles in the networks
  public:        false
  vnfs:
    VNF1:                        # vnf name in the scenario
      vnf_name:  linux_2VMs_v02         # openmano vnf name
      internal_connections:
        datanet:
          ip-profile: Null
    VNF2:
      vnf_name:  linux_2VMs_v02
  networks:
    dataconn1:
      type: e-lan
      implementation: overlay
      ip-profile:
        ip-version:       IPv4
        subnet-address:   10.1.1.0/24
        gateway-address:  10.1.1.1
        dns-address:      8.8.8.8
        dhcp:
          enabled:       true
          start-address: 10.1.1.100
          count:         150
      interfaces:
      -   vnf:           VNF1
          vnf_interface: in
          ip_address:    10.1.1.2
      -   vnf:           VNF2
          vnf_interface: in
          ip_address:    10.1.1.3
    dataconn2:
      type: e-lan
      implementation: overlay
      ip-profile:
        ip-version:       IPv4
        subnet-address:   10.1.2.0/24
        gateway-address:  10.1.2.1
        dns-address:      8.8.8.8
        dhcp:
          enabled:       true
          start-address: 10.1.2.100
          count:         150
      interfaces:
      -   vnf:           VNF1
          vnf_interface: out
          ip_address:    10.1.2.2
      -   vnf:           VNF2
          vnf_interface: out
          ip_address:    10.1.2.3
    default:
      type: e-lan
      implementation: overlay
      ip-profile:
        ip-version:       IPv4
        subnet-address:   10.1.3.0/24
        gateway-address:  10.1.3.1
        dns-address:      8.8.8.8
        dhcp:
          enabled:       true
          start-address: 10.1.3.100
          count:         150
      interfaces:
      -   vnf:           VNF1
          vnf_interface: control0
          ip_address:    10.1.3.2
      -   vnf:           VNF1
          vnf_interface: control1
          ip_address:    10.1.3.3
      -   vnf:           VNF2
          vnf_interface: control0
          ip_address:    10.1.3.4
      -   vnf:           VNF2
          vnf_interface: control1
          ip_address:    10.1.3.5

