* Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
[not found] ` <1521341229978@web13h.yandex.ru>
@ 2012-07-02 15:36 ` Dave Taht
2012-07-02 16:16 ` L. Aaron Kaplan
` (2 more replies)
0 siblings, 3 replies; 22+ messages in thread
From: Dave Taht @ 2012-07-02 15:36 UTC (permalink / raw)
To: Denis Ovsienko; +Cc: bloat-devel, babel-users, cerowrt-devel
On Mon, Jul 2, 2012 at 7:52 AM, Denis Ovsienko <infrastation@yandex.ru> wrote:
> 01.07.2012, 03:53, "Dave Taht" <dave.taht@gmail.com>:
>> On Sat, Jun 30, 2012 at 7:44 PM, Juliusz Chroboczek <jch@pps.jussieu.fr> wrote:
>>
>>>>>> babel rxcost 100
>>> Implemented, committed, tested, pushed, and documented.
>>
>> Packaged, compiled, pushed to ceropackages-3-3 on github, and built in
>> the (as yet untested) development-only build of cerowrt, here:
>>
>> http://snapon.lab.bufferbloat.net/~cero1/3.3/3.3.8-8/
>
> There are 7 boxes in my temporary possession: one WNDR3700v2 and six WNDR3800. For the next couple of weeks these won't be used for anything but CeroWrt build tests (no idea what happens after that). I have just flashed all of them with 3.3.8-8 and passed through a custom config script, which besides other things currently configures Babel exchanges to be authenticated. The only major outstanding issue seems to be the default route one (which doesn't reproduce in today's topology, but I know it exists).
How goeth ipv6?
>
> The project may get more options, if we drive the prototype towards a finished deliverable.
I am very enthusiastic about babel's new authenticated mesh routing!
It is also my opinion that without a decent drop and packet mixing
strategy that mesh networks will perform badly under load. I'm hoping
that fq_codel does well, although it seems very likely that an
aggregation aware and fq_codel-like strategy needs to move into the
mac80211 layer, which is perhaps years worth of work.
What would a deliverable look like? What would interest people enough
to get some good data, papers written, progress made, more
users/developers and cash in the door?
...
I presently have 4 Nanostation M5, 3 picostation HP, and 5 wndr3700s.
I've found a good site to work with 2.4ghz and 5.x ghz radios (a 110
acre campground that has given me permission to play here) and test
fq_codel in various forms of cerowrt in, for as long as I like.
One of the things we've really struggled with was in today's saturated
2.4ghz environment there is no way to benchmark both radios. We've
been reduced to suggesting we 'flee to the mountains' in order to get
good results. OK, I just did that.
My own primary purpose *right now* is to be repeating a swath of tests
we ran on predecessors to fq_codel, (sfq, sfqred) to get a baseline on
what happens with the current OS and then to be able to compare them
against fq_codel. BEFORE linux 3.5 goes stable in august.
Some of this can happen in bloatlab #1 and on the x86 hw, but as for
wireless, that needs something of a greenfield environment to do
right.
This was the first post-BQL result I'd got back in november, 2011 -
the first one that showed that there was hope we could, indeed, fix
bufferbloat, on ethernet
http://www.teklibre.com/~d/bloat/pfifo_fast_vs_sfq_qfq_log.png
We'd finally got (under ethernet only) enough control of the stack to
reduce latency under load on linux by nearly 2 orders of magnitude.
Now, QFQ was heavyweight, so a string of mods to sfq went into linux
3.2 and 3.3, ultimately culminating in sfqred, which was very nice,
although
we had to rip out a feature (head of queue) as unstable that had made
it very competitive with QFQ...
http://www.teklibre.com/~d/bloat/hoqvssfqred.ps (april 15, 2012)
(the pfifo_fast results are so bad as to be NOT worth showing)
but the red component of sfqred proved hard to tune, although it did
manage to hold latency under wireless load to a relatively sane
60-90ms "band".
http://www.teklibre.com/~d/bloat/ping_log.ps
...
and then
...
codel
http://www.bufferbloat.net/projects/codel/wiki
arrived from van jacobson and kathie nichols. A short time later eric
dumazet wrote fq_codel... which basically ripped out the red component
of sfqred AND found a middle path towards having new stream entry be
less under-optimized than in sfq...
and all the results are looking amazing...
but I simply haven't had time/energy/money to repeat these three tests
to see how much/if we won or not.
Anyway, I'm planning on repeating these tests on current
cerowrt/openwrt software and a variety of hardware. And I/someone
need to make the test and statistics collection more robust, and
writing that code over the next few months in the yurt here seems to
be a relaxing prospect.
(I will be in Paris July 15-29 however not enough spare cash to make
ietf in vancouver. :( )
Also, as in the current cerowrt codebase are also patches to be able
to dynamically reduce queuing in the ath9k drivers, my secondary
purpose is to gather some data on wireless's behavior w and w/o
fq_codel and sane amounts of buffering at that layer. I really don't
expect to win enough for it to be useful but that's why we experiment.
In any case, I find babel very useful in letting me setup (and keep
up, and then crash) large numbers of nodes, and as it's a layer 3
protocol it's a lot easier to spread it across ethernet and wifi and
also observe what's going vs a vs other mesh protocols.
1) I could start publishing the images/source for a babel-mesh-enabled
nanostation m5 and picostation hp which are cerowrt derived but
seriously cut down in size.
2) Trying to have a project with a definable short and long term goal
seems a good idea. I outlined my own main ones above.
3) Given all the hoopla about crowdfunding, I was thinking of setting
up an idea like this as a kickstarter project.
The amount of time/money I've spent on the bufferbloat projects long
ago exceeded my own resources. Yet: I just turned down a lucrative day
job because I'm uncomfortable with fq_codel being undertested - and
what I'd like to be doing far exceeds my own resources.
Ideas towards a project definition/deliverable that would be useful,
interesting, & sustainable
would be useful.
> --
> Denis Ovsienko
>
> _______________________________________________
> Babel-users mailing list
> Babel-users@lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users
--
Dave Täht
http://www.bufferbloat.net/projects/cerowrt/wiki - "3.3.8-6 is out
with fq_codel!"
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
2012-07-02 15:36 ` [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues Dave Taht
@ 2012-07-02 16:16 ` L. Aaron Kaplan
2012-07-02 16:44 ` Dave Taht
2012-07-02 17:13 ` [Cerowrt-devel] DLEP [was: switching cerowrt to quagga-babeld issues] Juliusz Chroboczek
2012-07-02 20:54 ` [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues Denis Ovsienko
2012-07-04 11:34 ` Denis Ovsienko
2 siblings, 2 replies; 22+ messages in thread
From: L. Aaron Kaplan @ 2012-07-02 16:16 UTC (permalink / raw)
To: Dave Taht; +Cc: bloat-devel, babel-users, cerowrt-devel
[-- Attachment #1: Type: text/plain, Size: 2156 bytes --]
On Jul 2, 2012, at 5:36 PM, Dave Taht wrote:
> How goeth ipv6?
>
>>
>> The project may get more options, if we drive the prototype towards a finished deliverable.
>
> I am very enthusiastic about babel's new authenticated mesh routing!
>
> It is also my opinion that without a decent drop and packet mixing
> strategy that mesh networks will perform badly under load. I'm hoping
> that fq_codel does well, although it seems very likely that an
> aggregation aware and fq_codel-like strategy needs to move into the
> mac80211 layer, which is perhaps years worth of work.
Or have better cross-layer communication - see below....
>
> What would a deliverable look like? What would interest people enough
> to get some good data, papers written, progress made, more
> users/developers and cash in the door?
I would like to point you towards a nice feature that Henning is currently implementing: DLEP - a (mostly routing protocol independent) framework for communicating settings and metrics between a radio and a routing daemon.
See https://datatracker.ietf.org/doc/draft-ietf-manet-dlep/
Abstract
When routing devices rely on modems to effect communications over
wireless links, they need timely and accurate knowledge of the
characteristics of the link (speed, state, etc.) in order to make
forwarding decisions. In mobile or other environments where these
characteristics change frequently, manual configurations or the
inference of state through routing or transport protocols does not
allow the router to make the best decisions. A bidirectional, event-
driven communication channel between the router and the modem is
necessary.
More info and code samples on the olsr.org git repo. I'd like to also encourage Babel coders to take a look at it and collectively improve this.
It will be - as Dave already mentioned - anyway a hard problem to have this working for many radios in a standardized way, so it would really be helpful if different mesh developers for once could work *together* on some general feature which improves everybody's metrics.
Aaron.
[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 203 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
2012-07-02 16:16 ` L. Aaron Kaplan
@ 2012-07-02 16:44 ` Dave Taht
2012-07-02 16:54 ` L. Aaron Kaplan
2012-07-02 17:13 ` [Cerowrt-devel] DLEP [was: switching cerowrt to quagga-babeld issues] Juliusz Chroboczek
1 sibling, 1 reply; 22+ messages in thread
From: Dave Taht @ 2012-07-02 16:44 UTC (permalink / raw)
To: L. Aaron Kaplan; +Cc: bloat-devel, babel-users, cerowrt-devel
On Mon, Jul 2, 2012 at 12:16 PM, L. Aaron Kaplan <aaron@lo-res.org> wrote:
>
> On Jul 2, 2012, at 5:36 PM, Dave Taht wrote:
>
>> How goeth ipv6?
>>
>>>
>>> The project may get more options, if we drive the prototype towards a finished deliverable.
>>
>> I am very enthusiastic about babel's new authenticated mesh routing!
>>
>> It is also my opinion that without a decent drop and packet mixing
>> strategy that mesh networks will perform badly under load. I'm hoping
>> that fq_codel does well, although it seems very likely that an
>> aggregation aware and fq_codel-like strategy needs to move into the
>> mac80211 layer, which is perhaps years worth of work.
> Or have better cross-layer communication - see below....
>>
>> What would a deliverable look like? What would interest people enough
>> to get some good data, papers written, progress made, more
>> users/developers and cash in the door?
>
>
> I would like to point you towards a nice feature that Henning is currently implementing: DLEP - a (mostly routing protocol independent) framework for communicating settings and metrics between a radio and a routing daemon.
> See https://datatracker.ietf.org/doc/draft-ietf-manet-dlep/
>
> Abstract
>
>
> When routing devices rely on modems to effect communications over
> wireless links, they need timely and accurate knowledge of the
> characteristics of the link (speed, state, etc.) in order to make
> forwarding decisions. In mobile or other environments where these
> characteristics change frequently, manual configurations or the
> inference of state through routing or transport protocols does not
> allow the router to make the best decisions. A bidirectional, event-
> driven communication channel between the router and the modem is
> necessary.
>
>
>
> More info and code samples on the olsr.org git repo. I'd like to also encourage Babel coders to take a look at it and collectively improve this.
I just did. I like it.
I note that minstrel also supplies currently unreachable-via-api
information as to rates and retries that would be useful to be
exposed, but has a higher complexity than the above spec.
(note I only just read it, soo...). Andrew mcgregor has a
too-big-for-the-MPU paper on how minstrel works he's been distributing
privately.
Also I was fiddling with supplying GPS data and sensor data (over
babel, but it's not the best choice) both for more optimal wifi access
and for a prototype of an earthquake early warning system... and I'd
argue that GPS (and GPS time) data is generally useful and gps's are
now everywhere, a good way to distribute it could be added to the
above.
> It will be - as Dave already mentioned - anyway a hard problem to have this working for many radios in a standardized way, so it would really be helpful if different mesh developers for once could work *together* on some general feature which improves everybody's metrics.
YES! Please, can we mesh people find a way to work together for a change?
my own work on bufferbloat to a large extent is driven by a (5 years
worth of) quest to solve the "dense mesh" problem that OLPCs had. The
fq_codel work at least theoretically (but currently at the wrong
layer) is a means to improve that for all wired/wireless networks and
any given mesh protocol in particular would benefit. I have been
tracking batman-adv as well, but not olsr to any extent. Where does
"working code" lie?
I note that fq_codel throws an interesting congestion-related stat
away right now, which I'd like to find a way to include in a route
metric.
I also note that I am intensely dissatisfied with babel's current
metric, which is basically "ping" over multicast, but I'm happy as
babel's metric is pluggable and can be changed.
>
> Aaron.
>
--
Dave Täht
http://www.bufferbloat.net/projects/cerowrt/wiki - "3.3.8-6 is out
with fq_codel!"
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
2012-07-02 16:44 ` Dave Taht
@ 2012-07-02 16:54 ` L. Aaron Kaplan
0 siblings, 0 replies; 22+ messages in thread
From: L. Aaron Kaplan @ 2012-07-02 16:54 UTC (permalink / raw)
To: Dave Taht; +Cc: bloat-devel, babel-users, cerowrt-devel
[-- Attachment #1: Type: text/plain, Size: 4906 bytes --]
On Jul 2, 2012, at 6:44 PM, Dave Taht wrote:
> On Mon, Jul 2, 2012 at 12:16 PM, L. Aaron Kaplan <aaron@lo-res.org> wrote:
>>
>> On Jul 2, 2012, at 5:36 PM, Dave Taht wrote:
>>
>>> How goeth ipv6?
>>>
>>>>
>>>> The project may get more options, if we drive the prototype towards a finished deliverable.
>>>
>>> I am very enthusiastic about babel's new authenticated mesh routing!
>>>
>>> It is also my opinion that without a decent drop and packet mixing
>>> strategy that mesh networks will perform badly under load. I'm hoping
>>> that fq_codel does well, although it seems very likely that an
>>> aggregation aware and fq_codel-like strategy needs to move into the
>>> mac80211 layer, which is perhaps years worth of work.
>> Or have better cross-layer communication - see below....
>>>
>>> What would a deliverable look like? What would interest people enough
>>> to get some good data, papers written, progress made, more
>>> users/developers and cash in the door?
>>
>>
>> I would like to point you towards a nice feature that Henning is currently implementing: DLEP - a (mostly routing protocol independent) framework for communicating settings and metrics between a radio and a routing daemon.
>> See https://datatracker.ietf.org/doc/draft-ietf-manet-dlep/
>>
>> Abstract
>>
>>
>> When routing devices rely on modems to effect communications over
>> wireless links, they need timely and accurate knowledge of the
>> characteristics of the link (speed, state, etc.) in order to make
>> forwarding decisions. In mobile or other environments where these
>> characteristics change frequently, manual configurations or the
>> inference of state through routing or transport protocols does not
>> allow the router to make the best decisions. A bidirectional, event-
>> driven communication channel between the router and the modem is
>> necessary.
>>
>>
>>
>> More info and code samples on the olsr.org git repo. I'd like to also encourage Babel coders to take a look at it and collectively improve this.
>
> I just did. I like it.
>
Nice :)
> I note that minstrel also supplies currently unreachable-via-api
> information as to rates and retries that would be useful to be
> exposed, but has a higher complexity than the above spec.
> (note I only just read it, soo...). Andrew mcgregor has a
> too-big-for-the-MPU paper on how minstrel works he's been distributing
> privately.
>
> Also I was fiddling with supplying GPS data and sensor data (over
> babel, but it's not the best choice) both for more optimal wifi access
> and for a prototype of an earthquake early warning system... and I'd
> argue that GPS (and GPS time) data is generally useful and gps's are
> now everywhere, a good way to distribute it could be added to the
> above.
>
>> It will be - as Dave already mentioned - anyway a hard problem to have this working for many radios in a standardized way, so it would really be helpful if different mesh developers for once could work *together* on some general feature which improves everybody's metrics.
>
> YES! Please, can we mesh people find a way to work together for a change?
Absolutely!
>
> my own work on bufferbloat to a large extent is driven by a (5 years
> worth of) quest to solve the "dense mesh" problem that OLPCs had. The
Oh!... I remember being at One Kendall Sq. and discussing this with Michailis LOL...
I know exactly what you mean :) 30 XOs in close proximity was a recipe for disaster :)
> fq_codel work at least theoretically (but currently at the wrong
> layer) is a means to improve that for all wired/wireless networks and
> any given mesh protocol in particular would benefit. I have been
> tracking batman-adv as well, but not olsr to any extent. Where does
> "working code" lie?
olsr.org/git/
What you are looking for in particular is:
http://www.olsr.org/git/?p=framework.git;a=summary
and DLEP:
http://www.olsr.org/git/?p=dlep_app.git;a=summary
>
> I note that fq_codel throws an interesting congestion-related stat
> away right now, which I'd like to find a way to include in a route
> metric.
>
> I also note that I am intensely dissatisfied with babel's current
> metric, which is basically "ping" over multicast, but I'm happy as
;-) the dirty little secret is : all of the current mesh protos have unsatisfactory metrics :)
> babel's metric is pluggable and can be changed.
Same for OLSR. Good design choice.
Okay, Dave . I recommend that you get a grip on the DELP draft and get in touch with Henning.
I shifted more towards the "making things happen" side of mesh R&D than to the implementation side. So you need to talk with Henning in this respect. I would love to see a common framework - well tested and hardened by multiple developers which is usable for all of us.
Aaron.
[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 203 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Cerowrt-devel] DLEP [was: switching cerowrt to quagga-babeld issues]
2012-07-02 16:16 ` L. Aaron Kaplan
2012-07-02 16:44 ` Dave Taht
@ 2012-07-02 17:13 ` Juliusz Chroboczek
2012-07-02 17:36 ` [Cerowrt-devel] [Babel-users] " Henning Rogge
2012-07-02 19:50 ` [Cerowrt-devel] " L. Aaron Kaplan
1 sibling, 2 replies; 22+ messages in thread
From: Juliusz Chroboczek @ 2012-07-02 17:13 UTC (permalink / raw)
To: L. Aaron Kaplan; +Cc: bloat-devel, cerowrt-devel, babel-users
> I would like to point you towards a nice feature that Henning is
> currently implementing: DLEP - a (mostly routing protocol independent)
> framework for communicating settings and metrics between a radio and
> a routing daemon.
I reviewed an early draft of that.
As I understand DLEP, it is a standardised way to implement the "thin
access point" model that Cisco and friends are promoting -- a complex
(and expensive) controller associated with a number of dumb APs. This
is a good way to enable mobility between APs with unmodified stations,
it's a good way to make network administrators happy (centralised
administration), and also a good way to make Cisco happy (since the
controller can be sold for much, much more than an AP).
Standardising the protocol that the controller uses to communicate with
the APs is a worthy goal, but pretty much orthogonal to mesh networking
research.
-- Juliusz
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] [Babel-users] DLEP [was: switching cerowrt to quagga-babeld issues]
2012-07-02 17:13 ` [Cerowrt-devel] DLEP [was: switching cerowrt to quagga-babeld issues] Juliusz Chroboczek
@ 2012-07-02 17:36 ` Henning Rogge
2012-07-02 19:50 ` [Cerowrt-devel] " L. Aaron Kaplan
1 sibling, 0 replies; 22+ messages in thread
From: Henning Rogge @ 2012-07-02 17:36 UTC (permalink / raw)
To: Juliusz Chroboczek
Cc: L. Aaron Kaplan, bloat-devel, babel-users, cerowrt-devel
On Mon, Jul 2, 2012 at 7:13 PM, Juliusz Chroboczek <jch@pps.jussieu.fr> wrote:
>> I would like to point you towards a nice feature that Henning is
>> currently implementing: DLEP - a (mostly routing protocol independent)
>> framework for communicating settings and metrics between a radio and
>> a routing daemon.
>
> I reviewed an early draft of that.
The current draft is not really in a good shape, still a lot of
"proprietary" stuff and complexity that has the get out.
> As I understand DLEP, it is a standardised way to implement the "thin
> access point" model that Cisco and friends are promoting -- a complex
> (and expensive) controller associated with a number of dumb APs. This
> is a good way to enable mobility between APs with unmodified stations,
> it's a good way to make network administrators happy (centralised
> administration), and also a good way to make Cisco happy (since the
> controller can be sold for much, much more than an AP).
It also will allow us with an easy way to access link layer metrics,
even from radios we can only reach over ethernet.
> Standardising the protocol that the controller uses to communicate with
> the APs is a worthy goal, but pretty much orthogonal to mesh networking
> research.
Yes, it is... it might become a good raw data source for the metric
calculation of any kind of mesh routing protocol.
Henning Rogge
--
Steven Hawkings about cosmic inflation: "An increase of billions of
billions of percent in a tiny fraction of a second. Of course, that
was before the present government."
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] DLEP [was: switching cerowrt to quagga-babeld issues]
2012-07-02 17:13 ` [Cerowrt-devel] DLEP [was: switching cerowrt to quagga-babeld issues] Juliusz Chroboczek
2012-07-02 17:36 ` [Cerowrt-devel] [Babel-users] " Henning Rogge
@ 2012-07-02 19:50 ` L. Aaron Kaplan
1 sibling, 0 replies; 22+ messages in thread
From: L. Aaron Kaplan @ 2012-07-02 19:50 UTC (permalink / raw)
To: Juliusz Chroboczek; +Cc: bloat-devel, cerowrt-devel, babel-users
[-- Attachment #1: Type: text/plain, Size: 1158 bytes --]
Juliusz, remember that there are two approaches right now concernig DLEP: CISCO and the rest of the world ;-)
nuff said ;)))
On Jul 2, 2012, at 7:13 PM, Juliusz Chroboczek wrote:
>> I would like to point you towards a nice feature that Henning is
>> currently implementing: DLEP - a (mostly routing protocol independent)
>> framework for communicating settings and metrics between a radio and
>> a routing daemon.
>
> I reviewed an early draft of that.
>
> As I understand DLEP, it is a standardised way to implement the "thin
> access point" model that Cisco and friends are promoting -- a complex
> (and expensive) controller associated with a number of dumb APs. This
> is a good way to enable mobility between APs with unmodified stations,
> it's a good way to make network administrators happy (centralised
> administration), and also a good way to make Cisco happy (since the
> controller can be sold for much, much more than an AP).
>
> Standardising the protocol that the controller uses to communicate with
> the APs is a worthy goal, but pretty much orthogonal to mesh networking
> research.
>
> -- Juliusz
>
[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 203 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
2012-07-02 15:36 ` [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues Dave Taht
2012-07-02 16:16 ` L. Aaron Kaplan
@ 2012-07-02 20:54 ` Denis Ovsienko
2012-07-03 8:10 ` Denis Ovsienko
2012-07-04 11:34 ` Denis Ovsienko
2 siblings, 1 reply; 22+ messages in thread
From: Denis Ovsienko @ 2012-07-02 20:54 UTC (permalink / raw)
To: babel-users; +Cc: cerowrt-devel
> How goeth ipv6?
IPv6 default route is lost somewhere on the way from kernel to zebra process (and not promoted by babeld respectively). I'll try looking at it tomorrow and also pulling together some thoughts on the rest of your message.
--
Denis Ovsienko
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
2012-07-02 20:54 ` [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues Denis Ovsienko
@ 2012-07-03 8:10 ` Denis Ovsienko
2012-07-03 12:35 ` Denis Ovsienko
0 siblings, 1 reply; 22+ messages in thread
From: Denis Ovsienko @ 2012-07-03 8:10 UTC (permalink / raw)
To: cerowrt-devel; +Cc: babel-users
>> How goeth ipv6?
>
> IPv6 default route is lost somewhere on the way from kernel to zebra process (and not promoted by babeld respectively). I'll try looking at it tomorrow and also pulling together some thoughts on the rest of your message.
>
This seems to be caused by a difference in kernel behaviour between current CeroWrt and, for example, my notebook (3.3.7-1.fc16.x86_64). Plugged into the same network one after another, they end up with different default routes in kernel:
(cero)
default via fe80::230:48ff:fed4:63e4 dev ge00 proto kernel metric 1024 expires 1797sec
(notebook)
default via fe80::230:48ff:fed4:63e4 dev em1 proto static metric 1
default via fe80::230:48ff:fed4:63e4 dev em1 proto kernel metric 1024 expires 1786sec
Note the kernel/static route protocol. The established practice of zebra process used to be ignoring any RTPROT_KERNEL netlink messages. It is not clear if RTPROT_BOOT/RTPROT_RA should be used for a RA-originated route, but RTPROT_STATIC does the job in the latter case anyway and the default route reaches zebra. In the former case the default route is effectively isolated from zebra.
Does anybody know where this difference comes from?
--
Denis Ovsienko
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
2012-07-03 8:10 ` Denis Ovsienko
@ 2012-07-03 12:35 ` Denis Ovsienko
2012-07-03 12:47 ` Gabriel Kerneis
` (2 more replies)
0 siblings, 3 replies; 22+ messages in thread
From: Denis Ovsienko @ 2012-07-03 12:35 UTC (permalink / raw)
To: cerowrt-devel; +Cc: babel-users
> Does anybody know where this difference comes from?
The difference comes from NetworkManager. Its efforts in reproducing high-metric RTPROT_KERNEL routes with low-metric RTPROT_STATIC ones are effectively hiding the kernel issue outside of CeroWrt runtime. Would it be better to add a watchdog shell script, which does the same, or patch the kernel?
--
Denis Ovsienko
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
2012-07-03 12:35 ` Denis Ovsienko
@ 2012-07-03 12:47 ` Gabriel Kerneis
2012-07-03 13:18 ` Dave Taht
2012-07-03 15:28 ` Robert Bradley
2 siblings, 0 replies; 22+ messages in thread
From: Gabriel Kerneis @ 2012-07-03 12:47 UTC (permalink / raw)
To: Denis Ovsienko; +Cc: babel-users, cerowrt-devel
On Tue, Jul 03, 2012 at 04:35:10PM +0400, Denis Ovsienko wrote:
> > Does anybody know where this difference comes from?
>
> The difference comes from NetworkManager. […] Would it be better to add a
> watchdog shell script, which does the same, or patch the kernel?
It would be better to remove NetworkManager ;-)
-- Gabriel
P.S. I do understand that it wouldn't solve the issue, just kidding.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
2012-07-03 12:35 ` Denis Ovsienko
2012-07-03 12:47 ` Gabriel Kerneis
@ 2012-07-03 13:18 ` Dave Taht
2012-07-03 14:14 ` [Cerowrt-devel] " Denis Ovsienko
` (2 more replies)
2012-07-03 15:28 ` Robert Bradley
2 siblings, 3 replies; 22+ messages in thread
From: Dave Taht @ 2012-07-03 13:18 UTC (permalink / raw)
To: Denis Ovsienko; +Cc: babel-users, cerowrt-devel
On Tue, Jul 3, 2012 at 8:35 AM, Denis Ovsienko <infrastation@yandex.ru> wrote:
>> Does anybody know where this difference comes from?
>
> The difference comes from NetworkManager. Its efforts in reproducing high-metric RTPROT_KERNEL routes with low-metric RTPROT_STATIC ones are effectively hiding the kernel issue outside of CeroWrt runtime. Would it be better to add a watchdog shell script, which does the same, or patch the kernel?
I would *much rather* patch the kernel than have a watchdog. However I
don't quite understand
the redistribution issue vs a vs ipv6 here. If I have a "redistribute
kernel" on for ipv4, it does propagate the default route.
(I note that I dislike network manager too as it tries too hard to
work around bugs in the base OS and my own view of the world is far
more "meshy")
I'll gladly try pushing a patch up to the mainline if that's what is needed.
>
> --
> Denis Ovsienko
> _______________________________________________
> Cerowrt-devel mailing list
> Cerowrt-devel@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cerowrt-devel
--
Dave Täht
http://www.bufferbloat.net/projects/cerowrt/wiki - "3.3.8-6 is out
with fq_codel!"
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Cerowrt-devel] switching cerowrt to quagga-babeld issues
2012-07-03 13:18 ` Dave Taht
@ 2012-07-03 14:14 ` Denis Ovsienko
2012-07-06 16:36 ` [Cerowrt-devel] [Babel-users] " Denis Ovsienko
2012-07-03 19:17 ` [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues Jim Gettys
2012-07-06 16:59 ` David Lamparter
2 siblings, 1 reply; 22+ messages in thread
From: Denis Ovsienko @ 2012-07-03 14:14 UTC (permalink / raw)
To: cerowrt-devel; +Cc: babel-users
03.07.2012, 17:18, "Dave Taht" <dave.taht@gmail.com>:
> On Tue, Jul 3, 2012 at 8:35 AM, Denis Ovsienko <infrastation@yandex.ru> wrote:
>>> Does anybody know where this difference comes from?
>> The difference comes from NetworkManager. Its efforts in reproducing high-metric RTPROT_KERNEL routes with low-metric RTPROT_STATIC ones are effectively hiding the kernel issue outside of CeroWrt runtime. Would it be better to add a watchdog shell script, which does the same, or patch the kernel?
> I would *much rather* patch the kernel than have a watchdog. However I
> don't quite understand
> the redistribution issue vs a vs ipv6 here. If I have a "redistribute
> kernel" on for ipv4, it does propagate the default route.
The matter is, IPv4 default route comes flagged as either "static" or "boot" (both cases are displayed without "proto" column by /sbin/ip route). This is properly picked up. IPv6 default route comes flagged as "kernel"..
> (I note that I dislike network manager too as it tries too hard to
> work around bugs in the base OS and my own view of the world is far
> more "meshy")
>
> I'll gladly try pushing a patch up to the mainline if that's what is needed.
I've got no required expertise to make such change safe for all, but starting with a Cero-only patch seems possible.
--
Denis Ovsienko
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
2012-07-03 12:35 ` Denis Ovsienko
2012-07-03 12:47 ` Gabriel Kerneis
2012-07-03 13:18 ` Dave Taht
@ 2012-07-03 15:28 ` Robert Bradley
2012-07-03 15:55 ` Robert Bradley
2 siblings, 1 reply; 22+ messages in thread
From: Robert Bradley @ 2012-07-03 15:28 UTC (permalink / raw)
To: cerowrt-devel; +Cc: babel-users
On 03/07/12 13:35, Denis Ovsienko wrote:
>> Does anybody know where this difference comes from?
> The difference comes from NetworkManager. Its efforts in reproducing high-metric RTPROT_KERNEL routes with low-metric RTPROT_STATIC ones are effectively hiding the kernel issue outside of CeroWrt runtime. Would it be better to add a watchdog shell script, which does the same, or patch the kernel?
>
Isn't the main issue that IPv4 cannot autoconfigure routes? For IPv4,
you *need* to set default routes either manually or via DHCP. In IPv6
this all tends to be done via RA announcements and autoconfiguration.
In fact, I think the NetworkManager static route only comes from
DHCPv6. I have a router here (WNR2000v2) that only handles 6to4 traffic
and dishes out addresses via DHCPv6. To get proper conectivity, I also
have a separate gogoc tunnel that is advertised only via RA packets.
NetworkManager adds a static default route, but only for the 6to4
router. The gogc machine only gets a kernel-derived route.
I cannot see that a kernel patch that reports kernel-derived routes as
static would be accepted upstream. I think it is more likely that
quagga will need patching to obtain the autoconfigured routes from the
kernel somehow.
--
Robert Bradley
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
2012-07-03 15:28 ` Robert Bradley
@ 2012-07-03 15:55 ` Robert Bradley
0 siblings, 0 replies; 22+ messages in thread
From: Robert Bradley @ 2012-07-03 15:55 UTC (permalink / raw)
To: cerowrt-devel; +Cc: babel-users
On 03/07/12 16:28, Robert Bradley wrote:
> In fact, I think the NetworkManager static route only comes from
> DHCPv6. I have a router here (WNR2000v2) that only handles 6to4
> traffic and dishes out addresses via DHCPv6. To get proper
> conectivity, I also have a separate gogoc tunnel that is advertised
> only via RA packets. NetworkManager adds a static default route, but
> only for the 6to4 router. The gogc machine only gets a kernel-derived
> route.
It looks like I spoke slightly too soon. If I disable the router's IPv6
support, NetworkManager reassigns the static route using the advertised
gogoc tunnel.
--
Robert Bradley
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
2012-07-03 13:18 ` Dave Taht
2012-07-03 14:14 ` [Cerowrt-devel] " Denis Ovsienko
@ 2012-07-03 19:17 ` Jim Gettys
2012-07-06 16:59 ` David Lamparter
2 siblings, 0 replies; 22+ messages in thread
From: Jim Gettys @ 2012-07-03 19:17 UTC (permalink / raw)
To: Dave Taht; +Cc: babel-users, cerowrt-devel
On 07/03/2012 09:18 AM, Dave Taht wrote:
> On Tue, Jul 3, 2012 at 8:35 AM, Denis Ovsienko <infrastation@yandex.ru> wrote:
>>> Does anybody know where this difference comes from?
>> The difference comes from NetworkManager. Its efforts in reproducing high-metric RTPROT_KERNEL routes with low-metric RTPROT_STATIC ones are effectively hiding the kernel issue outside of CeroWrt runtime. Would it be better to add a watchdog shell script, which does the same, or patch the kernel?
> I would *much rather* patch the kernel than have a watchdog. However I
> don't quite understand
> the redistribution issue vs a vs ipv6 here. If I have a "redistribute
> kernel" on for ipv4, it does propagate the default route.
>
> (I note that I dislike network manager too as it tries too hard to
> work around bugs in the base OS and my own view of the world is far
> more "meshy")
>
> I'll gladly try pushing a patch up to the mainline if that's what is needed.
>
Hey, guys: if NM has a problem, let Dan Williams know, rather than just
removing NM and flaming about NM. Dan's a nice guy, and works hard to
make NM work well, and it's a nearly impossible task.
And as far as him trying to work around problems, I remember him
discovering that most 802.11 drivers not setting the time when they saw
announcements properly, and then going and patching as many drivers as
he could lay his hands on... (having lost half his hair figuring out
why people were associating with the wrong AP after resume).... So he
has given at the blood bank fixing the kernel.
- Jim
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
2012-07-02 15:36 ` [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues Dave Taht
2012-07-02 16:16 ` L. Aaron Kaplan
2012-07-02 20:54 ` [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues Denis Ovsienko
@ 2012-07-04 11:34 ` Denis Ovsienko
2012-07-05 14:15 ` dpreed
2 siblings, 1 reply; 22+ messages in thread
From: Denis Ovsienko @ 2012-07-04 11:34 UTC (permalink / raw)
To: cerowrt-devel
>> The project may get more options, if we drive the prototype towards a finished deliverable.
>
> I am very enthusiastic about babel's new authenticated mesh routing!
>
> It is also my opinion that without a decent drop and packet mixing
> strategy that mesh networks will perform badly under load. I'm hoping
> that fq_codel does well, although it seems very likely that an
> aggregation aware and fq_codel-like strategy needs to move into the
> mac80211 layer, which is perhaps years worth of work.
>
> What would a deliverable look like? What would interest people enough
> to get some good data, papers written, progress made, more
> users/developers and cash in the door?
Hello.
Considering CeroWrt as a free software project, it may be the right time to measure each of the following:
1. Amount of manpower/cash required to keep the project afloat and developing.
2. Added value, which exists due to its unique properties.
3. Population of developers willing to invest their manpower/cash.
4. Population of users willing to use the outcomes as long as it helps them stay focused on their own needs.
Accounting and distributing CeroWrt daily duties will make some space for a day job, at least part-time, which is very important. Focusing the 2nd item to help users understand the point of switching a Netgear box to CeroWrt will help the community grow naturally. The deliverable could come like this:
"Here is a small automatic test, which will measure the jitter, delay and RTT of your connection through a Netgear box to a server far on the Internet. Record these numbers and repeat the test after flashing the 3800 with this stable CeroWrt release. Let us know the difference and consider these unique features, which are available in CeroWrt only:
* something good
* something else
...
Have fun!
"
>
> ...
>
> I presently have 4 Nanostation M5, 3 picostation HP, and 5 wndr3700s.
> I've found a good site to work with 2.4ghz and 5.x ghz radios (a 110
> acre campground that has given me permission to play here) and test
> fq_codel in various forms of cerowrt in, for as long as I like.
>
> One of the things we've really struggled with was in today's saturated
> 2.4ghz environment there is no way to benchmark both radios. We've
> been reduced to suggesting we 'flee to the mountains' in order to get
> good results. OK, I just did that.
Picking some antenna types other than omnidirectional may be another solution, but it depends.
--
Denis Ovsienko
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
2012-07-04 11:34 ` Denis Ovsienko
@ 2012-07-05 14:15 ` dpreed
0 siblings, 0 replies; 22+ messages in thread
From: dpreed @ 2012-07-05 14:15 UTC (permalink / raw)
To: Denis Ovsienko; +Cc: cerowrt-devel
[-- Attachment #1: Type: text/plain, Size: 4034 bytes --]
Regarding radio benchmarking, note that the effect of the surface of the dirt/vegetation below line of sight seriously affects 2.4 and 5 GHz. It's been measured and reported (forget which journal) by folks from Berkeley who just did some empirical studies. E.g. 6 inch vs 11 inch grass 5 feet below the antenna makes a big difference, etc.
On the other hand, you know that in the real world, lab benchmarks of radios mean nothing at all, especially in a protocol based on contention where the energy in the beginning of the packet is crucial, independent of the decodability of the bits, but the decodability of the bits affects the backoff, etc.
I would suggest that tests that matter will be carried out in the densely populated worlds of cities, towns, ... If a mesh cannot survive in that environment, it's going to be of very, very limited usefulness, other than to provide Ph.D. dissertations in "optimal" routing in *imaginary* conditions.
Forget "optimal". Stable, scalable, resilient, simple, and good enough is far more important, practically.
-----Original Message-----
From: "Denis Ovsienko" <infrastation@yandex.ru>
Sent: Wednesday, July 4, 2012 7:34am
To: "cerowrt-devel" <cerowrt-devel@lists.bufferbloat.net>
Subject: Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
>> The project may get more options, if we drive the prototype towards a finished deliverable.
>
> I am very enthusiastic about babel's new authenticated mesh routing!
>
> It is also my opinion that without a decent drop and packet mixing
> strategy that mesh networks will perform badly under load. I'm hoping
> that fq_codel does well, although it seems very likely that an
> aggregation aware and fq_codel-like strategy needs to move into the
> mac80211 layer, which is perhaps years worth of work.
>
> What would a deliverable look like? What would interest people enough
> to get some good data, papers written, progress made, more
> users/developers and cash in the door?
Hello.
Considering CeroWrt as a free software project, it may be the right time to measure each of the following:
1. Amount of manpower/cash required to keep the project afloat and developing.
2. Added value, which exists due to its unique properties.
3. Population of developers willing to invest their manpower/cash.
4. Population of users willing to use the outcomes as long as it helps them stay focused on their own needs.
Accounting and distributing CeroWrt daily duties will make some space for a day job, at least part-time, which is very important. Focusing the 2nd item to help users understand the point of switching a Netgear box to CeroWrt will help the community grow naturally. The deliverable could come like this:
"Here is a small automatic test, which will measure the jitter, delay and RTT of your connection through a Netgear box to a server far on the Internet. Record these numbers and repeat the test after flashing the 3800 with this stable CeroWrt release. Let us know the difference and consider these unique features, which are available in CeroWrt only:
* something good
* something else
...
Have fun!
"
>
> ...
>
> I presently have 4 Nanostation M5, 3 picostation HP, and 5 wndr3700s.
> I've found a good site to work with 2.4ghz and 5.x ghz radios (a 110
> acre campground that has given me permission to play here) and test
> fq_codel in various forms of cerowrt in, for as long as I like.
>
> One of the things we've really struggled with was in today's saturated
> 2.4ghz environment there is no way to benchmark both radios. We've
> been reduced to suggesting we 'flee to the mountains' in order to get
> good results. OK, I just did that.
Picking some antenna types other than omnidirectional may be another solution, but it depends.
--
Denis Ovsienko
_______________________________________________
Cerowrt-devel mailing list
Cerowrt-devel@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cerowrt-devel
[-- Attachment #2: Type: text/html, Size: 4828 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
2012-07-03 14:14 ` [Cerowrt-devel] " Denis Ovsienko
@ 2012-07-06 16:36 ` Denis Ovsienko
2012-07-06 16:52 ` [Cerowrt-devel] IPv6 RA and RTPROT_whatever [was: switching cerowrt to quagga-babeld issues] Juliusz Chroboczek
0 siblings, 1 reply; 22+ messages in thread
From: Denis Ovsienko @ 2012-07-06 16:36 UTC (permalink / raw)
To: cerowrt-devel; +Cc: babel-users
[-- Attachment #1: Type: text/plain, Size: 849 bytes --]
> I've got no required expertise to make such change safe for all, but starting with a Cero-only patch seems possible.
Hello, all.
Let me make an update on the problem and the solution. NetworkManager does not belong to the problem space of the current IPv6 default route issue in CeroWrt just because it is not packaged in CeroWrt. NetworkManager sample data is provided to explain the machinery of the kernel/zebra route delivery issue in different environments. So far I would prefer to get this issue resolved in CeroWrt and focus on the next show stopper.
There is a kernel patch attached, which should fix the issue with IPv6 default route delivery in CeroWrt (it does fix it on my PC). Offering it for generic kernels is a different story, which shouldn't start until, say, 1-2 weeks of safe test-driving.
Cheers.
--
Denis Ovsienko
[-- Attachment #2: 0001-fix-RTPROT_RA-markup-of-some-RA-routes-in-netlink.patch --]
[-- Type: text/plain, Size: 2241 bytes --]
From 1d969903c6221980360f76abb5e063300e5cf3bb Mon Sep 17 00:00:00 2001
From: Denis Ovsienko <infrastation@yandex.ru>
Date: Fri, 6 Jul 2012 18:08:18 +0400
Subject: [PATCH] fix RTPROT_RA markup of some RA routes in netlink
There are three types of IPv6 routes originated by kernel ND RA code:
* Default routes standing for RA packets with non-zero router lifetime.
* Connected prefix routes standing for a Prefix Information (3) RA TLV.
* Any prefix routes standing for a Route Information (24) RA TLV.
All three types are internally stored using RTPROT_KERNEL or RTPROT_BOOT
protocol code and RTF_ADDRCONF route flag (this is the only purpose for
this flag). The flag isn't directly available in netlink socket space.
Given the need to tell route origin in userspace, for routes with
nexthops in the first turn, rt6_fill_node() tries to distinguish default
router case sending the netlink route structure with RTPROT_RA (this is
respectively the only use case for this protocol code), but to no
success due to a test condition taken wrong. All three types are
delivered with RTPROT_KERNEL.
This change is modelled after the original mailing list posting by Jeff
Haran. It fixes the test condition for the default router case and
extends it for the Route Information case.
---
net/ipv6/route.c | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 999a982..2f070d6 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -2441,9 +2441,15 @@ static int rt6_fill_node(struct net *net,
if (rt->rt6i_flags & RTF_DYNAMIC)
rtm->rtm_protocol = RTPROT_REDIRECT;
else if (rt->rt6i_flags & RTF_ADDRCONF)
- rtm->rtm_protocol = RTPROT_KERNEL;
- else if (rt->rt6i_flags & RTF_DEFAULT)
- rtm->rtm_protocol = RTPROT_RA;
+ {
+ /* any ND RA route, most probably originated by kernel */
+ if (rt->rt6i_flags & RTF_DEFAULT) /* default router */
+ rtm->rtm_protocol = RTPROT_RA;
+ else if (rt->rt6i_flags & RTF_ROUTEINFO) /* any route w/nexthop */
+ rtm->rtm_protocol = RTPROT_RA;
+ else /* RTF_PREFIX_RT, interface connected prefix route */
+ rtm->rtm_protocol = RTPROT_KERNEL;
+ }
if (rt->rt6i_flags & RTF_CACHE)
rtm->rtm_flags |= RTM_F_CLONED;
--
1.7.7.6
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Cerowrt-devel] IPv6 RA and RTPROT_whatever [was: switching cerowrt to quagga-babeld issues]
2012-07-06 16:36 ` [Cerowrt-devel] [Babel-users] " Denis Ovsienko
@ 2012-07-06 16:52 ` Juliusz Chroboczek
0 siblings, 0 replies; 22+ messages in thread
From: Juliusz Chroboczek @ 2012-07-06 16:52 UTC (permalink / raw)
To: Denis Ovsienko; +Cc: babel-users, cerowrt-devel
> There is a kernel patch attached, which should fix the issue with IPv6
> default route delivery in CeroWrt (it does fix it on my PC).
I'm a little bit confused.
RAs are supposed to be ignored by routers -- the RFCs are very clear on
that. Linux obeys the RFCs, it will disable accept_ra when forwarding
is set on an interface.
Now there's a race condition -- if the RA was accepted before the
routing daemon set the forwarding knob, then the default route will
remain. However, it will not be renewed -- when the RA expires, you'll
lose your default route.
The workaround to this race condition is to have the routing daemon
ignore RA-originated routes. This is traditionally done by making such
routes RTPROT_BOOT and ignoring such routes in the routing daemon (and
installing routing-protocol-originated routes with a lower metric).
So am I'm confused, or is marking RA-originated routes as anything else
than RTPROT_BOOT exactly the wrong thing to do?
-- Juliusz
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
2012-07-03 13:18 ` Dave Taht
2012-07-03 14:14 ` [Cerowrt-devel] " Denis Ovsienko
2012-07-03 19:17 ` [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues Jim Gettys
@ 2012-07-06 16:59 ` David Lamparter
2012-07-07 15:53 ` dpreed
2 siblings, 1 reply; 22+ messages in thread
From: David Lamparter @ 2012-07-06 16:59 UTC (permalink / raw)
To: Dave Taht; +Cc: babel-users, cerowrt-devel
On Tue, Jul 03, 2012 at 09:18:43AM -0400, Dave Taht wrote:
> On Tue, Jul 3, 2012 at 8:35 AM, Denis Ovsienko <infrastation@yandex.ru> wrote:
> >> Does anybody know where this difference comes from?
> >
> > The difference comes from NetworkManager. Its efforts in reproducing
> > high-metric RTPROT_KERNEL routes with low-metric RTPROT_STATIC ones
> > are effectively hiding the kernel issue outside of CeroWrt runtime.
> > Would it be better to add a watchdog shell script, which does the
> > same, or patch the kernel?
>
> I would *much rather* patch the kernel than have a watchdog. However I
> don't quite understand
> the redistribution issue vs a vs ipv6 here. If I have a "redistribute
> kernel" on for ipv4, it does propagate the default route.
I'm not sure I understood your problem here, but if it boils down to
"zebra doesn't redistribute an IPv6 RA default route", then that's by
design and shouldn't be touched.
IPv6 RA is a router to host protocol. Routers should never accept
information from it, it is neither secure nor able to convey enough
details to prevent loops or dead-end routes.
This is also why enabling IPv6 forwarding disables reception of route
advertisements in-kernel.
If I understand correctly, your use-case is a mesh router that acts as a
host on a "parent" network. If so, this case should be handled by a
separate daemon that receives and processes IPv6 RAs, hopefully applies
some filtering. Also, this absolutely cannot be default behaviour.
If I misunderstood the issues, please ignore my mail.
Cheers,
-David
P.S.: Also, NetworkManager and Quagga should never run on the same host.
NetworkManager does Host processing, Quagga does Router processing, and
those two are mutually exclusive.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
2012-07-06 16:59 ` David Lamparter
@ 2012-07-07 15:53 ` dpreed
0 siblings, 0 replies; 22+ messages in thread
From: dpreed @ 2012-07-07 15:53 UTC (permalink / raw)
To: David Lamparter; +Cc: cerowrt-devel, babel-users
[-- Attachment #1: Type: text/plain, Size: 4183 bytes --]
Here's the architectural issue at the root of this issue (I think):
"P.S.: Also, NetworkManager and Quagga should never run on the same host.
NetworkManager does Host processing, Quagga does Router processing, and
those two are mutually exclusive."
It should be the case that a host and a router can exist and run in the same physical box, this is part of the IP architecture. But Linux's network stack may make this hard to achieve (maybe impossible without careful isolation of all the parts). If so, it is a Linux stack issue that arises from mingling host and router datagrams in a way that does not fully separate them.
So, it could be viewed as a bug in Linux (including NetworkManager and Quagga) that that separation is not achievable(achieved). NetworkManager spans the layers and manages Ethernet mostly, but sometimes views it through the IP lens, making some assumptions that are not always valid architectural invariants. NetworkManager assumes that there is only one primary host IP interface, for example, as I recall, even though IPv6 especially supports many IPv6 addresses in the same box for Hosts and for routers.
So the interfaces and IP addresses for the router must be managed separately from those in the host, even if on the same box.
The easiest way to do a very clean separation in Linux when sharing the physical NICs as link-endpoints among router and host functions is perhaps using virtualization of the NICs with VLANs and/or the TAP interface providing a virtual link between the router and host on the same box. (I haven't studied this in detail, but it seems straightforward with no gotchas). This would separate the host interfaces from the router ones unambiguously.
Then let NetworkManager see only the host-controlled interface, but let the other interfaces be out of NetworkManager's control.
-----Original Message-----
From: "David Lamparter" <equinox@diac24.net>
Sent: Friday, July 6, 2012 12:59pm
To: "Dave Taht" <dave.taht@gmail.com>
Cc: "babel-users" <babel-users@lists.alioth.debian.org>, "cerowrt-devel" <cerowrt-devel@lists.bufferbloat.net>
Subject: Re: [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues
On Tue, Jul 03, 2012 at 09:18:43AM -0400, Dave Taht wrote:
> On Tue, Jul 3, 2012 at 8:35 AM, Denis Ovsienko <infrastation@yandex.ru> wrote:
> >> Does anybody know where this difference comes from?
> >
> > The difference comes from NetworkManager. Its efforts in reproducing
> > high-metric RTPROT_KERNEL routes with low-metric RTPROT_STATIC ones
> > are effectively hiding the kernel issue outside of CeroWrt runtime.
> > Would it be better to add a watchdog shell script, which does the
> > same, or patch the kernel?
>
> I would *much rather* patch the kernel than have a watchdog. However I
> don't quite understand
> the redistribution issue vs a vs ipv6 here. If I have a "redistribute
> kernel" on for ipv4, it does propagate the default route.
I'm not sure I understood your problem here, but if it boils down to
"zebra doesn't redistribute an IPv6 RA default route", then that's by
design and shouldn't be touched.
IPv6 RA is a router to host protocol. Routers should never accept
information from it, it is neither secure nor able to convey enough
details to prevent loops or dead-end routes.
This is also why enabling IPv6 forwarding disables reception of route
advertisements in-kernel.
If I understand correctly, your use-case is a mesh router that acts as a
host on a "parent" network. If so, this case should be handled by a
separate daemon that receives and processes IPv6 RAs, hopefully applies
some filtering. Also, this absolutely cannot be default behaviour.
If I misunderstood the issues, please ignore my mail.
Cheers,
-David
P.S.: Also, NetworkManager and Quagga should never run on the same host.
NetworkManager does Host processing, Quagga does Router processing, and
those two are mutually exclusive.
_______________________________________________
Cerowrt-devel mailing list
Cerowrt-devel@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cerowrt-devel
[-- Attachment #2: Type: text/html, Size: 5319 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2012-07-07 15:53 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <CAA93jw40kiOwDnOzG-_jUn7nKpky59bNBTec8ynjVwJJhKxr0Q@mail.gmail.com>
[not found] ` <2187151341044351@web9d.yandex.ru>
[not found] ` <7isjdcpm1q.fsf@lanthane.pps.jussieu.fr>
[not found] ` <40851341093226@web25d.yandex.ru>
[not found] ` <7ik3yoz7p2.fsf@lanthane.pps.jussieu.fr>
[not found] ` <CAA93jw5p9EqoK09Y_AXaHG_DfH-u_QDYU_FKOK_hhxBRDcuqAA@mail.gmail.com>
[not found] ` <1521341229978@web13h.yandex.ru>
2012-07-02 15:36 ` [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues Dave Taht
2012-07-02 16:16 ` L. Aaron Kaplan
2012-07-02 16:44 ` Dave Taht
2012-07-02 16:54 ` L. Aaron Kaplan
2012-07-02 17:13 ` [Cerowrt-devel] DLEP [was: switching cerowrt to quagga-babeld issues] Juliusz Chroboczek
2012-07-02 17:36 ` [Cerowrt-devel] [Babel-users] " Henning Rogge
2012-07-02 19:50 ` [Cerowrt-devel] " L. Aaron Kaplan
2012-07-02 20:54 ` [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues Denis Ovsienko
2012-07-03 8:10 ` Denis Ovsienko
2012-07-03 12:35 ` Denis Ovsienko
2012-07-03 12:47 ` Gabriel Kerneis
2012-07-03 13:18 ` Dave Taht
2012-07-03 14:14 ` [Cerowrt-devel] " Denis Ovsienko
2012-07-06 16:36 ` [Cerowrt-devel] [Babel-users] " Denis Ovsienko
2012-07-06 16:52 ` [Cerowrt-devel] IPv6 RA and RTPROT_whatever [was: switching cerowrt to quagga-babeld issues] Juliusz Chroboczek
2012-07-03 19:17 ` [Cerowrt-devel] [Babel-users] switching cerowrt to quagga-babeld issues Jim Gettys
2012-07-06 16:59 ` David Lamparter
2012-07-07 15:53 ` dpreed
2012-07-03 15:28 ` Robert Bradley
2012-07-03 15:55 ` Robert Bradley
2012-07-04 11:34 ` Denis Ovsienko
2012-07-05 14:15 ` dpreed
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox