blob: bd1336f48ac2a7e7688ba85bc807ca594564e8a5 [file] [log] [blame]
paul718e3742002-12-13 20:15:29 +00001/*
hasso508e53e2004-05-18 18:57:06 +00002 * Copyright (C) 2003 Yasuhiro Ohara
paul718e3742002-12-13 20:15:29 +00003 *
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
hasso508e53e2004-05-18 18:57:06 +000027/* OSPFv3 top level data structure */
paul718e3742002-12-13 20:15:29 +000028struct ospf6
29{
hasso508e53e2004-05-18 18:57:06 +000030 /* my router id */
31 u_int32_t router_id;
paul718e3742002-12-13 20:15:29 +000032
33 /* start time */
34 struct timeval starttime;
35
paul718e3742002-12-13 20:15:29 +000036 /* list of areas */
37 list area_list;
38
39 /* AS scope link state database */
40 struct ospf6_lsdb *lsdb;
41
hasso508e53e2004-05-18 18:57:06 +000042 struct ospf6_route_table *route_table;
43 struct ospf6_route_table *asbr_table;
44
45 struct ospf6_route_table *external_table;
46 struct route_table *external_id_table;
47 u_int32_t external_id;
48
paul718e3742002-12-13 20:15:29 +000049 /* redistribute route-map */
50 struct
51 {
52 char *name;
53 struct route_map *map;
54 } rmap[ZEBRA_ROUTE_MAX];
55
hasso508e53e2004-05-18 18:57:06 +000056 u_char flag;
paul718e3742002-12-13 20:15:29 +000057
58 struct thread *maxage_remover;
paul718e3742002-12-13 20:15:29 +000059};
hasso508e53e2004-05-18 18:57:06 +000060
61#define OSPF6_DISABLED 0x01
62
63/* global pointer for OSPF top data structure */
paul718e3742002-12-13 20:15:29 +000064extern struct ospf6 *ospf6;
65
66/* prototypes */
paul718e3742002-12-13 20:15:29 +000067void ospf6_top_init ();
68
hasso508e53e2004-05-18 18:57:06 +000069void ospf6_maxage_remove (struct ospf6 *o);
70
paul718e3742002-12-13 20:15:29 +000071#endif /* OSPF6_TOP_H */
72
hasso508e53e2004-05-18 18:57:06 +000073