diff options
Diffstat (limited to 'net/nft-qos/files/nft-qos-dynamic.hotplug')
-rw-r--r-- | net/nft-qos/files/nft-qos-dynamic.hotplug | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/net/nft-qos/files/nft-qos-dynamic.hotplug b/net/nft-qos/files/nft-qos-dynamic.hotplug new file mode 100644 index 000000000..fb38b7ea9 --- /dev/null +++ b/net/nft-qos/files/nft-qos-dynamic.hotplug @@ -0,0 +1,40 @@ +#!/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 |