Subject: [babel] IPv4 over IPv6

From: Juliusz Chroboczek <[email-masked]>
Date: Tue, 31 Mar 2020 19:41:41 +0200

Dear all,

Some of you might remember that Théo Bastian (in copy of this mail) is
working on implementing a Babel extension for IPv4 routing with IPv6 next
hops.  Since the extension is meant to interoperate with other Babel
routers, we've decided to encode IPv4-over-IPv6 routes as a new AE.  So an
IPv4-over-IPv6 route announcement consists of:

  1. a normal Router-ID TLV ;
  2. an IPv4-over-IPv6 Next Hop TLV carrying an IPv6 next-hop ;
  3. an IPv4-over-IPv6 Update TLV carrying an IPv4 prefix.

The Update is encoded in the new AE, which updates a separate set of
compression state; the normal IPv4 compression state is left undisturbed.
On the other hand, we have two natural ways of encoding the NH :

  (1) use a new NH, in the new AE ;
  (2) reuse the IPv6 NH (AEs 1 and 2).

Encoding (1) has the advantage of being easier to explain.  Encoding (2)
has a number of advantages:

   (i) if a packet carries both IPv4 and IPv6 routes, the next-hop is only
       encoded once;
  
  (ii) we can use both AEs 1 and 2, which means that we can use the more
       compact encoding for link-local next-hops ;

 (iii) the code is slightly simpler.

Initially, Théo preferred encoding (2), while I was in favour of (1).
Théo rewrote all of his code in style (1), and after looking at his code,
I'm having second thoughts.

Does anyone have any good arguments one way or the other?  Scratch this --
does anyone have any arguments, not necessarily good?

-- Juliusz

---

From: Dave Taht <[email-masked]>
Date: Tue, 31 Mar 2020 11:18:45 -0700

I generally prefer denser encodings.

does the bird implementation do any extensive ae?

On Tue, Mar 31, 2020 at 10:41 AM Juliusz Chroboczek <[email-masked]> wrote:
> _______________________________________________
> Babel-users mailing list
> [email-masked]
> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/babel-users

-- 
Make Music, Not War

Dave Täht
CTO, TekLibre, LLC
http://www.teklibre.com
Tel: 1-831-435-0729

---

From: Toke Høiland-Jørgensen <[email-masked]>
Date: Tue, 31 Mar 2020 21:24:50 +0200

> does anyone have any arguments, not necessarily good?

I think I would lean towards (2). As you say, it's more compact, but
also, I think it makes sense conceptually: A v4-over-v6 *route* is
certainly something new, but a *next hop* itself is not v4-over-v6, it's
just a v6 address; so why would it need its own AE?

-Toke

---

From: Toke Høiland-Jørgensen <[email-masked]>
Date: Tue, 31 Mar 2020 21:25:08 +0200

> does the bird implementation do any extensive ae?

Eh? Does the Bird implementation do what?

-Toke

---

From: David Schinazi <[email-masked]>
Date: Tue, 31 Mar 2020 13:36:56 -0700

I personally value simplicity/correctness over efficiency,
but in this case the semantics of nextHop are straightforward
so I see the risk of confusion as very low, so I'm in favor of
the more compact encoding. Not a strong opinion though.

David

On Tue, Mar 31, 2020 at 12:25 PM Toke Høiland-Jørgensen <toke=
[email-masked]> wrote:

> babel mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/babel
>