Re: [Cerowrt-devel] Build instructions for regular OpenWRT with Ceropackages

2015-07-01 Thread David Lang

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

2015-07-01 Thread Mikael Abrahamsson

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

2015-07-01 Thread Sebastian Moeller

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

2015-06-30 Thread Mikael Abrahamsson

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

2015-06-30 Thread dpreed

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

2015-06-30 Thread Mikael Abrahamsson

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