Search code examples
bashiprouteropenwrtqos

QoS in OpenWRT dependant on two IP's


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


Solution

  • # 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