nft-qos: support mac address based speed limit 13097/head
authorTong Zhang <ztong0001@gmail.com>
Fri, 14 Aug 2020 11:21:33 +0000 (07:21 -0400)
committerTong Zhang <ztong0001@gmail.com>
Wed, 19 Aug 2020 13:39:57 +0000 (09:39 -0400)
commit0483b8dc88fbcf900cc60b0d00116ebe2a495a3c
tree608b05fb679242e99d42426fe10e63ee2cc42cfd
parent9c1670ed61675aa5181121af280c3715502ae16c
nft-qos: support mac address based speed limit

This patch makes it possible to configure and limit per-client internet
speed based on MAC address and it can work with SQM.
This feature is what OpenWRT currently lacks. This patch is largely based
on static.sh and the configuration file is similar to original nft-qos.

New configuration options and examples are listed below

config default 'default'
    option limit_mac_enable '1'
config client
option drunit 'kbytes'
option urunit 'kbytes'
option hostname 'tv-box'
option macaddr 'AB:CD:EF:01:23:45'
option drate '1000'
option urate '50'
config client
option drunit 'kbytes'
option urunit 'kbytes'
option hostname 'my-pc'
option macaddr 'AB:CD:EF:01:23:46'
option drate '3000'
option urate '2000'

limit_mac_enable - enable rate limit based on MAC address
drunit - download rate unit
urunit - upload rate unit
macaddr - client MAC address
drate - download rate
urate - upload rate

Signed-off-by: Tong Zhang <ztong0001@gmail.com>
net/nft-qos/Makefile
net/nft-qos/files/lib/core.sh
net/nft-qos/files/lib/mac.sh [new file with mode: 0644]
net/nft-qos/files/nft-qos.config
net/nft-qos/files/nft-qos.init