plist.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /*
  2. * Prefix list functions.
  3. * Copyright (C) 1999 Kunihiro Ishiguro
  4. *
  5. * This file is part of GNU Zebra.
  6. *
  7. * GNU Zebra is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License as published
  9. * by the Free Software Foundation; either version 2, or (at your
  10. * option) any later version.
  11. *
  12. * GNU Zebra is distributed in the hope that it will be useful, but
  13. * WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License
  18. * along with GNU Zebra; see the file COPYING. If not, write to the
  19. * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  20. * Boston, MA 02111-1307, USA.
  21. */
  22. #ifndef _QUAGGA_PLIST_H
  23. #define _QUAGGA_PLIST_H
  24. enum prefix_list_type
  25. {
  26. PREFIX_DENY,
  27. PREFIX_PERMIT,
  28. };
  29. struct prefix_list;
  30. struct orf_prefix
  31. {
  32. u_int32_t seq;
  33. u_char ge;
  34. u_char le;
  35. struct prefix p;
  36. };
  37. /* Prototypes. */
  38. extern void prefix_list_init (void);
  39. extern void prefix_list_reset (void);
  40. extern void prefix_list_add_hook (void (*func) (struct prefix_list *));
  41. extern void prefix_list_delete_hook (void (*func) (struct prefix_list *));
  42. extern const char *prefix_list_name (struct prefix_list *);
  43. extern struct prefix_list *prefix_list_lookup (afi_t, const char *);
  44. extern enum prefix_list_type prefix_list_apply (struct prefix_list *, void *);
  45. extern struct prefix_list *prefix_bgp_orf_lookup (afi_t, const char *);
  46. extern struct stream * prefix_bgp_orf_entry (struct stream *,
  47. struct prefix_list *,
  48. u_char, u_char, u_char);
  49. extern int prefix_bgp_orf_set (char *, afi_t, struct orf_prefix *, int, int);
  50. extern void prefix_bgp_orf_remove_all (afi_t, char *);
  51. extern int prefix_bgp_show_prefix_list (struct vty *, afi_t, char *);
  52. #endif /* _QUAGGA_PLIST_H */