ospf_flood.h 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. * OSPF Flooding -- RFC2328 Section 13.
  3. * Copyright (C) 1999, 2000 Toshiaki Takada
  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 _ZEBRA_OSPF_FLOOD_H
  23. #define _ZEBRA_OSPF_FLOOD_H
  24. extern int ospf_flood (struct ospf *, struct ospf_neighbor *,
  25. struct ospf_lsa *, struct ospf_lsa *);
  26. extern int ospf_flood_through (struct ospf *, struct ospf_neighbor *,
  27. struct ospf_lsa *);
  28. extern int ospf_flood_through_area (struct ospf_area *,
  29. struct ospf_neighbor *,
  30. struct ospf_lsa *);
  31. extern int ospf_flood_through_as (struct ospf *, struct ospf_neighbor *,
  32. struct ospf_lsa *);
  33. extern unsigned long ospf_ls_request_count (struct ospf_neighbor *);
  34. extern int ospf_ls_request_isempty (struct ospf_neighbor *);
  35. extern struct ospf_lsa *ospf_ls_request_new (struct lsa_header *);
  36. extern void ospf_ls_request_free (struct ospf_lsa *);
  37. extern void ospf_ls_request_add (struct ospf_neighbor *, struct ospf_lsa *);
  38. extern void ospf_ls_request_delete (struct ospf_neighbor *,
  39. struct ospf_lsa *);
  40. extern void ospf_ls_request_delete_all (struct ospf_neighbor *);
  41. extern struct ospf_lsa *ospf_ls_request_lookup (struct ospf_neighbor *,
  42. struct ospf_lsa *);
  43. extern unsigned long ospf_ls_retransmit_count (struct ospf_neighbor *);
  44. extern unsigned long ospf_ls_retransmit_count_self (struct ospf_neighbor *,
  45. int);
  46. extern int ospf_ls_retransmit_isempty (struct ospf_neighbor *);
  47. extern void ospf_ls_retransmit_add (struct ospf_neighbor *,
  48. struct ospf_lsa *);
  49. extern void ospf_ls_retransmit_delete (struct ospf_neighbor *,
  50. struct ospf_lsa *);
  51. extern void ospf_ls_retransmit_clear (struct ospf_neighbor *);
  52. extern struct ospf_lsa *ospf_ls_retransmit_lookup (struct ospf_neighbor *,
  53. struct ospf_lsa *);
  54. extern void ospf_ls_retransmit_delete_nbr_area (struct ospf_area *,
  55. struct ospf_lsa *);
  56. extern void ospf_ls_retransmit_delete_nbr_as (struct ospf *,
  57. struct ospf_lsa *);
  58. extern void ospf_ls_retransmit_add_nbr_all (struct ospf_interface *,
  59. struct ospf_lsa *);
  60. extern void ospf_flood_lsa_area (struct ospf_lsa *, struct ospf_area *);
  61. extern void ospf_flood_lsa_as (struct ospf_lsa *);
  62. extern void ospf_lsa_flush_area (struct ospf_lsa *, struct ospf_area *);
  63. extern void ospf_lsa_flush_as (struct ospf *, struct ospf_lsa *);
  64. extern void ospf_lsa_flush (struct ospf *, struct ospf_lsa *);
  65. extern struct external_info *ospf_external_info_check (struct ospf_lsa *);
  66. extern void ospf_lsdb_init (struct ospf_lsdb *);
  67. #endif /* _ZEBRA_OSPF_FLOOD_H */