Hi,
This patch set is related to the use of protobuf as a
messaging/serialization format. A quick overview of the 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 2 & 3
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.
- Patch 4
Small patch that introduces the notion of a 'development build' --
a build that may use code/features/settings that are not suitable
for deployment.
- Patch 5
[Development build only]
Infrastructure that allows a user to invoke a function within a
daemon from vtysh. This allows some white-box testing in a
realistic setup without requiring the code to be restructured.
- Patch 6
This patch adds test functions that can be used to compare the
encode/decode performance of protobuf and netlink using the 'vty
invoke' functionality added in the previous patch.
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 (6):
Add support for protobuf.
Add protobuf support for FPM.
zebra: optionally use protobuf with FPM
build: support for "development build"
vtysh: support for invoking functions by name
zebra: add developer test functions for FPM code
.gitignore | 3 +
Makefile.am | 2 +-
common.am | 41 +++++
configure.ac | 65 +++++++-
fpm/.gitignore | 15 ++
fpm/Makefile.am | 21 +++
fpm/fpm.h | 38 ++++-
fpm/fpm.proto | 119 +++++++++++++++
fpm/fpm_pb.h | 63 ++++++++
lib/Makefile.am | 2 +-
lib/thread.h | 3 +
lib/vty.c | 4 +
lib/vty_invoke.c | 120 +++++++++++++++
lib/vty_invoke.h | 30 ++++
qpb/.gitignore | 15 ++
qpb/Makefile.am | 20 +++
qpb/README.txt | 1 +
qpb/linear_allocator.h | 207 +++++++++++++++++++++++++
qpb/qpb.h | 372 +++++++++++++++++++++++++++++++++++++++++++++
qpb/qpb.proto | 121 +++++++++++++++
qpb/qpb_allocator.c | 67 ++++++++
qpb/qpb_allocator.h | 113 ++++++++++++++
vtysh/vtysh.c | 78 ++++++++++
zebra/Makefile.am | 14 +-
zebra/main.c | 14 +-
zebra/zebra_fpm.c | 139 ++++++++++++++---
zebra/zebra_fpm.h | 3 +-
zebra/zebra_fpm_dt.c | 275 +++++++++++++++++++++++++++++++++
zebra/zebra_fpm_private.h | 5 +
zebra/zebra_fpm_protobuf.c | 313 ++++++++++++++++++++++++++++++++++++++
30 files changed, 2243 insertions(+), 40 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.h
create mode 100644 lib/vty_invoke.c
create mode 100644 lib/vty_invoke.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.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_dt.c
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