---

  # Copyright 2020-present Open Networking Foundation
  #
  # 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.

  # Automated deployment configuration for Tucson pod

  # Change default values in tests
  ONOS_REST_PORT: 30120
  ONOS_SSH_PORT: 30115
  OLT_PORT: 9191
  KUBERNETES_CONF: $HOME/.kube/kind-config-voltha-minimal

# This tells the control node how to reach the Kubernetes nodes.
  nodes:
    -
      ip: '10.34.90.43'
      user: 'community'
      pass: 'admin'
    -
      ip: '10.34.90.41'
      user: 'community'
      pass: 'admin'
    -
      ip: '10.34.90.42'
      user: 'community'
      pass: 'admin'

  fabric_switches: []
  # The switch is shared across 2 PODs, thus is externally controlled
  #  -
  #    mac: '8c:ea:1b:a7:29:72'
  #    ip: 10.34.90.55
  #    user: root
  #    pass: onl
  #    bngPort: 157
  #    device_id: 'of:0000000000000001'

  olts:
  # Gpon OLT
    -
      ip:  10.34.90.50
      sship:  10.34.90.50
      user: root
      pass: onl
      fortygig: False
      aggPort: 2
      serial: EC1912001823
      oltDebVersion: openolt_asgvolt64-3.7.4-3b190f027136e845c5850a5b1a97897ce2b74ebf-100G-NNI.deb
      board_technology: GPON

  hosts:
 src:
    -
      ip: 10.34.90.43
      user: community
      pass: admin
      dp_iface_name: eth1.35
      container_type: LXC
      container_name: SCOM00001c82
      onu: SCOM00001c82
      olt: EC1912001823
      c_tag: 801
      s_tag: 111
      power_switch_port: 1
      onu_type: 'scom'
      service_type: 'hsia'
      uni_id: 1
    -
      ip: 10.34.90.43
      user: community
      pass: admin
      dp_iface_name: eth1.65
      container_type: LXC
      container_name: SCOM00001c82
      onu: SCOM00001c82
      olt: EC1912001823
      c_tag: 444
      s_tag: 333
      power_switch_port: 1
      onu_type: 'scom'
      service_type: 'voip'
      uni_id: 1
    -
      ip: 10.34.90.43
      user: community
      pass: admin
      dp_iface_name: eth1.55
      container_type: LXC
      container_name: SCOM00001c82
      onu: SCOM00001c82
      olt: EC1912001823
      c_tag: 55
      s_tag: 555
      power_switch_port: 1
      onu_type: 'scom'
      service_type: 'vod'
      uni_id: 1

    -
      ip: '10.34.90.43'
      user: 'community'
      pass: 'admin'
      dp_iface_name: 'eth1.55'
      container_type: LXC
      container_name: SCOM00001c82
      onu: 'SCOM00001c82'
      olt: 'EC1912001823'
      c_tag: '55'
      s_tag: '550'
      power_switch_port: 1
      onu_type: 'scom'
      mcast_rg: '10.11.6.3/24'
      mcast_grp_subnet_mask: '224.0.0.0/4'
      service_type: 'mcast'
      uni_id: '1'
  dst:
    -
    #HSI
      ip: null
      user: null
      pass: null
      dp_iface_name: ens1f0
      dp_iface_ip_qinq: '10.11.1.254'
      dp_iface_ip: null
      dp_iface_gateway: null
      container_type: null
      container_name: null
    -
    #VOIP
      ip: null
      user: null
      pass: null
      noroot_ip: '10.34.90.43'
      noroot_user: community
      noroot_pass: admin
      dp_iface_name: ens1f0
      dp_iface_ip_qinq: '10.11.4.254'
      dp_iface_ip: null
      dp_iface_gateway: null
      container_type: null
      container_name: null

    -
     #VOD
      ip: null
      user: null
      pass: null
      noroot_ip: '10.34.90.43'
      noroot_user: community
      noroot_pass: admin
      dp_iface_name: ens1f0
      dp_iface_ip_qinq: '10.11.5.254'
      dp_iface_ip: null
      dp_iface_gateway: null
      container_type: null
      container_name: null
    -
    #MCAST
      ip: null
      user: null
      pass: null
      bng_ip: '10.34.90.43'
      bng_user: community
      bng_pass: admin
      dp_iface_name: null
      dp_iface_ip_qinq: '225.22.0.2'
      dp_iface_ip: null
      dp_iface_gateway: null
      container_type: null
      container_name: null

  web_power_switch:
    ip: '10.34.90.48'
    user: 'admin'
    password: 'secret'
    type: 'EPC'
