[LARTC] HTB-link sharing (borrowing) doesn't work

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I want to set up typical scenario:
 entire bandwith  (128kbps from ISP) to devide to 2 parts:
 1\traffic from   special source IP address
 2\ rest
Each part should be capable of "borrowing" from the other in case of less
traffic on either side.


I set up according to the HTB manual using a u32 filter and all packets are
properly divided according to the filter to classes ("Sent" bytes in stats
increases).
But the "borrowing" doesn't work. I started 3 FTP sessions: 1 from the
special IP address, 2 from other places. The 128k bandwitdth is not
allocated in the right ratio according to HTB config but 1/2 as poor TCP
sessions.
If I set up rate=ceil (no borrowing) it works OK-every class has got the
right part of bandwidth.

It's Linux router, kernel 2.4.16, eth2 is  interface to internal firewall,

Can you tell me what's wrong?
Does anybody successfully use scenario with "borrowing" ? If yes, please,
send me a script or info?

Thanks


Lumir Unzeitig



HTB config
*******************
BURST=2
BAND=128   #kbps ISP bandwidth
BAND1=10   #kbps download from odysseus.fi.muni.cz
BAND2=$(($BAND-$BAND1))  #rest

    #Root handle qdisc
    #*****************
    tc qdisc add dev eth2 root handle 1: htb default 200

    #Root class for 128kbps
    #**********************
    tc class add dev eth2 parent 1: classid 1:1 htb \
                            rate ${BAND}kbit ceil ${BAND}kbit burst 2k


    #Subclass 1:100 download from odysseus.fi.muni.cz

#-------------------------------------------------------------------------
      #Subclass definition
      tc class add dev eth2 parent 1:1 classid 1:100 htb \
                      rate ${BAND1}kbit ceil ${BAND}kbit burst ${BURST}kbit
      #Filter
      tc filter add dev eth2 parent 1: protocol ip prio 1 u32 match ip src
      147.251.48.205/32 flowid 1:100

      #qdisc - SFQ
      tc qdisc add dev eth2 parent 1:100 handle 1000: sfq perturb 10


    #Subclass 1:200 - rest
    #--------------------------------
     #Subclass definition
     tc class add dev eth2 parent 1:1 classid 1:200 htb \
                     rate ${BAND2}kbit ceil ${BAND}kbit burst ${BURST}k

     #qdisc - SFQ
     tc qdisc add dev eth2 parent 1:200 handle 2000: sfq perturb 10
************************


HTB stats
*****************
---[ eth2: queueing disciplines ]-------------------------

qdisc sfq 2000: quantum 1514b limit 128p flows 128/1024 perturb 10sec
 Sent 7383739 bytes 8792 pkts (dropped 0, overlimits 0)

 qdisc sfq 1000: quantum 1514b limit 128p flows 128/1024 perturb 10sec
 Sent 3301615 bytes 2285 pkts (dropped 0, overlimits 0)

 qdisc htb 1: r2q 10 default 200 dcache 0
 deq_util 1/1000000 deq_rate 23 trials_per_deq 1
 dcache_hits 0 direct_packets 0
 Sent 10685354 bytes 11077 pkts (dropped 0, overlimits 0)

---[ eth2: configured classes ]---------------------------
class htb 1:1 root prio 0 rate 128Kbit ceil 128Kbit burst 2Kb/8 mpu 0b
cburst 1762b/8 mpu 0b quantum 1638 level 3
 Sent 10686868 bytes 11078 pkts (dropped 0, overlimits 0)
 rate 14044bps 10pps
 lended: 2017 borrowed: 0 giants: 0 injects: 0
 tokens: 26801 ctokens: 12550

class htb 1:100 parent 1:1 leaf 1000: prio 0 rate 10Kbit ceil 128Kbit burst
2Kb/8 mpu 0b cburst 1762b/8 mpu 0b quantum 128 level 0
 Sent 3301615 bytes 2285 pkts (dropped 0, overlimits 0)
 rate 4393bps 2pps
 lended: 500 borrowed: 1785 giants: 0 injects: 0
 tokens: -829440 ctokens: 12550

class htb 1:200 parent 1:1 leaf 2000: prio 0 rate 118Kbit ceil 128Kbit burst
2Kb/8 mpu 0b cburst 1762b/8 mpu 0b quantum 1510 level 0
 Sent 7385253 bytes 8793 pkts (dropped 0, overlimits 0)
 rate 9658bps 8pps
 lended: 8561 borrowed: 232 giants: 0 injects: 0
 tokens: 11514 ctokens: 12550


---[ eth2: filters for classes ]---------------------------

filter parent 1: protocol ip pref 1 u32
filter parent 1: protocol ip pref 1 u32 fh 800: ht divisor 1
filter parent 1: protocol ip pref 1 u32 fh 800::800 order 2048 key ht 800
bkt 0 flowid 1:100
  match 93fb30cd/ffffffff at 12

********************



[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux