Oh dear - I completely missed that in the FAQ. Sincerest apologies, Tom, and thank you for pointing me to it.
All sorted now - switching generic receive offload "off" solved the problem: gw ~ # ethtool -K enp1s0 gro off I will also experiment with rate estimation as you recommended. I may suggest linking to that incredibly helpful FAQ 97a entry in the "Additional Reading" part of your page on simple traffic shaping: https://shorewall.org/simple_traffic_shaping.html Appreciate your hard work on a great piece of software - I'm off to go mangle some packets. :) -- Mark On Sat, Jul 18, 2020 at 11:01 AM Tom Eastep <eastep...@gmail.com> wrote: > On 7/18/20 9:43 AM, Mark Kendrick wrote: > > Hi everyone, > > > > I have a working two-interface Shorewall instance and I'm trying to use > > simple traffic control to limit the upload speed to about 90% of the > > 8mbit service limit. > > > > The configuration is applied correctly and without errors, and I see > > what seems to be a proper setup when I run "tc qdisc". > > > > Unfortunately, for reasons I cannot sort out, the download speed is also > > severely limited, well below what I specify in tcinterfaces. For that > > matter, I'm not even sure why download speed is affected; traffic > > control should only apply on egress, right? It's very strange. > > > > I realize this might not be a shorewall issue so feel free to redirect > > me elsewhere. > > > > Some details (gw is the firewall system): > > > > gw ~ # shorewall version > > 5.2.3.4 > > > > gw ~ # uname -a > > Linux lifegw 3.10.0-1127.13.1.el7.x86_64 #1 SMP Tue Jun 23 15:46:38 UTC > > 2020 x86_64 x86_64 x86_64 GNU/Linux > > [ that's Centos 7 with current updates applied ] > > > > gw /etc/shorewall # cat shorewall.conf | grep TC > > TCP_FLAGS_LOG_LEVEL="$LOG_LEVEL" > > TC= > > CLEAR_TC=Yes > > TC_ENABLED=Simple > > TC_EXPERT=No > > TC_PRIOMAP="2 3 3 3 2 3 1 1 2 2 2 2 2 2 2 2" > > TCP_FLAGS_DISPOSITION=DROP > > TC_BITS= > > > > gw /etc/shorewall # cat tcinterfaces | grep -v '^#.*' > > enp1s0 External 40mbit:200kb 6.0mbit:100kb:200ms:100mbit:1516 > > Note that you are setting IN-BANDWIDTH, so you are definitely getting > ingress policing. Furthermore, you are not using rate-estimating, so you > are probably running afoul of offloading to your NIC (See shorewall FAQ > 97a). > > > > > gw ~ # tc qdisc > > qdisc noqueue 0: dev lo root refcnt 2 > > qdisc tbf 1: dev enp1s0 root refcnt 9 rate 6Mbit burst 100Kb peakrate > > 100Mbit minburst 1512b lat 200.0ms > > qdisc prio 101: dev enp1s0 parent 1: bands 3 priomap 1 2 2 2 1 2 0 0 1 > > 1 1 1 1 1 1 1 > > qdisc sfq 1013: dev enp1s0 parent 101:3 limit 127p quantum 1875b depth > > 127 divisor 1024 perturb 10sec > > qdisc sfq 1012: dev enp1s0 parent 101:2 limit 127p quantum 1875b depth > > 127 divisor 1024 perturb 10sec > > qdisc sfq 1011: dev enp1s0 parent 101:1 limit 127p quantum 1875b depth > > 127 divisor 1024 perturb 10sec > > qdisc ingress ffff: dev enp1s0 parent ffff:fff1 ---------------- > > > > With that configuration in place, my **download** speed (ingress, > > right?) gets capped at around 7500kbit: > > gw ~ # wget > > "https://releases.ubuntu.com/20.04/ubuntu-20.04-desktop-amd64.iso" > > <snip> > > 0% [ ] 13,639,680 947KB/s > > > > That is a download directly on the firewall system, so if I'm > > understanding properly, that should be ingress only - egress shouldn't > > have anything to do with it. I understand if I was testing on a system > > connected to the firewall system then I'd have to be thinking about > > egress from the firewall system to that connected system, but this is > > happening only on the firewall system. > > > > When I disable traffic control in shorewall, the download speed returns > > close to my provider's stated limit: > > > > gw ~ # cat /etc/shorewall/shorewall.conf | grep TC_ENABLED > > TC_ENABLED=No > > > > gw ~ # tc qdisc > > qdisc noqueue 0: dev lo root refcnt 2 > > qdisc mq 0: dev enp1s0 root > > qdisc pfifo_fast 0: dev enp1s0 parent :2 bands 3 priomap 1 2 2 2 1 2 0 > > 0 1 1 1 1 1 1 1 1 > > qdisc pfifo_fast 0: dev enp1s0 parent :1 bands 3 priomap 1 2 2 2 1 2 0 > > 0 1 1 1 1 1 1 1 1 > > > > gw ~ # wget > > "https://releases.ubuntu.com/20.04/ubuntu-20.04-desktop-amd64.iso" > > <snip> > > 2% [=> ] 64,233,472 3.81MB/s > > > > Again, my intent here is to limit the upload speed, not the download > > speed. I am very confused why any of this is affecting the download at > all. > > See my comment about your tcinterfaces file above. > > -Tom > -- > Tom Eastep \ Q: What do you get when you cross a mobster > Shoreline, \ with an international standard? > Washington, USA \ A: Someone who makes you an offer you > http://shorewall.org \ can't understand > \________________________________________ > > > > -- > Tom Eastep \ Q: What do you get when you cross a mobster > Shoreline, \ with an international standard? > Washington, USA \ A: Someone who makes you an offer you > http://shorewall.org \ can't understand > \________________________________________ > > > _______________________________________________ > Shorewall-users mailing list > Shorewall-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/shorewall-users >
_______________________________________________ Shorewall-users mailing list Shorewall-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/shorewall-users