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

Reply via email to