]>
git.proxmox.com Git - mirror_frr.git/blob - ospf6d/ospf6_spf.h
2 * Copyright (C) 1999 Yasuhiro Ohara
4 * This file is part of GNU Zebra.
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
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.
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.
30 /* type of this vertex */
33 /* Vertex Identifier */
34 struct prefix_ls vertex_id
;
36 /* Identifier String */
40 struct ospf6_lsa
*lsa
;
42 /* Distance from Root (Cost) */
45 /* Depth of this node */
48 /* nexthops to this node */
49 struct linklist
*nexthop_list
;
51 /* upper nodes in spf tree */
54 /* lower nodes in spf tree */
58 u_char capability_bits
;
60 /* Optional capabilities */
61 u_char opt_capability
[3];
64 #define OSPF6_VERTEX_TYPE_ROUTER 0x01
65 #define OSPF6_VERTEX_TYPE_NETWORK 0x02
69 /* calculation thread */
70 struct thread
*t_spf_calculation
;
72 /* root of this tree */
73 struct ospf6_vertex
*root
;
81 struct timeval runtime_total
;
82 struct timeval runtime_min
;
83 struct timeval runtime_max
;
85 struct timeval updated_time
;
86 struct timeval interval_total
;
87 struct timeval interval_min
;
88 struct timeval interval_max
;
91 int ospf6_spf_calculate_route (void *);
94 ospf6_spf_calculation_schedule (u_int32_t area_id
);
95 struct ospf6_spftree
*ospf6_spftree_create ();
97 ospf6_spf_statistics_show (struct vty
*vty
, struct ospf6_spftree
*spf_tree
);
98 void ospf6_spftree_delete (struct ospf6_spftree
*spf_tree
);
100 void ospf6_spf_database_hook (struct ospf6_lsa
*old
, struct ospf6_lsa
*new);
102 void ospf6_spf_init ();
104 #endif /* OSPF6_SPF_H */