---
# Copyright 2018-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.

tosca_definitions_version: tosca_simple_yaml_1_0
imports:
  - custom_types/oltdevice.yaml
  - custom_types/onudevice.yaml
  - custom_types/ponport.yaml
  - custom_types/voltservice.yaml
description: Create a simulated OLT Device in VOLTHA
topology_template:
  node_templates:

    service#volt:
      type: tosca.nodes.VOLTService
      properties:
        name: volt
        must-exist: true

{{- range $i, $junk := until (.Values.numOlts|int) }}

    olt{{ $i }}_device:
      type: tosca.nodes.OLTDevice
      properties:
        name: PONSIM OLT {{ $i }}
        device_type: ponsim_olt
        host: olt{{ $i }}.voltha.svc
        port: 50060
        switch_datapath_id: of:0000000000000001
        switch_port: "{{ add 2 $i }}"
        outer_tpid: "0x8100"
{{- if $.Values.legacyPonsim }}
        dp_id: of:0000aabbccddeeff
{{- else }}
        dp_id: {{ index $.Values.oltDpids $i }}
{{- end }}
        uplink: "2"
      requirements:
        - volt_service:
            node: service#volt
            relationship: tosca.relationships.BelongsToOne

    olt{{ $i }}_pon_port:
      type: tosca.nodes.PONPort
      properties:
        name: olt{{ $i }}pon0
        port_no: 1
      requirements:
        - olt_device:
            node: olt{{ $i }}_device
            relationship: tosca.relationships.BelongsToOne
{{- end }}