Annotation of embedaddon/quagga/ospf6d/ospf6_top.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_TOP_H
23: #define OSPF6_TOP_H
24:
25: #include "routemap.h"
26:
27: /* OSPFv3 top level data structure */
28: struct ospf6
29: {
30: /* my router id */
31: u_int32_t router_id;
32:
33: /* static router id */
34: u_int32_t router_id_static;
35:
36: /* start time */
37: struct timeval starttime;
38:
39: /* list of areas */
40: struct list *area_list;
1.1.1.2 ! misho 41: struct ospf6_area *backbone;
1.1 misho 42:
43: /* AS scope link state database */
44: struct ospf6_lsdb *lsdb;
45: struct ospf6_lsdb *lsdb_self;
46:
47: struct ospf6_route_table *route_table;
48: struct ospf6_route_table *brouter_table;
49:
50: struct ospf6_route_table *external_table;
51: struct route_table *external_id_table;
52: u_int32_t external_id;
53:
54: /* redistribute route-map */
55: struct
56: {
57: char *name;
58: struct route_map *map;
59: } rmap[ZEBRA_ROUTE_MAX];
60:
61: u_char flag;
62:
1.1.1.2 ! misho 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:
! 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: unsigned int spf_reason; /* reason bits while scheduling SPF */
! 74:
! 75: struct timeval ts_spf; /* SPF calculation time stamp. */
! 76: struct timeval ts_spf_duration; /* Execution time of last SPF */
! 77: unsigned int last_spf_reason; /* Last SPF reason */
! 78:
! 79: /* Threads */
! 80: struct thread *t_spf_calc; /* SPF calculation timer. */
! 81: struct thread *t_ase_calc; /* ASE calculation timer. */
1.1 misho 82: struct thread *maxage_remover;
1.1.1.2 ! misho 83:
! 84: u_int32_t ref_bandwidth;
1.1 misho 85: };
86:
87: #define OSPF6_DISABLED 0x01
1.1.1.2 ! misho 88: #define OSPF6_STUB_ROUTER 0x02
1.1 misho 89:
90: /* global pointer for OSPF top data structure */
91: extern struct ospf6 *ospf6;
92:
93: /* prototypes */
94: extern void ospf6_top_init (void);
95: extern void ospf6_delete (struct ospf6 *o);
96:
97: extern void ospf6_maxage_remove (struct ospf6 *o);
98:
99: #endif /* OSPF6_TOP_H */
100:
101:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>