Add gluon-simple-tc package
This commit is contained in:
parent
c73d52d77f
commit
a5c042c294
36
package/gluon-simple-tc/Makefile
Normal file
36
package/gluon-simple-tc/Makefile
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=gluon-simple-tc
|
||||||
|
PKG_VERSION:=1
|
||||||
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
|
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
define Package/gluon-simple-tc
|
||||||
|
SECTION:=gluon
|
||||||
|
CATEGORY:=Gluon
|
||||||
|
TITLE:=Bandwidth limit support
|
||||||
|
DEPENDS:=+gluon-core +tc +kmod-sched
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/gluon-simple-tc/description
|
||||||
|
Gluon community wifi mesh firmware framework: tc support
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Prepare
|
||||||
|
mkdir -p $(PKG_BUILD_DIR)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Configure
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Compile
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/gluon-simple-tc/install
|
||||||
|
$(CP) ./files/* $(1)/
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,gluon-simple-tc))
|
7
package/gluon-simple-tc/files/etc/config/gluon-simple-tc
Normal file
7
package/gluon-simple-tc/files/etc/config/gluon-simple-tc
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Example config
|
||||||
|
|
||||||
|
config interface 'example'
|
||||||
|
option enabled '0'
|
||||||
|
option ifname 'eth0'
|
||||||
|
option limit_egress '1000' # 1000 Kbit/s
|
||||||
|
option limit_ingress '5000' # 5000 Kbit/s
|
@ -0,0 +1,30 @@
|
|||||||
|
[ "$ACTION" = 'add' ] || exit 0
|
||||||
|
|
||||||
|
config_load gluon-simple-tc
|
||||||
|
|
||||||
|
|
||||||
|
tc_interface() {
|
||||||
|
local iface="$1"
|
||||||
|
|
||||||
|
config_get ifname "$iface" ifname
|
||||||
|
|
||||||
|
[ "$INTERFACE" = "$ifname" ] || return
|
||||||
|
|
||||||
|
config_get_bool enabled "$iface" enabled 0
|
||||||
|
|
||||||
|
[ "$enabled" -eq 1 ] || return
|
||||||
|
|
||||||
|
config_get limit_egress "$iface" limit_egress
|
||||||
|
config_get limit_ingress "$iface" limit_ingress
|
||||||
|
|
||||||
|
if [ "$limit_egress" ]; then
|
||||||
|
tc qdisc add dev "$INTERFACE" root tbf rate "${limit_egress}kbit" latency 50ms burst 2k
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$limit_ingress" ]; then
|
||||||
|
tc qdisc add dev "$INTERFACE" handle ffff: ingress
|
||||||
|
tc filter add dev "$INTERFACE" parent ffff: u32 match u8 00 00 at 0 police rate "${limit_ingress}kbit" burst 10k drop flowid :1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
config_foreach tc_interface 'interface'
|
@ -0,0 +1 @@
|
|||||||
|
../modules.d/30-gluon-simple-tc
|
@ -0,0 +1,4 @@
|
|||||||
|
sch_ingress
|
||||||
|
sch_tbf
|
||||||
|
cls_u32
|
||||||
|
act_police
|
Loading…
Reference in New Issue
Block a user