]> git.proxmox.com Git - mirror_frr.git/blob - bgpd/rfapi/vnc_export_table.h
doc: Add `show ipv6 rpf X:X::X:X` command to docs
[mirror_frr.git] / bgpd / rfapi / vnc_export_table.h
1 /*
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 *
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
19 */
20
21 #ifndef _QUAGGA_VNC_VNC_EXPORT_TABLE_H_
22 #define _QUAGGA_VNC_VNC_EXPORT_TABLE_H_
23
24 #include "lib/table.h"
25 #include "lib/thread.h"
26 #include "lib/vty.h"
27
28 #include "bgpd/bgpd.h"
29
30 #define VNC_EXPORT_TYPE_BGP 1
31 #define VNC_EXPORT_TYPE_ZEBRA 2
32
33 typedef enum vnc_export_type {
34 EXPORT_TYPE_BGP,
35 EXPORT_TYPE_ZEBRA
36 } vnc_export_type_t;
37
38 struct vnc_export_info {
39 struct vnc_export_info *next;
40 struct agg_node *node;
41 struct peer *peer;
42 uint8_t type;
43 uint8_t subtype;
44 uint32_t lifetime;
45 struct thread *timer;
46 };
47
48 extern struct agg_node *vnc_etn_get(struct bgp *bgp, vnc_export_type_t type,
49 const struct prefix *p);
50
51 extern struct agg_node *vnc_etn_lookup(struct bgp *bgp, vnc_export_type_t type,
52 const struct prefix *p);
53
54 extern struct vnc_export_info *
55 vnc_eti_get(struct bgp *bgp, vnc_export_type_t etype, const struct prefix *p,
56 struct peer *peer, uint8_t type, uint8_t subtype);
57
58 extern void vnc_eti_delete(struct vnc_export_info *goner);
59
60 extern struct vnc_export_info *
61 vnc_eti_checktimer(struct bgp *bgp, vnc_export_type_t etype,
62 const struct prefix *p, struct peer *peer, uint8_t type,
63 uint8_t subtype);
64
65
66 #endif /* _QUAGGA_VNC_VNC_EXPORT_TABLE_H_ */