[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