]> git.proxmox.com Git - mirror_frr.git/blob - lib/libospf.h
Merge pull request #13649 from donaldsharp/unlock_the_node_or_else
[mirror_frr.git] / lib / libospf.h
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3 * Defines and structures common to OSPFv2 and OSPFv3
4 * Copyright (C) 1998, 99, 2000 Kunihiro Ishiguro, Toshiaki Takada
5 */
6
7 #ifndef _LIBOSPFD_H
8 #define _LIBOSPFD_H
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 /* IP precedence. */
15 #ifndef IPTOS_PREC_INTERNETCONTROL
16 #define IPTOS_PREC_INTERNETCONTROL 0xC0
17 #endif /* IPTOS_PREC_INTERNETCONTROL */
18
19 /* Default protocol, port number. */
20 #ifndef IPPROTO_OSPFIGP
21 #define IPPROTO_OSPFIGP 89
22 #endif /* IPPROTO_OSPFIGP */
23
24 /* Architectural Constants */
25 #ifdef DEBUG
26 #define OSPF_LS_REFRESH_TIME 120
27 #else
28 #define OSPF_LS_REFRESH_TIME 1800
29 #endif
30 #define OSPF_MIN_LS_INTERVAL 5000 /* msec */
31 #define OSPF_MIN_LS_ARRIVAL 1000 /* in milliseconds */
32 #define OSPF_LSA_INITIAL_AGE 0 /* useful for debug */
33 #define OSPF_LSA_MAXAGE 3600
34 #define OSPF_CHECK_AGE 300
35 #define OSPF_LSA_MAXAGE_DIFF 900
36 #define OSPF_LS_INFINITY 0xffffff
37 #define OSPF_DEFAULT_DESTINATION 0x00000000 /* 0.0.0.0 */
38 #define OSPF_INITIAL_SEQUENCE_NUMBER 0x80000001U
39 #define OSPF_MAX_SEQUENCE_NUMBER 0x7fffffffU
40 #define OSPF_INVALID_SEQUENCE_NUMBER 0x80000000U
41
42 /* OSPF Interface Types */
43 #define OSPF_IFTYPE_NONE 0
44 #define OSPF_IFTYPE_POINTOPOINT 1
45 #define OSPF_IFTYPE_BROADCAST 2
46 #define OSPF_IFTYPE_NBMA 3
47 #define OSPF_IFTYPE_POINTOMULTIPOINT 4
48 #define OSPF_IFTYPE_VIRTUALLINK 5
49 #define OSPF_IFTYPE_LOOPBACK 6
50 #define OSPF_IFTYPE_MAX 7
51
52 /* OSPF interface default values. */
53 #define OSPF_OUTPUT_COST_DEFAULT 10
54 #define OSPF_OUTPUT_COST_INFINITE UINT16_MAX
55 #define OSPF_ROUTER_DEAD_INTERVAL_DEFAULT 40
56 #define OSPF_ROUTER_DEAD_INTERVAL_MINIMAL 1
57 #define OSPF_HELLO_INTERVAL_DEFAULT 10
58 #define OSPF_HELLO_DELAY_DEFAULT 10
59 #define OSPF_ROUTER_PRIORITY_DEFAULT 1
60 #define OSPF_RETRANSMIT_INTERVAL_DEFAULT 5
61 #define OSPF_TRANSMIT_DELAY_DEFAULT 1
62 #define OSPF_DEFAULT_BANDWIDTH 10000 /* Mbps */
63
64 #define OSPF_DEFAULT_REF_BANDWIDTH 100000 /* Mbps */
65
66 #define OSPF_POLL_INTERVAL_DEFAULT 60
67 #define OSPF_NEIGHBOR_PRIORITY_DEFAULT 0
68
69 #define OSPF_MTU_IGNORE_DEFAULT 0
70 #define OSPF_FAST_HELLO_DEFAULT 0
71 #define OSPF_P2MP_DELAY_REFLOOD_DEFAULT false
72
73 #define OSPF_AREA_BACKBONE 0x00000000 /* 0.0.0.0 */
74 #define OSPF_AREA_RANGE_COST_UNSPEC -1U
75
76 #define OSPF_AREA_DEFAULT 0
77 #define OSPF_AREA_STUB 1
78 #define OSPF_AREA_NSSA 2
79 #define OSPF_AREA_TYPE_MAX 3
80
81 /* SPF Throttling timer values. */
82 #define OSPF_SPF_DELAY_DEFAULT 0
83 #define OSPF_SPF_HOLDTIME_DEFAULT 50
84 #define OSPF_SPF_MAX_HOLDTIME_DEFAULT 5000
85
86 #define OSPF_LSA_MAXAGE_CHECK_INTERVAL 30
87 #define OSPF_LSA_MAXAGE_REMOVE_DELAY_DEFAULT 60
88
89 #ifdef __cplusplus
90 }
91 #endif
92
93 #endif /* _LIBOSPFD_H */