fpm_pb.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*
  2. * fpm_pb.h
  3. *
  4. * @copyright Copyright (C) 2016 Sproute Networks, Inc.
  5. *
  6. * @author Avneesh Sachdev <avneesh@sproute.com>
  7. *
  8. * This file is part of Quagga.
  9. *
  10. * Quagga is free software; you can redistribute it and/or modify it
  11. * under the terms of the GNU General Public License as published by the
  12. * Free Software Foundation; either version 2, or (at your option) any
  13. * later version.
  14. *
  15. * Quagga is distributed in the hope that it will be useful, but
  16. * WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  18. * General Public License for more details.
  19. *
  20. * You should have received a copy of the GNU General Public License
  21. * along with Quagga; see the file COPYING. If not, write to the Free
  22. * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  23. * 02111-1307, USA.
  24. */
  25. /*
  26. * Public header file for fpm protobuf definitions.
  27. */
  28. #ifndef _FPM_PB_H
  29. #define _FPM_PB_H
  30. #include "route_types.h"
  31. #include "qpb/qpb.h"
  32. #include "fpm/fpm.pb-c.h"
  33. /*
  34. * fpm__route_key__create
  35. */
  36. #define fpm_route_key_create fpm__route_key__create
  37. static inline Fpm__RouteKey *
  38. fpm__route_key__create (qpb_allocator_t *allocator, struct prefix *prefix)
  39. {
  40. Fpm__RouteKey *key;
  41. key = QPB_ALLOC (allocator, typeof (*key));
  42. if (!key)
  43. {
  44. return NULL;
  45. }
  46. fpm__route_key__init (key);
  47. key->prefix = qpb__l3_prefix__create (allocator, prefix);
  48. if (!key->prefix)
  49. {
  50. return NULL;
  51. }
  52. return key;
  53. }
  54. #endif