Re: [Cerowrt-devel] Build instructions for regular OpenWRT with Ceropackages
On Tue, 30 Jun 2015, Mikael Abrahamsson wrote: On Tue, 30 Jun 2015, dpr...@reed.com wrote: What happens if the SoC ports aren't saturated, but the link is GigE? That is, suppose this is an access link to a GigE home or office LAN with wired servers? As far as I can tell, the device looks like this: wifi2-- wifi1\| SOC2 6-| SOC1 5-| WAN 4-| LAN1 3-| (switch) LAN2 2-| LAN3 1-| LAN4 0-| LAN1-4 and SOC2 is in one vlan, and SOC1 and WAN is in a second vlan. This basically means there is no way to get traffic into SOC1 that goes out SOC2 that will saturate either port, because they're both gige. Only way to saturate the SOC port would be if the SOC itself created traffic, for instance by being a fileserver, or if there is significant traffic on the wifi (which has PCI-E connectivity). So it's impossible to congest SOC1 or SOC2 (egress) by running traffic LAN-WAN alone. not true, the switch doesn't give any way for traffic to get from one vlan to the other one, so if you have gig-e connections on both sides, the traffic going from one to the other will have to go through the soc, so if there is more than 1Gb of traffic in either direction the interface will be saturated. The problem is if you have a slower connection, the bottleneck is in the switch not the soc. you may be able to set the soc-switch interface to 100Mb (make sure you have access through another interface in case you cut yourself off) and that would make the soc see the queue directly. David Lang ___ Cerowrt-devel mailing list Cerowrt-devel@lists.bufferbloat.net https://lists.bufferbloat.net/listinfo/cerowrt-devel
Re: [Cerowrt-devel] Build instructions for regular OpenWRT with Ceropackages
On Wed, 1 Jul 2015, David Lang wrote: not true, the switch doesn't give any way for traffic to get from one vlan to the other one, so if you have gig-e connections on both sides, the traffic going from one to the other will have to go through the soc, so if there is more than 1Gb of traffic in either direction the interface will be saturated. I don't see how it can be. The switch has a 4 externally facing ports, these all go to a single SoC port that is GigE, so the SoC cannot ingest more than 1G of traffic from the 4 LAN ports. The L2 switch chip will do the egress dropping from LAN ports-SoC ports, so there is no AQM there. The problem is if you have a slower connection, the bottleneck is in the switch not the soc. you may be able to set the soc-switch interface to 100Mb (make sure you have access through another interface in case you cut yourself off) and that would make the soc see the queue directly. That is my point. There is no way by doing traffic LAN-WAN to get egress congestion on the SoC ports, and it's on the SOC ports we can do AQM. The SoC ports is gigabit ethernet only, no 10/100 available according to ethtool. So the only way to generate congestion egress on the WAN SOC port is to add traffic locally from the SoC (iperf3 for instance), or adding traffic from Wifi. -- Mikael Abrahamssonemail: swm...@swm.pp.se ___ Cerowrt-devel mailing list Cerowrt-devel@lists.bufferbloat.net https://lists.bufferbloat.net/listinfo/cerowrt-devel
Re: [Cerowrt-devel] Build instructions for regular OpenWRT with Ceropackages
On Jul 1, 2015, at 12:32 , Mikael Abrahamsson swm...@swm.pp.se wrote: On Wed, 1 Jul 2015, David Lang wrote: not true, the switch doesn't give any way for traffic to get from one vlan to the other one, so if you have gig-e connections on both sides, the traffic going from one to the other will have to go through the soc, so if there is more than 1Gb of traffic in either direction the interface will be saturated. I don't see how it can be. If “saturated” means running at line rate, then I agree with David. The switch has a 4 externally facing ports, these all go to a single SoC port that is GigE, so the SoC cannot ingest more than 1G of traffic from the 4 LAN ports. But this is not SoC specific, no? If the router only had two ethernet ports and the LAN aggregation would happen at a dedicated switch between the clients and the router’s lan port the situation would be the same? The L2 switch chip will do the egress dropping from LAN ports-SoC ports, so there is no AQM there. Ingress/egress are always relative to something I guess. You can put AQM on any of the two SoC ports (or both) but that will not affect how the switch copes with overloads, unless the switch grows AQM (as Dave mentioned in earlier threads). I would hope that the LAN’s short RTTs and high bandwidth should make this bearable. The problem is if you have a slower connection, the bottleneck is in the switch not the soc. you may be able to set the soc-switch interface to 100Mb (make sure you have access through another interface in case you cut yourself off) and that would make the soc see the queue directly. That is my point. There is no way by doing traffic LAN-WAN to get egress congestion on the SoC ports, and it's on the SOC ports we can do AQM. Unless you reduce the egress rate to below the ingress rate. This really is why we need the soft shapers at all, otherwise the buffering moves from where we have control back into the DSLAMs/CMTSs/BRASs and CPE. The SoC ports is gigabit ethernet only, no 10/100 available according to ethtool. So the only way to generate congestion egress on the WAN SOC port is to add traffic locally from the SoC (iperf3 for instance), or adding traffic from Wifi. Well, that os shaping the other direction, so that more data can enter the router than leave. It is all a balancing game in the end… Best Regards Sebastian -- Mikael Abrahamssonemail: swm...@swm.pp.se ___ Cerowrt-devel mailing list Cerowrt-devel@lists.bufferbloat.net https://lists.bufferbloat.net/listinfo/cerowrt-devel ___ Cerowrt-devel mailing list Cerowrt-devel@lists.bufferbloat.net https://lists.bufferbloat.net/listinfo/cerowrt-devel
[Cerowrt-devel] Build instructions for regular OpenWRT with Ceropackages
On Mon, 29 Jun 2015, dpr...@reed.com wrote: I would love to try out cake in my environment. However, as a non-combatant, it would be nice to have an instruction sheet on how to set the latest version up, and what hardware it works best on (WRT1200AC?). Obviously this is a work in progress, so that will change, but it would be nice to have a summarized wiki page. WRT1200AC seems to be the most powerful around, however it can't really be used for PHY 100M testing since both SoC ports goes to a switch that then terminate all the external ports. Therefore it's hard to test AQM-on-metal with it because the SoC links are never saturated, you always have to use an encompassing shaper (htb). Here is a short writeup from what I learnt from the past days. I haven't verified every step, this is from memory. Get ubuntu 14.04 LTS according to: http://www.acme-dot.com/building-openwrt-14-07-barrier-breaker-on-ubuntu-and-os-x/ Check out either trunk (git clone git://git.openwrt.org/openwrt.git) or Chaos Calmer RC (clone git://git.openwrt.org/15.05/openwrt.git). Copy feeds.conf.default to feeds.conf in the openwrt dir. Add first in file: src-git cero https://github.com/dtaht/ceropackages-3.10.git; scripts/feeds update -a scripts/feeds install luci luci-app-sqm sqm-scripts tc-adv ip ethtool kmod-sched-cake kmod-sched-fq_pie make menuconfig Now comes the hard part because you want to change * for everything that you want to install as default in the resulting image. M means it compiles the package but doesn't include it in the resulting image (for utilities). What the above does is only to make it available to make menuconfig as packages. I tend to choose traceroute, tcpdump and all the other nice to have utilities. You can download and use http://swm.pp.se/aqm/wrt1200ac.config (it's for trunk, ie the nightly, don't know if it works for CC RC2) and put as .config in the openwrt directory as a template. I recommend to build on a fast machine with SSD, i/o is usually the limiting factor. I use an 3.5GHz core i5 dual core (4 with HT) and SSD, and with make -j 10 it compiles in an hour or so. Subsequent compiles are quicker. You need to find your platform etc. If you get an WRT1200AC you can use my builds if you want to. After this you need to go into the luci sqm scripts and set queueing algorithm etc. some good commands to see what's going on: tc -d qdisc tc -s qdisc Hope it helps. -- Mikael Abrahamssonemail: swm...@swm.pp.se ___ Cerowrt-devel mailing list Cerowrt-devel@lists.bufferbloat.net https://lists.bufferbloat.net/listinfo/cerowrt-devel
Re: [Cerowrt-devel] Build instructions for regular OpenWRT with Ceropackages
What happens if the SoC ports aren't saturated, but the link is GigE? That is, suppose this is an access link to a GigE home or office LAN with wired servers? On Tuesday, June 30, 2015 9:58am, Mikael Abrahamsson swm...@swm.pp.se said: On Mon, 29 Jun 2015, dpr...@reed.com wrote: I would love to try out cake in my environment. However, as a non-combatant, it would be nice to have an instruction sheet on how to set the latest version up, and what hardware it works best on (WRT1200AC?). Obviously this is a work in progress, so that will change, but it would be nice to have a summarized wiki page. WRT1200AC seems to be the most powerful around, however it can't really be used for PHY 100M testing since both SoC ports goes to a switch that then terminate all the external ports. Therefore it's hard to test AQM-on-metal with it because the SoC links are never saturated, you always have to use an encompassing shaper (htb). Here is a short writeup from what I learnt from the past days. I haven't verified every step, this is from memory. Get ubuntu 14.04 LTS according to: http://www.acme-dot.com/building-openwrt-14-07-barrier-breaker-on-ubuntu-and-os-x/ Check out either trunk (git clone git://git.openwrt.org/openwrt.git) or Chaos Calmer RC (clone git://git.openwrt.org/15.05/openwrt.git). Copy feeds.conf.default to feeds.conf in the openwrt dir. Add first in file: src-git cero https://github.com/dtaht/ceropackages-3.10.git; scripts/feeds update -a scripts/feeds install luci luci-app-sqm sqm-scripts tc-adv ip ethtool kmod-sched-cake kmod-sched-fq_pie make menuconfig Now comes the hard part because you want to change * for everything that you want to install as default in the resulting image. M means it compiles the package but doesn't include it in the resulting image (for utilities). What the above does is only to make it available to make menuconfig as packages. I tend to choose traceroute, tcpdump and all the other nice to have utilities. You can download and use http://swm.pp.se/aqm/wrt1200ac.config (it's for trunk, ie the nightly, don't know if it works for CC RC2) and put as .config in the openwrt directory as a template. I recommend to build on a fast machine with SSD, i/o is usually the limiting factor. I use an 3.5GHz core i5 dual core (4 with HT) and SSD, and with make -j 10 it compiles in an hour or so. Subsequent compiles are quicker. You need to find your platform etc. If you get an WRT1200AC you can use my builds if you want to. After this you need to go into the luci sqm scripts and set queueing algorithm etc. some good commands to see what's going on: tc -d qdisc tc -s qdisc Hope it helps. -- Mikael Abrahamsson email: swm...@swm.pp.se ___ Cerowrt-devel mailing list Cerowrt-devel@lists.bufferbloat.net https://lists.bufferbloat.net/listinfo/cerowrt-devel
Re: [Cerowrt-devel] Build instructions for regular OpenWRT with Ceropackages
On Tue, 30 Jun 2015, dpr...@reed.com wrote: What happens if the SoC ports aren't saturated, but the link is GigE? That is, suppose this is an access link to a GigE home or office LAN with wired servers? As far as I can tell, the device looks like this: wifi2-- wifi1\| SOC2 6-| SOC1 5-| WAN 4-| LAN1 3-| (switch) LAN2 2-| LAN3 1-| LAN4 0-| LAN1-4 and SOC2 is in one vlan, and SOC1 and WAN is in a second vlan. This basically means there is no way to get traffic into SOC1 that goes out SOC2 that will saturate either port, because they're both gige. Only way to saturate the SOC port would be if the SOC itself created traffic, for instance by being a fileserver, or if there is significant traffic on the wifi (which has PCI-E connectivity). So it's impossible to congest SOC1 or SOC2 (egress) by running traffic LAN-WAN alone. -- Mikael Abrahamssonemail: swm...@swm.pp.se ___ Cerowrt-devel mailing list Cerowrt-devel@lists.bufferbloat.net https://lists.bufferbloat.net/listinfo/cerowrt-devel