Re: [Babel-users] Coexistence of multiple babel daemons on the same host

2024-03-31 Thread Juliusz Chroboczek
> Just working around [...] babeld's non-atomic route replacement interacting > badly with BIRD's proto/radv. I guess we could revive atomic updates in babeld, perhaps the buggy kernels it didn't work with are no longer relevant. > *neighbour table*. I think the crux of the issue I was seeing is

Re: [Babel-users] Coexistence of multiple babel daemons on the same host

2024-03-31 Thread Juliusz Chroboczek
> I've just come across a reason I'd want to run babel with both bird and > babeld on the same node and have them become neighbours. I hope you know what you're doing. The simplest solution would be to run each daemon in a different container. If you don't want to use containers, you'll want to

Re: Babel and Unnumbered interfaces

2024-03-30 Thread Juliusz Chroboczek
> I don't think it's a violation of the Babel protocol to use IPv6 next hops > when > an IPv4 address is present. Yes, it's legal, but discouraged. Please see RFC 9229 Section 2.1: If the outgoing interface has been assigned an IPv4 address, then, in the interest of maximising

Re: OSPF for IPv4 over IPv6 only?

2024-01-30 Thread Juliusz Chroboczek
> As an alternative suggestion, I have since evaluated babel which mostly > suits my purposes (except for some features not yet implemented in bird, > like strict bind) Could you please explain what's the feature you're missing? Thanks, -- Juliusz

Re: [Babel-users] [RFC] Replace WireGuard AllowedIPs with IP route attribute

2023-11-18 Thread Juliusz Chroboczek
> Is tying source address filtering to the routing table the right thing to do > here? It seems to me that it would cause issues similar to those we see more > generally with Unicast Reverse Path Filtering Issues are caused by the kernel performing filtering that the routing protocol is not aware

Re: Babel RTT mechanism [Was: [RESEND PATCH v3] Babel: allow choosing link quality estimation] algorithm]

2023-11-08 Thread Juliusz Chroboczek
>> And babeld the reference implementation also allows enabling link quality >> estimation and the RTT extension at the same time, matching the current >> behavior of bird. Exactly right. > Considering that ETX estimates number of retransmissions, then for > algorithm that takes into account

Re: babel rtt in bird: How to set the RTT equal to the latency?

