]> git.proxmox.com Git - mirror_frr.git/blame - bgpd/rfapi/vnc_export_table.h
*: reindent
[mirror_frr.git] / bgpd / rfapi / vnc_export_table.h
CommitLineData
d62a17ae 1/*
65efcfce
LB
2 *
3 * Copyright 2009-2016, LabN Consulting, L.L.C.
4 *
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
896014f4
DL
16 * You should have received a copy of the GNU General Public License along
17 * with this program; see the file COPYING; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
65efcfce
LB
19 */
20
21#ifndef _QUAGGA_VNC_VNC_EXPORT_TABLE_H_
22#define _QUAGGA_VNC_VNC_EXPORT_TABLE_H_
23
f8b6f499
LB
24#include "lib/table.h"
25#include "lib/thread.h"
26#include "lib/vty.h"
65efcfce 27
f8b6f499 28#include "bgpd/bgpd.h"
65efcfce
LB
29
30#define VNC_EXPORT_TYPE_BGP 1
31#define VNC_EXPORT_TYPE_ZEBRA 2
32
d62a17ae 33typedef enum vnc_export_type {
34 EXPORT_TYPE_BGP,
35 EXPORT_TYPE_ZEBRA
65efcfce
LB
36} vnc_export_type_t;
37
d62a17ae 38struct vnc_export_info {
39 struct vnc_export_info *next;
40 struct route_node *node;
41 struct peer *peer;
42 u_char type;
43 u_char subtype;
44 uint32_t lifetime;
45 struct thread *timer;
65efcfce
LB
46};
47
d62a17ae 48extern struct route_node *vnc_etn_get(struct bgp *bgp, vnc_export_type_t type,
49 struct prefix *p);
65efcfce
LB
50
51extern struct route_node *
d62a17ae 52vnc_etn_lookup(struct bgp *bgp, vnc_export_type_t type, struct prefix *p);
65efcfce 53
d62a17ae 54extern struct vnc_export_info *vnc_eti_get(struct bgp *bgp,
55 vnc_export_type_t etype,
56 struct prefix *p, struct peer *peer,
57 uint8_t type, uint8_t subtype);
65efcfce 58
d62a17ae 59extern void vnc_eti_delete(struct vnc_export_info *goner);
65efcfce
LB
60
61extern struct vnc_export_info *
d62a17ae 62vnc_eti_checktimer(struct bgp *bgp, vnc_export_type_t etype, struct prefix *p,
63 struct peer *peer, uint8_t type, uint8_t subtype);
65efcfce
LB
64
65
66#endif /* _QUAGGA_VNC_VNC_EXPORT_TABLE_H_ */