1 /*
2  * Defines and structures common to OSPFv2 and OSPFv3
3  * Copyright (C) 1998, 99, 2000 Kunihiro Ishiguro, Toshiaki Takada
4  *
5  * This file is part of GNU Zebra.
6  *
7  * GNU Zebra is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by the
9  * Free Software Foundation; either version 2, or (at your option) any
10  * later version.
11  *
12  * GNU Zebra is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License along
18  * with this program; see the file COPYING; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21 
22 #ifndef _LIBOSPFD_H
23 #define _LIBOSPFD_H
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 /* IP precedence. */
30 #ifndef IPTOS_PREC_INTERNETCONTROL
31 #define IPTOS_PREC_INTERNETCONTROL	0xC0
32 #endif /* IPTOS_PREC_INTERNETCONTROL */
33 
34 /* Default protocol, port number. */
35 #ifndef IPPROTO_OSPFIGP
36 #define IPPROTO_OSPFIGP         89
37 #endif /* IPPROTO_OSPFIGP */
38 
39 /* Architectual Constants */
40 #ifdef DEBUG
41 #define OSPF_LS_REFRESH_TIME                   120
42 #else
43 #define OSPF_LS_REFRESH_TIME                  1800
44 #endif
45 #define OSPF_MIN_LS_INTERVAL                  5000     /* msec */
46 #define OSPF_MIN_LS_ARRIVAL                   1000     /* in milliseconds */
47 #define OSPF_LSA_INITIAL_AGE                     0	/* useful for debug */
48 #define OSPF_LSA_MAXAGE                       3600
49 #define OSPF_CHECK_AGE                         300
50 #define OSPF_LSA_MAXAGE_DIFF                   900
51 #define OSPF_LS_INFINITY                  0xffffff
52 #define OSPF_DEFAULT_DESTINATION        0x00000000      /* 0.0.0.0 */
53 #define OSPF_INITIAL_SEQUENCE_NUMBER    0x80000001U
54 #define OSPF_MAX_SEQUENCE_NUMBER        0x7fffffffU
55 
56 /* OSPF Interface Types */
57 #define OSPF_IFTYPE_NONE		0
58 #define OSPF_IFTYPE_POINTOPOINT		1
59 #define OSPF_IFTYPE_BROADCAST		2
60 #define OSPF_IFTYPE_NBMA		3
61 #define OSPF_IFTYPE_POINTOMULTIPOINT	4
62 #define OSPF_IFTYPE_VIRTUALLINK		5
63 #define OSPF_IFTYPE_LOOPBACK            6
64 #define OSPF_IFTYPE_MAX			7
65 
66 /* OSPF interface default values. */
67 #define OSPF_OUTPUT_COST_DEFAULT           10
68 #define OSPF_OUTPUT_COST_INFINITE	   UINT16_MAX
69 #define OSPF_ROUTER_DEAD_INTERVAL_DEFAULT  40
70 #define OSPF_ROUTER_DEAD_INTERVAL_MINIMAL   1
71 #define OSPF_HELLO_INTERVAL_DEFAULT        10
72 #define OSPF_ROUTER_PRIORITY_DEFAULT        1
73 #define OSPF_RETRANSMIT_INTERVAL_DEFAULT    5
74 #define OSPF_TRANSMIT_DELAY_DEFAULT         1
75 #define OSPF_DEFAULT_BANDWIDTH		 10000	/* Mbps */
76 
77 #define OSPF_DEFAULT_REF_BANDWIDTH	100000  /* Mbps */
78 
79 #define OSPF_POLL_INTERVAL_DEFAULT         60
80 #define OSPF_NEIGHBOR_PRIORITY_DEFAULT      0
81 
82 #define OSPF_MTU_IGNORE_DEFAULT             0
83 #define OSPF_FAST_HELLO_DEFAULT             0
84 
85 #define OSPF_AREA_BACKBONE              0x00000000      /* 0.0.0.0 */
86 #define OSPF_AREA_RANGE_COST_UNSPEC	-1U
87 
88 #define OSPF_AREA_DEFAULT       0
89 #define OSPF_AREA_STUB          1
90 #define OSPF_AREA_NSSA          2
91 #define OSPF_AREA_TYPE_MAX	3
92 
93 /* SPF Throttling timer values. */
94 #define OSPF_SPF_DELAY_DEFAULT              0
95 #define OSPF_SPF_HOLDTIME_DEFAULT           50
96 #define OSPF_SPF_MAX_HOLDTIME_DEFAULT	    5000
97 
98 #define OSPF_LSA_MAXAGE_CHECK_INTERVAL		30
99 #define OSPF_LSA_MAXAGE_REMOVE_DELAY_DEFAULT	60
100 
101 #ifdef __cplusplus
102 }
103 #endif
104 
105 #endif /* _LIBOSPFD_H */
106