---

  # Copyright 2020-2023 Open Networking Foundation (ONF) and the ONF Contributors
  #
  # 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: 'node-3.berlin-lab.lfbroadband.org'
      user: 'community'
      pass: 'admin'
    -
      ip: 'node-1.berlin-lab.lfbroadband.org'
      user: 'community'
      pass: 'admin'
    -
      ip: 'node-2.berlin-lab.lfbroadband.org'
      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:  radisys-olt.berlin-lab.lfbroadband.org
      sship:  radisys-olt.berlin-lab.lfbroadband.org
      user: root
      pass: onl
      fortygig: False
      aggPort: 1
      serial: 722033038194
      oltDebVersion: openolt_rlt-1600x-w-3.10.1-05bf9d424f4fae480cb0fe2c13ffbde5b6be27ee.deb
      board_technology: GPON

  # XGS-PON OLT
    -
      ip: zyxel-olt.berlin-lab.lfbroadband.org
      sship: zyxel-olt.berlin-lab.lfbroadband.org
      user: root
      pass: onl
      fortygig: False
      aggPort: 6
      serial: S210Z14009247
      oltDebVersion: openolt_sda3016ss-3.7.2-dev-xgspon-20220520.deb
      board_technology: XGS-PON

  hosts:
    src:
      #GPON ONU
      -
        ip: node-3.berlin-lab.lfbroadband.org
        user: community
        pass: admin
        dp_iface_name: eth1.7
        container_type: LXC
        container_name: SCOM00001C82
        onu: SCOM00001c82
        olt: 722033038194
        c_tag: 7
        s_tag: 31
        power_switch_port: 4
        uni_id: 1

      #XGSPON ONU
#      -
#        ip: node-3.berlin-lab.lfbroadband.org
#        user: community
#        pass: admin
#        dp_iface_name: eth1.7
#        container_type: LXC
#        container_name: ALPHE3D1CF5C
#        onu: ALPHe3d1cf5c
#        olt: S210Z14009247
#        c_tag: 7
#        s_tag: 12
#        power_switch_port: 7
#        uni_id: 1
      -
        ip: node-3.berlin-lab.lfbroadband.org
        user: community
        pass: admin
        dp_iface_name: eth1.7
        container_type: LXC
        container_name: ALPHE3A69D03
        onu: ALPHe3a69d03
        olt: S210Z14009247
        c_tag: 7
        s_tag: 11
        power_switch_port: 6
        uni_id: 1

    dst:
      -
        dp_iface_ip_qinq: 10.31.7.254
        ip: null
        user: null
        pass: null
        dp_iface_name: null
        dp_iface_ip: null
        dp_iface_gateway: null
        container_type: null
        container_name: null
#      -
#        dp_iface_ip_qinq: 10.12.7.254
#        ip: null
#        user: null
#        pass: null
#        dp_iface_name: null
#        dp_iface_ip: null
#        dp_iface_gateway: null
#        container_type: null
#        container_name: null
      -
        dp_iface_ip_qinq: 10.11.7.254
        ip: null
        user: null
        pass: null
        dp_iface_name: null
        dp_iface_ip: null
        dp_iface_gateway: null
        container_type: null
        container_name: null

  web_power_switch:
    ip: 'pdu01.berlin-lab.lfbroadband.org'
    user: 'admin'
    password: 'secret'
    type: 'EPC'
