Hi Fred,
On Dec 17, 2013, at 12:39 , Fred Stratton <fredstrat...@imap.cc> wrote: > In the new interface, htb_private is not an explicit option. > > IF aqm is enabled, and linklayer protocol is 'none', is htb_private > implicitly chosen? No, currently, you have no access to htb_private. I am still thinking about how to expose this option or if at all. The best way forward would be to teach the kernel's stab implementation the two tricks htb_private knows better and then forget about htb_private at all… BUt if you need htb_private, all you need to foo is to uncomment one line in aqm.lua. best Sebastian > > > On 17/12/13 08:22, Sebastian Moeller wrote: >> Hi Jesper, >> >> >> On Dec 17, 2013, at 09:03 , Jesper Dangaard Brouer <bro...@redhat.com> wrote: >> >>> On Sat, 14 Dec 2013 13:24:06 +0100 Sebastian Moeller <moell...@gmx.de> >>> wrote: >>> >>>> On Dec 14, 2013, at 07:26 , Dave Taht <dave.t...@gmail.com> wrote: >>>> >>>>> 2) it's not clear to me we have to support both the stab and >>>>> htb_private methods of fixing htb's linklayer. It was important that >>>>> these be fixed for everyone else that uses htb, >>>>> but is one of these is faster than the other? >>>> So, tc_stab is generic in that it should work with HFSC, HTB >>>> and TBF, while htb_private will only work with HTB (it seems TBF also >>>> has a private method but I have no clue whether that actually works, I >>>> just noticed that someone from huawei is posting changes to TBF on >>>> linux net-dev). My take is that we should just stick to stab so we can >>>> keep the same configuration fiels for most scripts people might come up >>>> with (thing free.qos without HTB). I have no idea which is faster >>>> though. >>>> >>>>> I seem to recall one was >>>>> a calculated value in the kernel, the other some sort of table. >>>> If I recall correctly HTB lost its internal tables to allow >>>> higher rates and/or precision; Jesper than fixed the htb_private method >>>> to account for the link layer on the fly. So currently HTB is more >>>> advanced than tc_stab, since HTB will allow arbitrarily large packets >>>> and still do the right thing, while tc_stab will either need humungous >>>> tables or will not work with jumbo packets and GRO. I think for shaping >>>> on a home router we could not care less. People who can afford such >>>> large packets and GRO on the router probably have bandwidths available >>>> that cerowrt does not handle well anyway (picture me heavily handwaving >>>> here). >>>> >>> Yes, with my recent fix, the HTB linklayer should be more precise than >>> stab (as HTB linklayer is no longer table based). >> But for DSL stab is precise unless MTU is larger than table size + >> overhead. stab modifies the apparent size of packets and that has no >> precision issue :) But I think stab should do the same you did with HTB, >> namely calculate the link layer adjustment on the fly. >> >>> BUT as stab is more generic, e.g. works on all schedulers, we should >>> move towards that. We should fix stab, in the kernel, to account for >>> stuff like GSO, and if needed we could easily do "on-the-fly" ATM cell >>> alignment (like the HTB linklayer patch). >> I agree, the account for GSO is i single line change, so should be >> easy, then the fly calculation is a tiny bit more involved. But in >> difference to HTB for stab the kernel knows the requested link layer so no >> heuristic is needed! >> >>> >>>>> Does >>>>> this choice need to be made by the >>>>> user? >>>> Well, no the user should not care. We should make that >>>> decision for the user; then again unless we are able to constantly >>>> check both methods against each other one will bitrott, so maybe we >>>> should default to tc_stab and make htb_private an advanced >>>> configuration option? Also we should try to drape tc_stab into the >>>> future and teach it the same trick htb_private does (and then also fix >>>> the fact that tc_stab ignores the information we have about overhead). >>> What! - Does stab ignore the overhead?!? >> Oh, sorry for being imprecise here. Stab does take the overhead into >> account you put in the stab invocation just like HTB. It does not currently >> use the kernels information about GSO, so if handed a GSO packet it will not >> account for any ethernet header. For the non offload situation not a big >> deal, you just include the 14? bytes ethernet header in overhead, but >> hopelessly wrong in the GSO situation. Currently cerowrt does not use GSO so >> that is theoretical for now. >> >>> The overhead for small (e.g. >>> ACK) packet is *very* important in the ATM/ADSL case, as the small >>> encap overhead cause the packet to use two ATM frames, which is >>> important to account for, because this represent a very big percentage >>> overhead (62%). Over-more ADSL is especially prone to have many ACK >>> packets travel their upload link (due to the larger download link >>> capacity). >>> >>> >>>> If no one beats me to it I will try to prepare my first patch to the >>>> kernel to fix this sometime next year; but I reallr really have no time >>>> for that in the near future, as I have to papers to write and grants to >>>> write as well as apply for a new position. (Also I am not too keen of >>>> getting a patch into the kernel, I just want this issue fixed; but >>>> since it looks this itches me most...) >>>> >>>>> The two variants benchmarked? Jesper? >>> I have actually not played with stab. >> >> Best Regards >> Sebastian >>> -- >>> Best regards, >>> Jesper Dangaard Brouer >>> MSc.CS, Sr. Network Kernel Developer at Red Hat >>> Author of http://www.iptv-analyzer.org >>> LinkedIn: http://www.linkedin.com/in/brouer >> _______________________________________________ >> 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