aboutsummaryrefslogtreecommitdiff
path: root/net/nft-qos/files/nft-qos-dynamic.hotplug
diff options
context:
space:
mode:
Diffstat (limited to 'net/nft-qos/files/nft-qos-dynamic.hotplug')
-rw-r--r--net/nft-qos/files/nft-qos-dynamic.hotplug40
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