2023-10-27 Thread Juliusz Chroboczek
> default type tunnel rtt-min 1 rtt-max 1001 max-rtt-penalty 1000 > enable-timestamps true > ``` > It causes the RTT to be equal to the latency to the other node. More precisely, it causes the cost to be equal to the RTT. The recommended default values are much more conservative: rtt-min 10

Re: [Babel-users] [RFC] Replace WireGuard AllowedIPs with IP route attribute

2023-08-28 Thread Juliusz Chroboczek
Daniel, Kyle, I've read the whole discussion, and I'm still not clear what advantages the proposed route attribute has over having one interface per peer. Is it because interfaces are expensive in the Linux kernel? Or is there some other reason why it is better to run all WG tunnels over a

Re: [PATCH] Babel: allow enabling link quality estimation manually

2023-06-26 Thread Juliusz Chroboczek
> + link quality > + If set, link quality estimation is performed on this interface. There are multiple algorithms for estimating link quality, and the one currently implemented by BIRD is ETX. Hence, I feel that this should not be a mere switch, but a selector with possible values

Re: Feature Request: Preference in bird

2023-06-14 Thread Juliusz Chroboczek
> You basically shouldn't do it. BIRD does something like last-resort pointer > comparison and we should probably even add a warning if somebody misconfigures > in this way. Why not use the protocol's default preference as a last-resort tie-breaker? It's probably less code than the warning you

Re: Radv proto sending adverts on wrong interface

2023-03-12 Thread Juliusz Chroboczek
> The field sin6_scope_id should be used only for link-local addresses (to > define their scope), not as a way to route multicasts. > > (Hmm, ff02::/16 is defined as link-local multicast address, so perhaps > setting sin6_scope_id makes sense.) FWIW, babeld uses the sin6_scope_id when sending

Re: [PATCH] [RFC] Babel: Implement route daming with fixed delay

2023-03-07 Thread Juliusz Chroboczek
> I would approach the stability problem from an electronics/signal > processing/control theory background. I have no signal processing background whatsoever; to my eyes, signal processing is a fairly advanced for of magic. (My background is in logic and programming languages.) > Frankly I

Re: [PATCH] [RFC] Babel: Implement route daming with fixed delay

2023-03-06 Thread Juliusz Chroboczek
Hi Daniel, > In order to prevent RTT based routing from causing persistent traffic > oscillations we delay core rte announcement of each prefix by a > configurable but metric invariant amount of time. Could you please explain how that works? How does it interact with cost smoothing and route

Re: [PATCH] Babel: add RFC9229 (v4 via v6) support

2023-03-06 Thread Juliusz Chroboczek
>> (There's also the PMTUD problem described in RFC 9229 Section 3.) > Juliusz, do you, or any one else, have info on: > How does ${vendor} behave when reverse path filters are enabled? I was under the impression that some kinds of ICMP pakets are not subject to RPF. See RFC 4890 Section 4.3.1.

Re: [PATCH 0/3] babel: Add support for the RTT extension

2023-03-01 Thread Juliusz Chroboczek
> I don't really have a particular use case in mind for exposing the > metric, as indicated by my comment above. It just occurred to me as > something that *might* be useful for someone :) I certainly emphatise with your instinct to export as many useful knobs as possible. However, just like

Re: [PATCH 0/3] babel: Add support for the RTT extension

2023-02-28 Thread Juliusz Chroboczek
> My thinking was that filters may want to do something like: > > if (metric == smoothed_metric) > metric += 100; /* route is stable, we can apply our policy */ > > but I honestly don't know if that's useful for anything in reality :) I'm a little conflicted on this. On the one hand, it's

Re: Babel: Clarifications on seqno request handling in bird

2023-02-28 Thread Juliusz Chroboczek
>> Agreed. https://www.rfc-editor.org/how-to-report/ > Done :) Perfect, thanks a lot.

Re: Babel: Clarifications on seqno request handling in bird

2023-02-27 Thread Juliusz Chroboczek
> That's a bug in the new RFC text then ;) Agreed. https://www.rfc-editor.org/how-to-report/ -- Juliusz

Re: Babel: Clarifications on seqno request handling in bird

2023-02-27 Thread Juliusz Chroboczek
> I don't think RFC8966 is really framed in bird's "multi protocol" mindset See the beginning of Section 3.7, which describes how a route redistributed from another protocol has router-id set to the local router's id. Babel updates for the same prefix are processed as usual, with the routes

Some news about Babel

2023-02-16 Thread Juliusz Chroboczek
Hi, Discussions related to Babel are currently distributed across three distrinct mailing-lists (babel-users@alioth, babel@ietf, bird-users), and I'm a little concerned that those of you who are subscribed to just one of them are missing out on the whole picture. Since I'm on strike today, and

Re: [PATCH] Babel: add RFC9229 (v4 via v6) support

2023-02-14 Thread Juliusz Chroboczek
> btw, there is one question that i noticed. If an Update is ignored for > semantic reasons (e.g. update with valid metric, but missing next hop or > router id), should it update last prefix with P-flag? Such a packet would be incorrect. What to do in presence of an incorrect packet is left to

Re: [PATCH] Babel: add RFC9229 (v4 via v6) support

2023-02-14 Thread Juliusz Chroboczek
> I just though that the default value for the option is enabled, but > perhaps it should be enabled only if such routes are supported by > platform code (i.e. enabled on Linux, but disabled on BSD, as we do > not support such routes on BSD). IMHO, it should not be possible to enable v4-via-v6

Re: [PATCH] Babel: add RFC9229 (v4 via v6) support

2023-02-14 Thread Juliusz Chroboczek
> 1) Changed the name of the option to 'extended next hop', for consistency > with BGP (and in the future also with other protocols). As the option is > enabled by default, the name likely does not matter that much. I rather like v4-via-v6, which succintly and clearly states what it is about.

Re: aggregate routes in bird

2023-02-04 Thread Juliusz Chroboczek
> I've just read this draft and I must say that it looks nice, simple and > clean. Thanks for the kind words. I've read your comments, and agree on all counts. -- Juliusz

Re: aggregate routes in bird

2023-02-03 Thread Juliusz Chroboczek
>> Thanks for the answer! I hope it's not too annoying when I ask, however >> I can not find any information about this online: Are there also plans >> to implement the Babel RTT extension? > The core team doesn't have this in current plans. As there is no RFC for > this yet, it's under my radar.

Re: [PATCH] babel: Initialise source seqno from incoming message

2023-02-01 Thread Juliusz Chroboczek
>>> We do actually update the garbage collection time regardless of the >>> route metric in the regular update function (but not when sending an >>> explicit retraction). I think that's OK, though? >> Does that mean that a retracted route never expires? > Hmm, no, this is the garbage collection

Re: [PATCH] babel: Initialise source seqno from incoming message

2023-02-01 Thread Juliusz Chroboczek
> This has been clarified in RFC8966 as: "Note that the feasibility > distance is not updated and the garbage-collection timer is not reset > when a retraction (an update with infinite metric) is sent." > > The feasibility distance is only updated if the metric is lower, which > is never true for

Re: [PATCH] babel: Fix missing modulo comparison of seqnos

2023-01-30 Thread Juliusz Chroboczek
> Introduce a strict-inequality version of the modulo-comparison for this > purpose. Thanks. I'm a little worried about the code around line 1017: struct babel_source *s = babel_get_source(p, e, e->router_id); s->expires = current_time() + BABEL_GARBAGE_INTERVAL; if

Re: [Babel-users] Babel: Possible segfault in bird unfeasible update handling code

2023-01-29 Thread Juliusz Chroboczek
> The problematic bit is, I think, 's' in babel_handle_update can be NULL > because nothing ensures the babel_source for a particular neighbour > actually exists here: s will be passed to babel_is_feasible, which returns true if s is null. Later on, s is only used if feasible is false, in which

Re: [PATCH] babel: Keep separate auth PC counters for unicast and multicast

2023-01-25 Thread Juliusz Chroboczek
>> The issue has been described in draft-ietf-babel-mac-relaxed, which is >> currently pending RFC publication. That also describes two mitigation >> mechanisms: Keeping separate PC counters for unicast and multicast, and >> using a reorder window for PC values. This patch implements the former as

Re: Babel on a wireless mesh

2023-01-12 Thread Juliusz Chroboczek
As Toke said, OSPFv3 is a fine protocol. OSPFv2 was already pretty good, and the designers of OSPFv3 fixed the two significant flaws in OSPFv2. But of course I'd be delighted if you could experiment with Babel. >> routes). I'm simplifying wildly here, and I'm sure Juliusz will jump in >> and

Re: Question about babel over bird

2023-01-12 Thread Juliusz Chroboczek
> But this filter applies in the antenna that advertise the route. > 10.20.2.2 and 10.20.2.36 advertise 10.0.0.0/8 > > 10.20.2.162 and 10.20.3.1 links with 10.20.2.2 and i want that 10.20.2.162 > uses > 10.20.2.36 (not direct link) for 10.0.0.0/8 not 10.20.2.2 and 10.20.3.1 uses > 10.20.2.2 For

Re: Question about babel over bird

2023-01-12 Thread Juliusz Chroboczek
> We have a series of wireless antennas deployed in mesh with the babel > protocol using bird. >Two of those antennas advertise the route 10.0.0.0/8. >The rest of the antennas choose one of the two outputs depending on the > babel protocol. >How can I force it to go out through one

Re: [PATCH v2] babel: Add support for dual-stack v4/v6 operation

2017-06-20 Thread Juliusz Chroboczek
>> BTW, are third-party next hops allowed in Babel? I checked RFC 6126 >> but found nothing. They're not forbidden, but I don't think they are useful. There's no reason I can see why they wouldn't work, but I haven't actually tested. > Not sure how babeld will react to non-LL next hop

Re: Babel in Bird

2016-05-11 Thread Juliusz Chroboczek
> Using random router-id seems like a good idea. Perhaps even an TLV that > describes 'nominal' configured router-id, so regular router-id could be > random, but routes could still contain configured router-id for admin > purposes. Unfortunately, Babel does not have support for something like >

Re: Babel in Bird

2016-05-05 Thread Juliusz Chroboczek
> Well, section 2.8 (and in more detail section 3.5.5) specifies that we > should keep unreachable entries, but IMHO it does not specify that the > old route is considered selected/installed for a purpose of conditions in > section 3.5.4. The unreachable entry after retraction could be undestood >

Re: Babel in Bird

2016-05-05 Thread Juliusz Chroboczek
What you describe is perfectly correct. > I have two questions w.r.t. this sequence of events: > 1) How is router restart and seqnos supposed to be handled without > waiting for route timeout? It's worse than that, actually -- it's not the route timeout, it's the source GC time. The issue is a

Re: [Babel-users] Version 1.6.0

2016-05-01 Thread Juliusz Chroboczek
> If this is not the case, I think the RFC needs to specify what, exactly, > is meant by a "wildcard address". I've always thought of ::/0 as the > wildcard address; and doesn't "default route" also mean "wildcard > route"? Wow, no. The main purpose of a routing protocol is to carry prefixes.

Re: Babel in Bird 1.6.0

2016-04-30 Thread Juliusz Chroboczek
> Also now it seems to me that even the current code is not valid as it > implicitly assumes that the prefix length is 128 with this flag. > As the spec says 'low-order 8 octets of the advertised prefix' then > if one advertise 2001:DB8:1020:3040:5060:7080::/96, then low-order > 8 octets of this

Re: [Babel-users] Babel in Bird 1.6.0

2016-04-30 Thread Juliusz Chroboczek
> So I was referring to the text stating "the current router-id and seqno > is not used" - does that refer to all retractions or just wildcard ones? RFC 6126 doesn't say. It should be all retractions. > Well, I've always thought about 0x40 as specifying that the router ID be > the 64 bits from

Re: [Babel-users] Babel in Bird 1.6.0

2016-04-30 Thread Juliusz Chroboczek
> Okay, actually trying to put this into code: Is the intention here that > a null-router ID update is acceptable only on *wildcard* retractions or > on *all* retractions? In RFC 6126, there's nothing special about a null router-ID: it's just a router ID. However, for AEs 0 and 1, the address is

Re: [Babel-users] Babel in Bird 1.6.0

2016-04-30 Thread Juliusz Chroboczek
> Ah, I see. But surely, having an update with AE 0 and the flag set would > not be out of spec either, as long as router ID 0 is not disallowed? That's what I thought too, but Markus disagreed. -- Juliusz

Re: [Babel-users] Babel in Bird 1.6.0

2016-04-30 Thread Juliusz Chroboczek
> Well I would certainly argue that it was allowed; but apparently easy to > miss. Ok. Then please consider it as allowed, as all current implementation parse it fine. > Why is babeld setting the 0x40 flag on those updates, though? It was supposed to clear the router-id. Recent versions no

Re: [Babel-users] Babel in Bird 1.6.0

2016-04-30 Thread Juliusz Chroboczek
> But those updates seem to set flag 0x40, so that's not "without a router > ID" is it? Yeah, it was meant to clear the router-id. >> The plan is to explicitly allow such retractions in RFC 6126-bis, but >> they are clearly not allowed by RFC 6126. > Hmm, the RFC says this (which I seem to have

Re: [Babel-users] Babel in Bird 1.6.0

2016-04-30 Thread Juliusz Chroboczek
>> The packet format encodes intervals in centiseconds, so it would make >> sense to allow any fractional Hello interval down to 0.01 seconds. > since the internal Bird timers run at a granularity of seconds only > there's not much point in having the ability to configure smaller > values.

Re: [PATCH v2 2/2] Add the Babel protocol.

2016-01-16 Thread Juliusz Chroboczek
Nice. > + tx length ; Please don't make this configurable, it only breaks interoperability. Section 4 of RFC 6126 is very clear about the maximum size of a Babel packet: It MUST NOT send packets larger than the attached interface's MTU (adjusted for lower-layer headers) or 512