]>
Commit | Line | Data |
---|---|---|
7f57883e DS |
1 | /* |
2 | * EIGRP main header. | |
3 | * Copyright (C) 2013-2014 | |
4 | * Authors: | |
5 | * Donnie Savage | |
6 | * Jan Janovic | |
7 | * Matej Perina | |
8 | * Peter Orsag | |
9 | * Peter Paluch | |
10 | * | |
11 | * This file is part of GNU Zebra. | |
12 | * | |
13 | * GNU Zebra is free software; you can redistribute it and/or modify it | |
14 | * under the terms of the GNU General Public License as published by the | |
15 | * Free Software Foundation; either version 2, or (at your option) any | |
16 | * later version. | |
17 | * | |
18 | * GNU Zebra is distributed in the hope that it will be useful, but | |
19 | * WITHOUT ANY WARRANTY; without even the implied warranty of | |
20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
21 | * General Public License for more details. | |
22 | * | |
896014f4 DL |
23 | * You should have received a copy of the GNU General Public License along |
24 | * with this program; see the file COPYING; if not, write to the Free Software | |
25 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | |
7f57883e DS |
26 | */ |
27 | ||
28 | #ifndef _ZEBRA_EIGRPD_H | |
29 | #define _ZEBRA_EIGRPD_H | |
30 | ||
31 | #include <zebra.h> | |
32 | ||
33 | #include "filter.h" | |
34 | #include "log.h" | |
b4216e2c DL |
35 | #include "memory.h" |
36 | ||
37 | DECLARE_MGROUP(EIGRPD); | |
7f57883e DS |
38 | |
39 | /* Set EIGRP version is "classic" - wide metrics comes next */ | |
40 | #define EIGRP_MAJOR_VERSION 1 | |
41 | #define EIGRP_MINOR_VERSION 2 | |
42 | ||
f9db3455 DS |
43 | #define EIGRP_TLV_32B_VERSION 1 /* Original 32bit scaled metrics */ |
44 | #define EIGRP_TLV_64B_VERSION 2 /* Current 64bit 'wide' metrics */ | |
45 | #define EIGRP_TLV_MTR_VERSION 3 /* MTR TLVs with 32bit metric *Not Supported */ | |
46 | #define EIGRP_TLV_SAF_VERSION 4 /* SAF TLVs with 64bit metric *Not Supported */ | |
47 | ||
48 | struct eigrp_master { | |
49 | /* EIGRP instance. */ | |
50 | struct list *eigrp; | |
51 | ||
52 | /* EIGRP thread master. */ | |
53 | struct thread_master *master; | |
54 | ||
55 | /* Zebra interface list. */ | |
56 | struct list *iflist; | |
57 | ||
58 | /* EIGRP start time. */ | |
59 | time_t start_time; | |
60 | ||
61 | /* Various EIGRP global configuration. */ | |
62 | uint8_t options; | |
63 | ||
64 | #define EIGRP_MASTER_SHUTDOWN (1 << 0) /* deferred-shutdown */ | |
65 | }; | |
66 | ||
7f57883e DS |
67 | /* Extern variables. */ |
68 | extern struct zclient *zclient; | |
69 | extern struct thread_master *master; | |
70 | extern struct eigrp_master *eigrp_om; | |
f77519c8 | 71 | extern struct zebra_privs_t eigrpd_privs; |
7f57883e DS |
72 | |
73 | /* Prototypes */ | |
d62a17ae | 74 | extern void eigrp_master_init(void); |
75 | extern void eigrp_terminate(void); | |
f9db3455 DS |
76 | extern void eigrp_finish_final(struct eigrp *eigrp); |
77 | extern void eigrp_finish(struct eigrp *eigrp); | |
e9449961 DS |
78 | extern struct eigrp *eigrp_get(uint16_t as, vrf_id_t vrf_id); |
79 | extern struct eigrp *eigrp_lookup(vrf_id_t vrf_id); | |
f9db3455 | 80 | extern void eigrp_router_id_update(struct eigrp *eigrp); |
7f57883e DS |
81 | |
82 | #endif /* _ZEBRA_EIGRPD_H */ |