#!/bin/sh
|
|
#
|
|
# Copyright 2018 rosysong@rosinson.com
|
|
#
|
|
|
|
. /lib/functions.sh
|
|
. /lib/nft-qos/core.sh
|
|
. /lib/nft-qos/dynamic.sh
|
|
|
|
NFT_QOS_DYNAMIC_ON=
|
|
|
|
qosdef_validate_section_dynamic() {
|
|
local limit_enable limit_type
|
|
|
|
uci_validate_section nft-qos default default \
|
|
'limit_enable:bool:0' \
|
|
'limit_type:maxlength(8)'
|
|
|
|
[ $limit_enable -eq 1 -a \
|
|
"$limit_type" = "dynamic" ] && \
|
|
NFT_QOS_DYNAMIC_ON="y"
|
|
}
|
|
|
|
|
|
logger -t nft-qos-dynamic "ACTION=$ACTION, MACADDR=$MACADDR, IPADDR=$IPADDR, HOSTNAME=$HOSTNAME"
|
|
|
|
case "$ACTION" in
|
|
add | update | remove)
|
|
qosdef_validate_section_dynamic
|
|
[ -z "$NFT_QOS_DYNAMIC_ON" ] && return
|
|
|
|
qosdef_init_env
|
|
qosdef_flush_dynamic
|
|
|
|
qosdef_init_header
|
|
qosdef_init_dynamic
|
|
qosdef_init_done
|
|
qosdef_start
|
|
;;
|
|
esac
|