[PATCH v2 0/2] Add the Babel routing protocol to Bird

Toke Høiland-Jørgensen toke at toke.dk
Thu Jan 14 23:24:57 CET 2016


This is the updated patch to add the Babel protocol to Bird. It is updated quite
a bit compared to the previous version. Specifically:

- Split up wire serialisation/deserialisation into a separate part from the
  semantic handling of TLVs. There's now a separate internal representation of
  the TLVs in host byte order. These are queued for handling and transmission
  and only serialised/deserialised at read/write from the wire. The
  get/put functions from unaligned.h are used to ensure alignment.

- Reworked handling of route propagation to the core. Babel now keeps
  separate selected_in and selected_out entries for each prefix and lets
  the core pick which route to propagate out.

- IPv4 routes are explicitly ignored in the handler instead of the
  parser.

- Entries are timestamped and triggered updates only propagate changed
  entries.

- TX failures are handled and transmission of the TLV queue is resumed
  when the socket is ready to transmit again.

- Added reconfiguration support and cli show* support (based on the
  rip-new RIP implementation).

- Added documentation of more functions and user-facing documentation.

- The code has been rearranged to have packet handling code in packet.c
  and the semantic handlers in babel.c. Also, a bunch of code style
  changes and other adjustments based on the detailed comments from the
  last submission.

I split this up in two commits, where the first one adds formatting of
64-bit router IDs to bvnsprintf() (which is technically a stand-alone
change) and the other adds the Babel protocol.

Toke Høiland-Jørgensen (2):
  Teach bvsnprintf() to print 64-bit router IDs.
  Add the Babel protocol.

 configure.in         |    3 +
 doc/bird.sgml        |   91 +++
 lib/bitops.h         |    3 +-
 lib/ip.h             |    5 +
 lib/printf.c         |   31 +-
 nest/proto.c         |    3 +
 nest/protocol.h      |    2 +-
 nest/route.h         |   11 +-
 proto/Doc            |    1 +
 proto/babel/Doc      |    2 +
 proto/babel/Makefile |    5 +
 proto/babel/babel.c  | 1905 ++++++++++++++++++++++++++++++++++++++++++++++++++
 proto/babel/babel.h  |  348 +++++++++
 proto/babel/config.Y |  127 ++++
 proto/babel/packet.c |  863 +++++++++++++++++++++++
 proto/babel/packet.h |  127 ++++
 sysdep/autoconf.h.in |    1 +
 17 files changed, 3518 insertions(+), 10 deletions(-)
 create mode 100644 proto/babel/Doc
 create mode 100644 proto/babel/Makefile
 create mode 100644 proto/babel/babel.c
 create mode 100644 proto/babel/babel.h
 create mode 100644 proto/babel/config.Y
 create mode 100644 proto/babel/packet.c
 create mode 100644 proto/babel/packet.h

-- 
2.6.4



More information about the Bird-users mailing list