]> git.proxmox.com Git - mirror_frr.git/blame - ospf6d/ospf6_top.h
ospf6d: add "auto-cost reference-bandwidth" command
[mirror_frr.git] / ospf6d / ospf6_top.h
CommitLineData
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 28struct 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 */
a0edf674 73 unsigned int spf_reason; /* reason bits while scheduling SPF */
3810e06e
DD
74
75 struct timeval ts_spf; /* SPF calculation time stamp. */
76 struct timeval ts_spf_duration; /* Execution time of last SPF */
a0edf674 77 unsigned int last_spf_reason; /* Last SPF reason */
3810e06e
DD
78
79 /* Threads */
80 struct thread *t_spf_calc; /* SPF calculation timer. */
81 struct thread *t_ase_calc; /* ASE calculation timer. */
718e3744 82 struct thread *maxage_remover;
fd500689
VB
83
84 u_int32_t ref_bandwidth;
718e3744 85};
718e3744 86
508e53e2 87#define OSPF6_DISABLED 0x01
f41b4a02 88#define OSPF6_STUB_ROUTER 0x02
718e3744 89
508e53e2 90/* global pointer for OSPF top data structure */
91extern struct ospf6 *ospf6;
718e3744 92
508e53e2 93/* prototypes */
6ac29a51 94extern void ospf6_top_init (void);
ae2254aa 95extern void ospf6_delete (struct ospf6 *o);
718e3744 96
6ac29a51 97extern void ospf6_maxage_remove (struct ospf6 *o);
508e53e2 98
718e3744 99#endif /* OSPF6_TOP_H */
100
508e53e2 101