0

I'm trying to develop a QoS system which controls two IP's.

Using OpenWRT based router firmware, I have tried using TC and am having issues with incompatibility. Is there another package or set of packages which are available to achieve this?

Version: CHAOS CALMER (15.05, r46767)

I've tried following the results as shown in the follow wiki page. https://wiki.openwrt.org/doc/howto/packet.scheduler/packet.scheduler#examples

The example, shown in the article below uses "CLASSIFY" which is an invalid argument, due to the incompatibility of a package. https://wiki.openwrt.org/doc/howto/packet.scheduler/packet.scheduler.example3

boot results:

Failed to find ipt_TOS. Maybe it is a built in module ?
Failed to find ipt_tos. Maybe it is a built in module ?
Failed to find ipt_length. Maybe it is a built in module ?
module is already loaded - sch_hfsc
module is already loaded - sch_ingress
Bad argument `CLASSIFY'

Any help is very appreciated

Ballard
  • 869
  • 11
  • 25

1 Answers1

1
# Delete qdisc rule
tc qdisc del dev br-lan root

# Add qdisc rule
tc qdisc add dev br-lan root handle 1: htb default 10

# Setup parent class
tc class add dev br-lan parent 1: classid 1:1 htb rate 2000kbit ceil 2000kbit

# Add child classes of parent class 1:
#Wired
tc class add dev br-lan parent 1:1 classid 1:10 htb rate 2000kbit ceil 2000kbit
#Wired2
tc class add dev br-lan parent 1:1 classid 1:11 htb rate 1000kbit ceil 1000kbit
#Wireless1
tc class add dev br-lan parent 1:1 classid 1:12 htb rate 250kbit ceil 150kbit

# Create packet filter rule using parent 1: class, matching to IP (src = outbound traffic, dst = inbound traffic)
# and assigning child class rule via flowid

tc -s filter show dev br-lan

tc filter add dev br-lan parent 1: protocol ip prio 1 u32 match ip src 192.168.1.35 flowid 1:10
tc filter add dev br-lan parent 1: protocol ip prio 1 u32 match ip dst 192.168.1.35 flowid 1:10
tc filter add dev br-lan parent 1: protocol ip prio 1 u32 match ip src 192.168.1.67 flowid 1:11
tc filter add dev br-lan parent 1: protocol ip prio 1 u32 match ip dst 192.168.1.67 flowid 1:11
tc filter add dev br-lan parent 1: protocol ip prio 1 u32 match ip src 192.168.1.104 flowid 1:12
tc filter add dev br-lan parent 1: protocol ip prio 1 u32 match ip dst 192.168.1.104 flowid 1:12
tc filter add dev br-lan parent 1: protocol ip prio 1 u32 match ip dst 192.168.1.104 flowid 1:12

tc -s filter show dev br-lan
Ballard
  • 869
  • 11
  • 25
  • 1
    This did not initially work for me for Upload limiting. I had to add a extra qdisc rule for my wan interface `tc qdisc del dev eth1.2 root` (eth1.2 is my wan interface) and add a class and filter for that too, then defining the tc filter with the ip `tc filter add dev eth1.2 parent 2: protocol ip prio 1 u32 match ip dst 192.168.1.35 flowid 2:10` – ladrua Feb 05 '19 at 12:51