]>
Commit | Line | Data |
---|---|---|
718e3744 | 1 | /* |
508e53e2 | 2 | * Copyright (C) 2003 Yasuhiro Ohara |
718e3744 | 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_TOP_H | |
23 | #define OSPF6_TOP_H | |
24 | ||
25 | #include "routemap.h" | |
26 | ||
508e53e2 | 27 | /* OSPFv3 top level data structure */ |
718e3744 | 28 | struct ospf6 |
29 | { | |
508e53e2 | 30 | /* my router id */ |
31 | u_int32_t router_id; | |
718e3744 | 32 | |
c8a440ec | 33 | /* static router id */ |
34 | u_int32_t router_id_static; | |
35 | ||
718e3744 | 36 | /* start time */ |
37 | struct timeval starttime; | |
38 | ||
718e3744 | 39 | /* list of areas */ |
52dc7ee6 | 40 | struct list *area_list; |
3810e06e | 41 | struct ospf6_area *backbone; |
718e3744 | 42 | |
43 | /* AS scope link state database */ | |
44 | struct ospf6_lsdb *lsdb; | |
6452df09 | 45 | struct ospf6_lsdb *lsdb_self; |
718e3744 | 46 | |
508e53e2 | 47 | struct ospf6_route_table *route_table; |
049207c3 | 48 | struct ospf6_route_table *brouter_table; |
508e53e2 | 49 | |
50 | struct ospf6_route_table *external_table; | |
51 | struct route_table *external_id_table; | |
52 | u_int32_t external_id; | |
53 | ||
718e3744 | 54 | /* redistribute route-map */ |
55 | struct | |
56 | { | |
57 | char *name; | |
58 | struct route_map *map; | |
59 | } rmap[ZEBRA_ROUTE_MAX]; | |
60 | ||
508e53e2 | 61 | u_char flag; |
718e3744 | 62 | |
3d35ca48 DD |
63 | /* Configured flags */ |
64 | u_char config_flags; | |
65 | #define OSPF6_LOG_ADJACENCY_CHANGES (1 << 0) | |
66 | #define OSPF6_LOG_ADJACENCY_DETAIL (1 << 1) | |
67 | ||
3810e06e DD |
68 | /* SPF parameters */ |
69 | unsigned int spf_delay; /* SPF delay time. */ | |
70 | unsigned int spf_holdtime; /* SPF hold time. */ | |
71 | unsigned int spf_max_holdtime; /* SPF maximum-holdtime */ | |
72 | unsigned int spf_hold_multiplier; /* Adaptive multiplier for hold time */ | |
73 | ||
74 | struct timeval ts_spf; /* SPF calculation time stamp. */ | |
75 | struct timeval ts_spf_duration; /* Execution time of last SPF */ | |
76 | ||
77 | /* Threads */ | |
78 | struct thread *t_spf_calc; /* SPF calculation timer. */ | |
79 | struct thread *t_ase_calc; /* ASE calculation timer. */ | |
718e3744 | 80 | struct thread *maxage_remover; |
718e3744 | 81 | }; |
718e3744 | 82 | |
508e53e2 | 83 | #define OSPF6_DISABLED 0x01 |
f41b4a02 | 84 | #define OSPF6_STUB_ROUTER 0x02 |
718e3744 | 85 | |
508e53e2 | 86 | /* global pointer for OSPF top data structure */ |
87 | extern struct ospf6 *ospf6; | |
718e3744 | 88 | |
508e53e2 | 89 | /* prototypes */ |
6ac29a51 | 90 | extern void ospf6_top_init (void); |
ae2254aa | 91 | extern void ospf6_delete (struct ospf6 *o); |
718e3744 | 92 | |
6ac29a51 | 93 | extern void ospf6_maxage_remove (struct ospf6 *o); |
508e53e2 | 94 | |
718e3744 | 95 | #endif /* OSPF6_TOP_H */ |
96 | ||
508e53e2 | 97 |