]>
Commit | Line | Data |
---|---|---|
acddc0ed | 1 | // SPDX-License-Identifier: GPL-2.0-or-later |
7f57883e DS |
2 | /* |
3 | * EIGRP main header. | |
4 | * Copyright (C) 2013-2014 | |
5 | * Authors: | |
6 | * Donnie Savage | |
7 | * Jan Janovic | |
8 | * Matej Perina | |
9 | * Peter Orsag | |
10 | * Peter Paluch | |
7f57883e DS |
11 | */ |
12 | ||
13 | #ifndef _ZEBRA_EIGRPD_H | |
14 | #define _ZEBRA_EIGRPD_H | |
15 | ||
16 | #include <zebra.h> | |
17 | ||
18 | #include "filter.h" | |
19 | #include "log.h" | |
b4216e2c DL |
20 | #include "memory.h" |
21 | ||
22 | DECLARE_MGROUP(EIGRPD); | |
7f57883e DS |
23 | |
24 | /* Set EIGRP version is "classic" - wide metrics comes next */ | |
25 | #define EIGRP_MAJOR_VERSION 1 | |
26 | #define EIGRP_MINOR_VERSION 2 | |
27 | ||
f9db3455 DS |
28 | #define EIGRP_TLV_32B_VERSION 1 /* Original 32bit scaled metrics */ |
29 | #define EIGRP_TLV_64B_VERSION 2 /* Current 64bit 'wide' metrics */ | |
30 | #define EIGRP_TLV_MTR_VERSION 3 /* MTR TLVs with 32bit metric *Not Supported */ | |
31 | #define EIGRP_TLV_SAF_VERSION 4 /* SAF TLVs with 64bit metric *Not Supported */ | |
32 | ||
33 | struct eigrp_master { | |
34 | /* EIGRP instance. */ | |
35 | struct list *eigrp; | |
36 | ||
37 | /* EIGRP thread master. */ | |
cd9d0537 | 38 | struct event_loop *master; |
f9db3455 DS |
39 | |
40 | /* Zebra interface list. */ | |
41 | struct list *iflist; | |
42 | ||
43 | /* EIGRP start time. */ | |
44 | time_t start_time; | |
45 | ||
46 | /* Various EIGRP global configuration. */ | |
47 | uint8_t options; | |
48 | ||
49 | #define EIGRP_MASTER_SHUTDOWN (1 << 0) /* deferred-shutdown */ | |
50 | }; | |
51 | ||
7f57883e DS |
52 | /* Extern variables. */ |
53 | extern struct zclient *zclient; | |
cd9d0537 | 54 | extern struct event_loop *master; |
7f57883e | 55 | extern struct eigrp_master *eigrp_om; |
f77519c8 | 56 | extern struct zebra_privs_t eigrpd_privs; |
7f57883e DS |
57 | |
58 | /* Prototypes */ | |
d62a17ae | 59 | extern void eigrp_master_init(void); |
60 | extern void eigrp_terminate(void); | |
f9db3455 DS |
61 | extern void eigrp_finish_final(struct eigrp *eigrp); |
62 | extern void eigrp_finish(struct eigrp *eigrp); | |
e9449961 DS |
63 | extern struct eigrp *eigrp_get(uint16_t as, vrf_id_t vrf_id); |
64 | extern struct eigrp *eigrp_lookup(vrf_id_t vrf_id); | |
f9db3455 | 65 | extern void eigrp_router_id_update(struct eigrp *eigrp); |
7f57883e DS |
66 | |
67 | #endif /* _ZEBRA_EIGRPD_H */ |