# Copyright 2021-2024 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 multi-tcont tests input configuration for Flex POD 1

---

multi_tcont_tests:
  tcont1:
    -
      onu: 'ALPHe3d1cea3'
      service_type: 'voip'
      us_bw_profile: 'TCONT_TYPE1_200Mbps_Fixed_ForVOIP'
  tcont1tcont4:
    -
      onu: 'ALPHe3d1cea3'
      service_type: 'hsia'
      us_bw_profile: 'TCONT_TYPE4_1Gbps_Peak_User1_HSI_Upstream'
    -
      onu: 'ALPHe3d1ceb7'
      service_type: 'hsia'
      us_bw_profile: 'TCONT_TYPE4_1Gbps_Peak_User1_HSI_Upstream'
  tcont2tcont4:
    -
      onu: 'ALPHe3d1cea3'
      service_type: 'vod'
      us_bw_profile: 'TCONT_TYPE2_500Mbps_Assured_ForVoD'
    -
      onu: 'ALPHe3d1cea3'
      service_type: 'hsia'
      us_bw_profile: 'TCONT_TYPE4_1Gbps_Peak_User1_HSI_Upstream'
  tcont2tcont3:
    -
      onu: 'ALPHe3d1cea3'
      service_type: 'vod'
      us_bw_profile: 'TCONT_TYPE2_500Mbps_Assured_ForVoD'
    -
      onu: 'ALPHe3d1ceb7'
      service_type: 'vod'
      us_bw_profile: 'TCONT_TYPE3_700Mbps_Peak_500Mbps_Assured_ForVoD'
  tcont4tcont5:
    -
      onu: 'ALPHe3d1cea3'
      service_type: 'hsia'
      us_bw_profile: 'TCONT_TYPE4_300Mbps_Peak_User1_HSI_Upstream'
    -
      onu: 'ALPHe3d1ceb7'
      service_type: 'hsia'
# yamllint disable
      us_bw_profile: 'TCONT_TYPE5_1Gbps_Peak_500Mbps_Assured_200Mbps_Fixed_User1_HSI_Upstream'
# yamllint enable

# Fixed Bandwidth Profile ONUs required to fill OLT PON Bandwidth
onus_fill_pon_bw:
  -
    serial: 'ALPHe3d1cfa7'
    olt: 'EC1838000853'
    service_type: 'voip'
    us_bw_profile: 'TCONT_TYPE1_Fixed8.7Gbps'
