Hi Richard,

> For these tests I had the inbound and outbound limits set to 975000 kbps.  
> 975000 was somewhat arbitrary.  I wanted it below 1Gbps enough that I could 
> be sure it was the router as the limit but yet fast enough that I would be 
> able to see the peak transfer rates.

All of the following might be old news to you, but please let me elaborate for 
others on this list (well, most folks here know way more about these things 
than I do). 
        I believe Gbit ethernet is trickier than one would guess, the 1 Gbit 
rate contains some overhead that one typically does not account for. Here is 
the equivalent on-the-wire size of a full MTU non-jumbo ethernet frame:
Layer “1+": 1500 (payload pMTU) + 6 (dest MAC) + 6 (src MAC) + 2 (ethertype) + 
4 (FCS) + 7 (preamble) + 1 (start of frame delimiter) + 12 (interframe gap)) = 
1500+6+6+2+4+7+1+12 = 1538
”Equivalent” in that the interframe gap is not really used, but filled with 
silence but it has the duration one would need for 12 bytes.

The kernel, if left to its own devices, will only account for 14 of 38 overhead 
bytes. But that means that each packet will carry an additional 24 bytes of 
unaccounted for size that still needs to be transferred:

975000 * (1538/1514) = 990455.746367 (which still is below the 1GBit Layer1+ 
ceiling that GbE has).  At 985000 * (1538/1514) = 1000614.26684 you would 
already have slowly caused the NIC’s buffer to fill ;)
Luckily sqm-scripts will allow you to specify any additional per-packet 
overhead so just set this to 24 and things should just work out I believe.


Best Regards
        Sebastian
_______________________________________________
Cerowrt-devel mailing list
Cerowrt-devel@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cerowrt-devel

Reply via email to