---

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

# override ONOS config
onos-classic:
  apps:
    - org.onosproject.lldpprovider
    - org.onosproject.openflow-base
    - org.onosproject.gui2
    - org.onosproject.drivers
    - org.onosproject.mcast
    - org.onosproject.segmentrouting
    - org.opencord.kafka
    - org.opencord.sadis
    - org.opencord.maclearner
    - org.opencord.igmpproxy
    - org.opencord.mcast
    - org.opencord.olt
    - org.opencord.aaa
  config:
    componentConfig:
      "org.opencord.olt.impl.OltFlowService": >
        {
          "enableDhcpOnNni": "true",
          "defaultTechProfileId": "64",
          "enableIgmpOnNni": "false",
          "enableEapol": "false",
          "enableDhcpV6": "false",
          "enableDhcpV4": "true"
        }
      "org.opencord.maclearner.app.impl.MacLearnerManager": >
        {
          "enableDhcpForward": "true"
        }

# override BBSim config
# The service names used in this file are mandatory
# for FTTB to work correctly.
# DPU_MGMT_TRAFFIC is used in bbsim to detect when the sTag
# must be used for DHCP packets instead of the cTag, and the
# Olt app has custom behavior that is triggered by each of
# these names.
servicesConfig:
  workflow: dt-fttb
  services:
    - name: FTTB_SUBSCRIBER_TRAFFIC
      c_tag: 101
      c_tag_allocation: unique
      s_tag: 3101
      s_tag_allocation: unique
      tp_id: 64
    - name: DPU_ANCP_TRAFFIC
      c_tag: 4
      c_tag_allocation: shared
      s_tag: 40
      s_tag_allocation: shared
      us_pon_s_tag_priority: 7
      tp_id: 64
    - name: DPU_MGMT_TRAFFIC
      c_tag: 6
      c_tag_allocation: shared
      s_tag: 60
      s_tag_allocation: shared
      us_pon_c_tag_priority: 3
      us_pon_s_tag_priority: 7
      tp_id: 64
      enable_mac_learning: true
      needs_dhcp: true


# override Bandwidth Profile format in Sadis BBSim
bp_format: ietf
nni_dhcp_trap_vid: 60