#!/bin/bash

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

# ------------------------------------------------
# Defines profiles for different ONF projects
# ------------------------------------------------

# Base commands that are always useful.
ONOS_PROFILE=(
    "feature:repo-list"
    "feature:list"
    "bundle:list"
    "scr-list"

    "summary"
    "nodes"
    "apps@-s"
    "netcfg"
    "cfg@get"

    "devices"
    "device-drivers"
    "links"
    "hosts"
    "interfaces"

    "ports"
    "portstats@-nz"
    "edge-ports"

    "packet-processors"
    "packet-requests"

    "intents"
    "flows"
    "groups"
    "meters"

    "roles"
    "masters"

    "maps"

    "obj-next-ids"
    "obj-pending-nexts"
    "obj-queues"
)

# Trellis related commands. Includes also the base commands.
TRELLIS_PROFILE=(
    "${ONOS_PROFILE[@]}"

    "fpm-connections"
    "routes"
    "sr-device-subnets"
    "sr-ecmp-spg"
    "sr-should-program"
    "sr-link-state"
    "sr-mcast-tree"
    "sr-mcast-leader"
    "sr-mcast-role"
    "sr-pw-list"
    "sr-next-mcast"
    "sr-filt-mcast"
    "sr-next-dst"
    "sr-next-port"
    "sr-next-vlan"
    "sr-next-pw"
    "sr-next-xconnect"
    "sr-next-mac-vlan"
    "dhcp-relay"

    "mcast-host-routes"
    "mcast-host-show"
)

# T3 offline related commands.
T3_OFFLINE_PROFILE=(
    "netcfg@-j"
    "devices@-j"
    "device-drivers@-j"
    "links@-j"
    "hosts@-j"
    "ports@-j"
    "edge-ports@-j"
    "flows@-j"
    "groups@-j"
    "masters@-j"
    "routes@-j"
    "mcast-host-show@-j"
)

# VOLTHA related commands. Includes also the base commands.
VOLTHA_PROFILE=(
    "${ONOS_PROFILE[@]}"

    "aaa-users"

    "dhcpl2relay-allocations"

    "volt-programmed-subscribers"
    "volt-programmed-meters"
    "volt-bpmeter-mappings"
    "volt-olts"

    "sr-device-subnets"
    "sr-ecmp-spg"
    "sr-should-program"
    "sr-link-state"
    "sr-xconnect"
    "sr-mcast-tree"
    "sr-mcast-leader"
    "sr-mcast-role"
    "sr-next-mcast"
    "sr-filt-mcast"
    "sr-next-dst"
    "sr-next-port"
    "sr-next-vlan"
    "sr-next-xconnect"
    "sr-next-mac-vlan"

    "mcast-host-routes"
    "mcast-host-show"

)

# SEBA related commands. Includes also the base commands.
SEBA_PROFILE=(
    "${VOLTHA_PROFILE[@]}"
)