[Bloat] About Setting Bandwidth limit with or without ethernet overhead?

Sebastian Moeller moeller0 at gmx.de
Thu Nov 8 11:57:18 EST 2018


Hi Y,


> On Nov 7, 2018, at 18:17, Y <intruder_tkyf at yahoo.fr> wrote:
> 
> Dear Moe
> 
> I have never touch this defaults.sh

	Oops, my bad. What I really wanted to see is the full contents of the file you use to configure your sqm instances. If you never edit defaults.sh t"han there are not the droids I am looking for".

But the tc output below seems okay to me. So do you observe any peculiarities otherwise just use that configuration ;)

Best Regards 


> 
> sqm-scripts/src/defaults.sh
> 
> # You need to jiggle these parameters. Note limits are tuned towards a
> <10Mbit uplink <60Mbup down
> 
> [ -z "$SCRIPT" ] && SCRIPT=
> [ -z "$UPLINK" ] && UPLINK=2302
> [ -z "$DOWNLINK" ] && DOWNLINK=14698
> [ -z "$IFACE" ] && IFACE=eth0
> [ -z "$QDISC" ] && QDISC=fq_codel
> [ -z "$LLAM" ] && LLAM="default"
> [ -z "$LINKLAYER" ] && LINKLAYER="none"
> [ -z "$OVERHEAD" ] && OVERHEAD=0
> [ -z "$STAB_MTU" ] && STAB_MTU=2047
> [ -z "$STAB_MPU" ] && STAB_MPU=0
> [ -z "$STAB_TSIZE" ] && STAB_TSIZE=512
> [ -z "$AUTOFLOW" ] && AUTOFLOW=0
> [ -z "$LIMIT" ] && LIMIT=1001	# sane global default for *LIMIT
> for fq_codel on a small memory device [ -z "$ILIMIT" ] && ILIMIT=
> [ -z "$ELIMIT" ] && ELIMIT=
> [ -z "$ITARGET" ] && ITARGET=
> [ -z "$ETARGET" ] && ETARGET=
> [ -z "$IECN" ] && IECN="ECN"
> [ -z "$EECN" ] && EECN="ECN"
> # These two used to be called something else; preserve backwards
> compatibility [ -z "$ZERO_DSCP_INGRESS" ] &&
> ZERO_DSCP_INGRESS="${ZERO_DSCP:-${SQUASH_DSCP:-1}}" [ -z
> "$IGNORE_DSCP_INGRESS" ] &&
> IGNORE_DSCP_INGRESS="${IGNORE_DSCP:-${SQUASH_INGRESS:-1}}"
> 
> [ -z "$IQDISC_OPTS" ] && IQDISC_OPTS=""
> [ -z "$EQDISC_OPTS" ] && EQDISC_OPTS=""
> [ -z "$TC" ] && TC=tc_wrapper
> [ -z "$TC_BINARY" ] && TC_BINARY=$(which tc)
> [ -z "$IP" ] && IP=ip_wrapper
> [ -z "$IP_BINARY" ] && IP_BINARY=$(which ip)
> # Try modprobe first, fall back to insmod
> [ -z "$INSMOD" ] && INSMOD=$(which modprobe) || INSMOD=$(which insmod)
> [ -z "$TARGET" ] && TARGET="5ms"
> [ -z "$IPT_MASK" ] && IPT_MASK="0xff" # to disable: set mask to
> 0xffffffff #sm: we need the functions above before trying to set the
> ingress IFB device #sm: *_CAKE_OPTS should contain the diffserv keyword
> for cake [ -z "$INGRESS_CAKE_OPTS" ] && INGRESS_CAKE_OPTS="diffserv3"
> [ -z "$EGRESS_CAKE_OPTS" ] && EGRESS_CAKE_OPTS="diffserv3"
> 
> # HTB without a sufficiently large burst/cburst value is a bit CPU
> hungry # so allow to specify the permitted burst in the time domain
> (microseconds) # so the user has a feeling for the associated worst
> case latency cost # set to zero to use htb default butst of one MTU
> [ -z "$SHAPER_BURST_DUR_US" ] && SHAPER_BURST_DUR_US=1000
> [ -z "$ISHAPER_BURST_DUR_US" ] &&
> ISHAPER_BURST_DUR_US=$SHAPER_BURST_DUR_US [ -z "$ESHAPER_BURST_DUR_US"
> ] && ESHAPER_BURST_DUR_US=$SHAPER_BURST_DUR_US
> 
> # use the same logic for the calculation of htb's quantum
> # quantum controlls how many bytes htb tries to deque from the current
> tier # before switching tiers.
> [ -z "$SHAPER_QUANTUM_DUR_US" ] &&
> SHAPER_QUANTUM_DUR_US=$SHAPER_BURST_DUR_US [ -z
> "$ISHAPER_QUANTUM_DUR_US" ] &&
> ISHAPER_QUANTUM_DUR_US=$SHAPER_QUANTUM_DUR_US [ -z
> "$ESHAPER_QUANTUM_DUR_US" ] &&
> ESHAPER_QUANTUM_DUR_US=$SHAPER_QUANTUM_DUR_US
> 
> 
> # Logging verbosity
> VERBOSITY_SILENT=0
> VERBOSITY_ERROR=1
> VERBOSITY_WARNING=2
> VERBOSITY_INFO=5
> VERBOSITY_DEBUG=8
> VERBOSITY_TRACE=10
> [ -z "$SQM_VERBOSITY_MAX" ] && SQM_VERBOSITY_MAX=$VERBOSITY_INFO
> # For silencing only errors
> [ -z "$SQM_VERBOSITY_MIN" ] && SQM_VERBOSITY_MIN=$VERBOSITY_SILENT
> 
> [ -z "$SQM_DEBUG" ] && SQM_DEBUG=0
> if [ "$SQM_DEBUG" -eq "1" ]
> then
>    SQM_DEBUG_LOG=${SQM_STATE_DIR}/${IFACE}.debug.log
>    OUTPUT_TARGET=${SQM_DEBUG_LOG}
> else
>    OUTPUT_TARGET="/dev/null"
> fi
> 
> # These are the modules that do_modules() will attempt to load
> ALL_MODULES="act_ipt sch_$QDISC sch_ingress act_mirred cls_fw cls_flow
> cls_u32 sch_htb sch_hfsc"
> 
> tc -s qdisc
> qdisc noqueue 0: dev lo root refcnt 2 
> Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> backlog 0b 0p requeues 0
> qdisc htb 1: dev eth0 root refcnt 2 r2q 10 default 18
> direct_packets_stat 0 direct_qlen 3 Sent 2448706 bytes 1851 pkt
> (dropped 319, overlimits 4375 requeues 0) backlog 6413b 4p requeues 0
> qdisc fq_codel 120: dev eth0 parent 1:12 limit 1001p flows 1024 quantum
> 300 target 17.2ms interval 112.2ms memory_limit 32Mb Sent 2437470 bytes
> 1844 pkt (dropped 319, overlimits 0 requeues 0) backlog 6413b 4p
> requeues 0 maxpacket 1643 drop_overlimit 0 new_flow_count 861 ecn_mark
> 0 memory_used 8960 new_flows_len 0 old_flows_len 7
> qdisc fq_codel 130: dev eth0 parent 1:13 limit 1001p flows 1024 quantum
> 300 target 17.2ms interval 112.2ms memory_limit 32Mb Sent 0 bytes 0 pkt
> (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0
>  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
>  new_flows_len 0 old_flows_len 0
> qdisc fq_codel 110: dev eth0 parent 1:11 limit 1001p flows 1024 quantum
> 300 target 17.2ms interval 112.2ms memory_limit 32Mb Sent 0 bytes 0 pkt
> (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0
>  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
>  new_flows_len 0 old_flows_len 0
> qdisc ingress ffff: dev eth0 parent ffff:fff1 ---------------- 
> Sent 117856 bytes 1631 pkt (dropped 0, overlimits 0 requeues 0) 
> backlog 0b 0p requeues 0
> qdisc htb 1: dev ifb4eth0 root refcnt 2 r2q 10 default 16
> direct_packets_stat 0 direct_qlen 32 Sent 206912 bytes 1631 pkt
> (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0
> qdisc fq_codel 110: dev ifb4eth0 parent 1:10 limit 1001p flows 1024
> quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn Sent
> 206912 bytes 1631 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b
> 0p requeues 0 maxpacket 1643 drop_overlimit 0 new_flow_count 1428
> ecn_mark 0 new_flows_len 1 old_flows_len 6
> 
> qdisc noqueue 0: dev lo root refcnt 2 
> qdisc htb 1: dev eth0 root refcnt 2 r2q 10 default 18
> direct_packets_stat 0 ver 3.17 direct_qlen 3 linklayer atm overhead -4
> mtu 2047 tsize 512 qdisc fq_codel 120: dev eth0 parent 1:12 limit 1001p
> flows 1024 quantum 300 target 17.2ms interval 112.2ms memory_limit 32Mb
> qdisc fq_codel 130: dev eth0 parent 1:13 limit 1001p flows 1024 quantum
> 300 target 17.2ms interval 112.2ms memory_limit 32Mb qdisc fq_codel
> 110: dev eth0 parent 1:11 limit 1001p flows 1024 quantum 300 target
> 17.2ms interval 112.2ms memory_limit 32Mb qdisc ingress ffff: dev eth0
> parent ffff:fff1 ---------------- qdisc htb 1: dev ifb4eth0 root refcnt
> 2 r2q 10 default 16 direct_packets_stat 0 ver 3.17 direct_qlen 32
> linklayer atm overhead -4 mtu 2047 tsize 512 qdisc fq_codel 110: dev
> ifb4eth0 parent 1:10 limit 1001p flows 1024 quantum 1514 target 5.0ms
> interval 100.0ms memory_limit 32Mb ecn 
> 
> 
> 
> On Wed, 07 Nov 2018 16:35:16 -0800
> Sebastian Moeller <moeller0 at gmx.de> wrote:
> 
>> Dear Y.
>> 
>> Okay could you please post the full defaults.sh then as I assume this
>> to configure sqm. Also the output of
>> tc -s qdisc
>> tc -d qdisc
>> Would be interesting.
>> 
>> Best Regards
>> 
>> 
>> On November 7, 2018 4:06:52 PM PST, Y <intruder_tkyf at yahoo.fr> wrote:
>>> moeee :)
>>> 
>>> I don't use openwrt.
>>> Maybe, so I cannot find /etc/config/sqm on my pc. 
>>> But I use sqmscript with below setting.
>>> 
>>> UPLINK=815 # 98% of linkspeed
>>> DOWNLINK=11603 # 98% of linkspeed
>>> SCRIPT=simple.qos
>>> LINKLAYER=atm
>>> OVERHEAD=-4
>>> EECN=NOECN
>>> 
>>> Thanks.
>>> Yutaka.
>>> 
>>> 
>>> On Wed, 7 Nov 2018 15:21:24 -0800
>>> Sebastian Moeller <moeller0 at gmx.de> wrote:
>>> 
>>>> Hi Y,
>>>> 
>>>> when you shape for an ATM link you absolutely nned to set the
>>>> linklayer to ATM. If you use openwrt why don't you post the
>>>> contents of "cat /etc/config/sqm"
>>>> here and we can go over it line by line?
>>>> 
>>>> Best Regards
>>>> 	Sebastian
>>>> 
>>>>> On Nov 7, 2018, at 14:13, Y <intruder_tkyf at yahoo.fr> wrote:
>>>>> 
>>>>> I am sorry. Dave.
>>>>> 
>>>>> My actual speed with this setting , almost expected .
>>>>> Around 90kbytes per second actual speed = 810kbit per second
>>>>> actual setting speed * 48/53 considering atm connection. 
>>>>> This settled speed doesn't include ethernet framing.
>>>>> 
>>>>> Maybe , 
>>>>> Bandwidth = without ethernet overhead
>>>>> tc-stab overhead = -14 
>>>>> is correct.
>>>>> 
>>>>> Thank you .
>>>>> 
>>>>> On Thu, 8 Nov 2018 06:48:30 +0900
>>>>> Y <intruder_tkyf at yahoo.fr> wrote:
>>>>> 
>>>>>> Hi , Dave
>>>>>> Thank you for your reply.
>>>>>> 
>>>>>> I should show you tc-stab setting.
>>>>>> 
>>>>>> My connection is PPPoA via ethernet. PC connects ethernet  
>>> directly.  
>>>>>> 
>>>>>> ####stab linklayer atm overhead -4
>>>>>> 
>>>>>> I add PPPoA overhead 10 + Ethernet overhead -14 = -4
>>>>>> But, settled Bandwith is 98% of link speed ( I mean this is
>>>>>> settled bandwidth without ethernet overhead).
>>>>>> 
>>>>>> I should shape more?
>>>>>> 
>>>>>> Thanks.
>>>>>> 
>>>>>> On Wed, 07 Nov 2018 11:28:47 -0800
>>>>>> Dave Taht <dave at taht.net> wrote:
>>>>>> 
>>>>>>> Y <intruder_tkyf at yahoo.fr> writes:
>>>>>>> 
>>>>>>>> Hi, I am Yutaka.
>>>>>>>> 
>>>>>>>> I connect internet via ethenet.	
>>>>>>>> Shoud I set Bandwidth limit with or without ethernet overhead
>>>>>>>> in any qdiscs?
>>>>>>>> When I measured , It seems setting without ethernet overhead
>>>>>>>> is correct.        
>>>>>>> 
>>>>>>> It depends on your next hop's framing. If you are on ethernet
>>>>>>> going to ethernet, then you should set ethernet. If you are on
>>>>>>> ethernet, going through a cablemodem, set docsis. If you are on
>>>>>>> ethernet, going through dsl or something else, you set the  
>>> framing  
>>>>>>> appropriately.
>>>>>>> 
>>>>>>> Without setting the framing appropriately you can run into
>>>>>>> situations where your shaper can be 60% in accurate (dsl).
>>>>>>> 
>>>>>>>> 
>>>>>>>> Thanks.
>>>>>>>> _______________________________________________
>>>>>>>> Bloat mailing list
>>>>>>>> Bloat at lists.bufferbloat.net
>>>>>>>> https://lists.bufferbloat.net/listinfo/bloat        
>>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> Bloat mailing list
>>>>> Bloat at lists.bufferbloat.net
>>>>> https://lists.bufferbloat.net/listinfo/bloat    



More information about the Bloat mailing list