From: Juliusz Chroboczek <jch@irif.fr>
To: dan <dandenson@gmail.com>
Cc: Herbert Wolverson <herberticus@gmail.com>,
libreqos@lists.bufferbloat.net
Subject: Re: [LibreQoS] routing protocols and daemons
Date: Sun, 30 Oct 2022 14:42:18 +0100 [thread overview]
Message-ID: <87k04he8cl.wl-jch@irif.fr> (raw)
In-Reply-To: <CAA_JP8V1Pnd+wVbE8367JXxEhGPSGW3XV3zrM9C0k-t-Dh5QNg@mail.gmail.com>
> I wish I had a fancy pony with:
That's not a pony. That's a whole herd.
> Routing based on diffserv.
That was originally supported by OSPFv2, but was removed from later
versions of the specification, to be replaced by multi-topology routing
(RFC 4915). It's a little costly if you only have a small number of
ToS-specific routes, but I'm told it works well.
In Babel, we defined and implemented an extension for ToS-specific
routing, but found out there was no interest, so we dropped it.
https://datatracker.ietf.org/doc/html/draft-chouasne-babel-tos-specific
> 'Hitless' adjustments to path diffserv cost. ie, if a link has a cost change,
> propagate that out without dumping routes.
I'm not sure what you mean.
> link cost with metrics matching diffserv model.
[...]
> with some method to modify this programmatically
It's not sound engineering to implement the whole complexity of DiffServ
within the routing daemon. On the other hand, one could envision, as you
suggest, a DiffServ daemon that dynamically tweaks route metrics.
Babeld has a simple IPC interface that allows tweaking the configuration
of the daemon at runtime, and I'd be interested in working with someone
who implements such a control daemon.
> but something along the lines of 'if a service is being used up by
> a higher class of service (enterprise...) then other routers should know
> to try to route around that side.
Again, that's not something that's likely to make it into routing
software, but it's something that could conceivably be implemented in
a separate daemon.
> Then on the client side or the client's PoP it should discover it's paths for
> each diffserv to gateways. This could be pre-mapping 1st, 2nd, 3rd next-hops
> for each diffserv to each gateway for example, so failover for link downs is
> pretty quick.
Modern distance vector protocols do that. For example, EIGRP maintains
three next-hops for each destination, while Babel maintains all next hops
to a given destination, and only discards them when it runs low on memory
(which never happens in my experience).
> BFD capabilities, preferably built in vs separate BFD process.
I'd have no objection to implementing BFD if there's user demand.
However, since Babel can do Hellos up to 100 times per second, our users
are not exactly clamouring for BFD.
(BFD is useful with OSPF, where Hellos are overloaded and therefore huge
data structures. Not as much with Babel, where Hellos are tiny. See
https://www.rfc-editor.org/rfc/rfc8966.html#name-neighbour-acquisition
for details.)
> 'Route Oracles'. Routers that advertise that they'll store the router's cost
> tables for all other routers to subscribe to.
I'm not sure what you mean.
> Finally, before I make this wish list too long, REDUNDANT packets.
That's a data plane feature, and therefore has little to do with the
routing protocol. A fun little project, to be sure, the difficulty lies
in determining the right amount of FEC, which requires very accurate loss
statistics (you need to distinguish between random loss and burst loss,
and tune the amount of FEC for the former while carefully ignoring the
latter). Hence, I suspect that it's better to do that at the application
layer, e.g. in the videoconferencing software.
-- Juliusz
next prev parent reply other threads:[~2022-10-30 13:42 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-26 20:29 Dave Taht
2022-10-26 20:53 ` Herbert Wolverson
2022-10-26 21:38 ` Dave Taht
2022-10-26 22:35 ` dan
2022-10-27 13:29 ` Herbert Wolverson
2022-10-27 15:29 ` Mark Steckel
2022-10-27 16:35 ` Dave Taht
2022-10-28 21:47 ` Juliusz Chroboczek
2022-10-28 21:45 ` Juliusz Chroboczek
2022-10-29 0:01 ` Dave Taht
2022-10-29 0:34 ` Dave Taht
2022-10-29 9:15 ` Juliusz Chroboczek
2022-10-29 13:48 ` Herbert Wolverson
2022-10-29 14:13 ` dan
2022-10-29 22:18 ` Juliusz Chroboczek
2022-10-30 0:09 ` dan
2022-10-30 13:42 ` Juliusz Chroboczek [this message]
2022-10-29 20:11 ` Juliusz Chroboczek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://lists.bufferbloat.net/postorius/lists/libreqos.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87k04he8cl.wl-jch@irif.fr \
--to=jch@irif.fr \
--cc=dandenson@gmail.com \
--cc=herberticus@gmail.com \
--cc=libreqos@lists.bufferbloat.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox