[Babel-users] IPv4 over IPv6

Juliusz Chroboczek jch at irif.fr
Tue Mar 31 18:41:41 BST 2020


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



More information about the Babel-users mailing list