]> git.proxmox.com Git - mirror_frr.git/blob - eigrpd/eigrpd.h
tools: improve explanation of 'wrap' options
[mirror_frr.git] / eigrpd / eigrpd.h
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 *
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
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"
35 #include "memory.h"
36
37 DECLARE_MGROUP(EIGRPD);
38
39 /* Set EIGRP version is "classic" - wide metrics comes next */
40 #define EIGRP_MAJOR_VERSION 1
41 #define EIGRP_MINOR_VERSION 2
42
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
67 /* Extern variables. */
68 extern struct zclient *zclient;
69 extern struct thread_master *master;
70 extern struct eigrp_master *eigrp_om;
71 extern struct zebra_privs_t eigrpd_privs;
72
73 /* Prototypes */
74 extern void eigrp_master_init(void);
75 extern void eigrp_terminate(void);
76 extern void eigrp_finish_final(struct eigrp *eigrp);
77 extern void eigrp_finish(struct eigrp *eigrp);
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);
80 extern void eigrp_router_id_update(struct eigrp *eigrp);
81
82 #endif /* _ZEBRA_EIGRPD_H */