#!/bin/sh /etc/rc.common
#
# Copyright (C) 2018 rosysong@rosinson.com
#

. "${IPKG_INSTROOT}/lib/nft-qos/core.sh"
. "${IPKG_INSTROOT}/lib/nft-qos/monitor.sh"
. "${IPKG_INSTROOT}/lib/nft-qos/dynamic.sh"
. "${IPKG_INSTROOT}/lib/nft-qos/static.sh"
. "${IPKG_INSTROOT}/lib/nft-qos/mac.sh"
. "${IPKG_INSTROOT}/lib/nft-qos/priority.sh"

START=99
USE_PROCD=1

service_triggers() {
	procd_add_reload_trigger nft-qos

	procd_open_validate
	qosdef_validate_dynamic
	qosdef_validate_static
	qosdef_validate_priority
	qosdef_validate_mac
	procd_close_validate
}

start_service() {
	config_load nft-qos

	qosdef_init_env
	qosdef_flush_mac
	qosdef_flush_static
	qosdef_flush_dynamic
	qosdef_remove_priority

	qosdef_init_header
	qosdef_init_monitor
	qosdef_validate_dynamic default qosdef_init_dynamic
	qosdef_validate_static default qosdef_init_static
	qosdef_validate_mac default qosdef_init_mac
	qosdef_validate_priority default qosdef_init_priority
	qosdef_init_done
	qosdef_start
}

stop_service() {
	qosdef_flush_dynamic
	qosdef_flush_static
	qosdef_flush_mac
	qosdef_remove_priority
	qosdef_clean_cache
}