Annotation of embedaddon/quagga/ospf6d/ospf6_lsdb.h, revision 1.1.1.2
1.1 misho 1: /*
2: * Copyright (C) 2003 Yasuhiro Ohara
3: *
4: * This file is part of GNU Zebra.
5: *
6: * GNU Zebra is free software; you can redistribute it and/or modify it
7: * under the terms of the GNU General Public License as published by the
8: * Free Software Foundation; either version 2, or (at your option) any
9: * later version.
10: *
11: * GNU Zebra is distributed in the hope that it will be useful, but
12: * WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * General Public License for more details.
15: *
16: * You should have received a copy of the GNU General Public License
17: * along with GNU Zebra; see the file COPYING. If not, write to the
18: * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19: * Boston, MA 02111-1307, USA.
20: */
21:
22: #ifndef OSPF6_LSDB_H
23: #define OSPF6_LSDB_H
24:
25: #include "prefix.h"
26: #include "table.h"
27:
28: struct ospf6_lsdb
29: {
30: void *data; /* data structure that holds this lsdb */
31: struct route_table *table;
32: u_int32_t count;
33: void (*hook_add) (struct ospf6_lsa *);
34: void (*hook_remove) (struct ospf6_lsa *);
35: };
36:
37: /* Function Prototypes */
38: extern struct ospf6_lsdb *ospf6_lsdb_create (void *data);
39: extern void ospf6_lsdb_delete (struct ospf6_lsdb *lsdb);
40:
41: extern struct ospf6_lsa *ospf6_lsdb_lookup (u_int16_t type, u_int32_t id,
42: u_int32_t adv_router,
43: struct ospf6_lsdb *lsdb);
44: extern struct ospf6_lsa *ospf6_lsdb_lookup_next (u_int16_t type, u_int32_t id,
45: u_int32_t adv_router,
46: struct ospf6_lsdb *lsdb);
47:
48: extern void ospf6_lsdb_add (struct ospf6_lsa *lsa, struct ospf6_lsdb *lsdb);
49: extern void ospf6_lsdb_remove (struct ospf6_lsa *lsa, struct ospf6_lsdb *lsdb);
50:
51: extern struct ospf6_lsa *ospf6_lsdb_head (struct ospf6_lsdb *lsdb);
52: extern struct ospf6_lsa *ospf6_lsdb_next (struct ospf6_lsa *lsa);
53:
54: extern struct ospf6_lsa *ospf6_lsdb_type_router_head (u_int16_t type,
55: u_int32_t adv_router,
56: struct ospf6_lsdb *lsdb);
57: extern struct ospf6_lsa *ospf6_lsdb_type_router_next (u_int16_t type,
58: u_int32_t adv_router,
59: struct ospf6_lsa *lsa);
60:
61: extern struct ospf6_lsa *ospf6_lsdb_type_head (u_int16_t type,
62: struct ospf6_lsdb *lsdb);
63: extern struct ospf6_lsa *ospf6_lsdb_type_next (u_int16_t type,
64: struct ospf6_lsa *lsa);
65:
66: extern void ospf6_lsdb_remove_all (struct ospf6_lsdb *lsdb);
1.1.1.2 ! misho 67: extern void ospf6_lsdb_lsa_unlock (struct ospf6_lsa *lsa);
1.1 misho 68:
1.1.1.2 ! misho 69: enum ospf_lsdb_show_level {
! 70: OSPF6_LSDB_SHOW_LEVEL_NORMAL = 0,
! 71: OSPF6_LSDB_SHOW_LEVEL_DETAIL,
! 72: OSPF6_LSDB_SHOW_LEVEL_INTERNAL,
! 73: OSPF6_LSDB_SHOW_LEVEL_DUMP,
! 74: };
1.1 misho 75:
1.1.1.2 ! misho 76: extern void ospf6_lsdb_show (struct vty *vty,
! 77: enum ospf_lsdb_show_level level, u_int16_t *type,
1.1 misho 78: u_int32_t *id, u_int32_t *adv_router,
79: struct ospf6_lsdb *lsdb);
80:
81: extern u_int32_t ospf6_new_ls_id (u_int16_t type, u_int32_t adv_router,
82: struct ospf6_lsdb *lsdb);
83: extern u_int32_t ospf6_new_ls_seqnum (u_int16_t type, u_int32_t id,
84: u_int32_t adv_router,
85: struct ospf6_lsdb *lsdb);
1.1.1.2 ! misho 86: extern int ospf6_lsdb_maxage_remover (struct ospf6_lsdb *lsdb);
1.1 misho 87:
88: #endif /* OSPF6_LSDB_H */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>