]> git.proxmox.com Git - mirror_frr.git/blame - eigrpd/eigrpd.h
tools: improve explanation of 'wrap' options
[mirror_frr.git] / eigrpd / eigrpd.h
CommitLineData
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
37DECLARE_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
48struct 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. */
68extern struct zclient *zclient;
69extern struct thread_master *master;
70extern struct eigrp_master *eigrp_om;
f77519c8 71extern struct zebra_privs_t eigrpd_privs;
7f57883e
DS
72
73/* Prototypes */
d62a17ae 74extern void eigrp_master_init(void);
75extern void eigrp_terminate(void);
f9db3455
DS
76extern void eigrp_finish_final(struct eigrp *eigrp);
77extern void eigrp_finish(struct eigrp *eigrp);
e9449961
DS
78extern struct eigrp *eigrp_get(uint16_t as, vrf_id_t vrf_id);
79extern struct eigrp *eigrp_lookup(vrf_id_t vrf_id);
f9db3455 80extern void eigrp_router_id_update(struct eigrp *eigrp);
7f57883e
DS
81
82#endif /* _ZEBRA_EIGRPD_H */