---

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

# 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