This is take 3 of a patch set related to the use of protobuf as a messaging/serialization format. My last attempt hit a CI build failure on OpenBSD and OmniOS, hoping this one fares better.
The original patch set is: https://lists.quagga.net/pipermail/quagga-dev/2016-March/014964.html Changes since the above submission: - Fix 'make dist'. - Fix build issues on OpenBSD and OmniOS. - Replace references to 'GNU Zebra' with 'Quagga'. - Remove HAVE_IPV6 ifdefs. - Break out automake warning tweak into a separate patch. - Add some text to documentation comparing protobuf with netlink. - Omit vtysh "invoke" patches. Here is a quick overview of the salient patches: - Patch 1 Infrastructure for using protobuf in quagga. This includes build-related changes, protobuf definitions for common quagga types and a library of routines to convert between quagga and protobuf types. - Patches 3 & 4 These patches modify zebra to optionally use protobuf as the message format over the FPM interface. The netlink format is still supported and remains the default. Note that the code that defines the message format between zebra and FPM is dual-licensed as before (choice between GPLv2 and ISC). For protobuf, this includes the definitions in qpb/qpb.proto and fpm.proto. Please let me know if you have any questions about this work. Thanks, Avneesh Avneesh Sachdev (5): Add support for protobuf. build: turn off automake portability warnings Add protobuf support for FPM. zebra: optionally use protobuf with FPM doc: add blurb on use of protobuf with FPM .gitignore | 3 + Makefile.am | 7 +- common.am | 41 +++++ configure.ac | 53 ++++++- doc/main.texi | 28 +++- fpm/.gitignore | 15 ++ fpm/Makefile.am | 29 ++++ fpm/fpm.h | 38 ++++- fpm/fpm.proto | 119 +++++++++++++++ fpm/fpm_pb.c | 28 ++++ fpm/fpm_pb.h | 63 ++++++++ qpb/.gitignore | 15 ++ qpb/Makefile.am | 30 ++++ qpb/README.txt | 1 + qpb/linear_allocator.h | 207 +++++++++++++++++++++++++ qpb/qpb.c | 29 ++++ qpb/qpb.h | 372 +++++++++++++++++++++++++++++++++++++++++++++ qpb/qpb.proto | 121 +++++++++++++++ qpb/qpb_allocator.c | 67 ++++++++ qpb/qpb_allocator.h | 113 ++++++++++++++ zebra/Makefile.am | 10 +- zebra/main.c | 14 +- zebra/zebra_fpm.c | 139 ++++++++++++++--- zebra/zebra_fpm.h | 3 +- zebra/zebra_fpm_private.h | 5 + zebra/zebra_fpm_protobuf.c | 311 +++++++++++++++++++++++++++++++++++++ 26 files changed, 1817 insertions(+), 44 deletions(-) create mode 100644 common.am create mode 100644 fpm/.gitignore create mode 100644 fpm/Makefile.am create mode 100644 fpm/fpm.proto create mode 100644 fpm/fpm_pb.c create mode 100644 fpm/fpm_pb.h create mode 100644 qpb/.gitignore create mode 100644 qpb/Makefile.am create mode 100644 qpb/README.txt create mode 100644 qpb/linear_allocator.h create mode 100644 qpb/qpb.c create mode 100644 qpb/qpb.h create mode 100644 qpb/qpb.proto create mode 100644 qpb/qpb_allocator.c create mode 100644 qpb/qpb_allocator.h create mode 100644 zebra/zebra_fpm_protobuf.c -- 1.9.1 _______________________________________________ Quagga-dev mailing list [email protected] https://lists.quagga.net/mailman/listinfo/quagga-dev
