]>
Commit | Line | Data |
---|---|---|
acddc0ed | 1 | // SPDX-License-Identifier: GPL-2.0-or-later |
d62a17ae | 2 | /* |
65efcfce LB |
3 | * |
4 | * Copyright 2009-2016, LabN Consulting, L.L.C. | |
5 | * | |
65efcfce LB |
6 | */ |
7 | ||
8 | #ifndef _QUAGGA_VNC_VNC_EXPORT_TABLE_H_ | |
9 | #define _QUAGGA_VNC_VNC_EXPORT_TABLE_H_ | |
10 | ||
f8b6f499 | 11 | #include "lib/table.h" |
24a58196 | 12 | #include "frrevent.h" |
f8b6f499 | 13 | #include "lib/vty.h" |
65efcfce | 14 | |
f8b6f499 | 15 | #include "bgpd/bgpd.h" |
65efcfce LB |
16 | |
17 | #define VNC_EXPORT_TYPE_BGP 1 | |
18 | #define VNC_EXPORT_TYPE_ZEBRA 2 | |
19 | ||
d62a17ae | 20 | typedef enum vnc_export_type { |
21 | EXPORT_TYPE_BGP, | |
22 | EXPORT_TYPE_ZEBRA | |
65efcfce LB |
23 | } vnc_export_type_t; |
24 | ||
d62a17ae | 25 | struct vnc_export_info { |
26 | struct vnc_export_info *next; | |
fe08ba7e | 27 | struct agg_node *node; |
d62a17ae | 28 | struct peer *peer; |
d7c0a89a QY |
29 | uint8_t type; |
30 | uint8_t subtype; | |
d62a17ae | 31 | uint32_t lifetime; |
e6685141 | 32 | struct event *timer; |
65efcfce LB |
33 | }; |
34 | ||
fe08ba7e | 35 | extern struct agg_node *vnc_etn_get(struct bgp *bgp, vnc_export_type_t type, |
5a1ae2c2 | 36 | const struct prefix *p); |
65efcfce | 37 | |
fe08ba7e | 38 | extern struct agg_node *vnc_etn_lookup(struct bgp *bgp, vnc_export_type_t type, |
5a1ae2c2 | 39 | const struct prefix *p); |
65efcfce | 40 | |
5a1ae2c2 DS |
41 | extern struct vnc_export_info * |
42 | vnc_eti_get(struct bgp *bgp, vnc_export_type_t etype, const struct prefix *p, | |
43 | struct peer *peer, uint8_t type, uint8_t subtype); | |
65efcfce | 44 | |
d62a17ae | 45 | extern void vnc_eti_delete(struct vnc_export_info *goner); |
65efcfce LB |
46 | |
47 | extern struct vnc_export_info * | |
5f040085 DS |
48 | vnc_eti_checktimer(struct bgp *bgp, vnc_export_type_t etype, |
49 | const struct prefix *p, struct peer *peer, uint8_t type, | |
50 | uint8_t subtype); | |
65efcfce LB |
51 | |
52 | ||
53 | #endif /* _QUAGGA_VNC_VNC_EXPORT_TABLE_H_ */ |