]> git.proxmox.com Git - mirror_frr.git/blob - bgpd/bgp_vty.h
e1109841d2b41c1578c7ccfedfa5f1338087f633
[mirror_frr.git] / bgpd / bgp_vty.h
1 /* BGP VTY interface.
2 * Copyright (C) 1996, 97, 98, 99, 2000 Kunihiro Ishiguro
3 *
4 * This file is part of GNU Zebra.
5 *
6 * GNU Zebra is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; either version 2, or (at your option) any
9 * later version.
10 *
11 * GNU Zebra is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * 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_BGP_VTY_H
22 #define _QUAGGA_BGP_VTY_H
23
24 #include "bgpd/bgpd.h"
25 #include "stream.h"
26 struct bgp;
27
28 #define BGP_INSTANCE_HELP_STR "BGP view\nBGP VRF\nView/VRF name\n"
29 #define BGP_INSTANCE_ALL_HELP_STR "BGP view\nBGP VRF\nAll Views/VRFs\n"
30
31 #define BGP_AFI_CMD_STR "<ipv4|ipv6>"
32 #define BGP_AFI_HELP_STR "Address Family\nAddress Family\n"
33 #define BGP_SAFI_CMD_STR "<unicast|multicast|vpn>"
34 #define BGP_SAFI_HELP_STR \
35 "Address Family modifier\n" \
36 "Address Family modifier\n" \
37 "Address Family modifier\n"
38 #define BGP_AFI_SAFI_CMD_STR BGP_AFI_CMD_STR" "BGP_SAFI_CMD_STR
39 #define BGP_AFI_SAFI_HELP_STR BGP_AFI_HELP_STR BGP_SAFI_HELP_STR
40
41 #define BGP_SAFI_WITH_LABEL_CMD_STR "<unicast|multicast|vpn|labeled-unicast|flowspec>"
42 #define BGP_SAFI_WITH_LABEL_HELP_STR \
43 "Address Family modifier\n" \
44 "Address Family modifier\n" \
45 "Address Family modifier\n" \
46 "Address Family modifier\n" \
47 "Address Family modifier\n"
48
49
50
51 #define SHOW_GR_HEADER \
52 "Codes: GR - Graceful Restart," \
53 " * - Inheriting Global GR Config,\n" \
54 " Restart - GR Mode-Restarting," \
55 " Helper - GR Mode-Helper,\n" \
56 " Disable - GR Mode-Disable.\n\n"
57
58 #define BGP_SHOW_PEER_GR_CAPABILITY( \
59 vty, p, use_json, json) \
60 do { \
61 bgp_show_neighbor_graceful_restart_local_mode( \
62 vty, p, use_json, json); \
63 bgp_show_neighbor_graceful_restart_remote_mode( \
64 vty, p, use_json, json); \
65 bgp_show_neighnor_graceful_restart_rbit( \
66 vty, p, use_json, json); \
67 bgp_show_neighbor_graceful_restart_time( \
68 vty, p, use_json, json); \
69 bgp_show_neighbor_graceful_restart_capability_per_afi_safi(\
70 vty, p, use_json, json); \
71 } while (0)
72
73
74
75 extern void bgp_vty_init(void);
76 extern const char *get_afi_safi_str(afi_t afi, safi_t safi, bool for_json);
77 extern int bgp_get_vty(struct bgp **bgp, as_t *as, const char *name,
78 enum bgp_instance_type inst_type);
79 extern void bgp_config_write_update_delay(struct vty *vty, struct bgp *bgp);
80 extern void bgp_config_write_wpkt_quanta(struct vty *vty, struct bgp *bgp);
81 extern void bgp_config_write_rpkt_quanta(struct vty *vty, struct bgp *bgp);
82 extern void bgp_config_write_listen(struct vty *vty, struct bgp *bgp);
83 extern void bgp_config_write_coalesce_time(struct vty *vty, struct bgp *bgp);
84 extern int bgp_vty_return(struct vty *vty, int ret);
85 extern struct peer *peer_and_group_lookup_vty(struct vty *vty,
86 const char *peer_str);
87
88 extern afi_t bgp_vty_afi_from_str(const char *afi_str);
89
90 extern safi_t bgp_vty_safi_from_str(const char *safi_str);
91
92 extern int argv_find_and_parse_afi(struct cmd_token **argv, int argc,
93 int *index, afi_t *afi);
94
95 extern int argv_find_and_parse_safi(struct cmd_token **argv, int argc,
96 int *index, safi_t *safi);
97
98 extern int bgp_vty_find_and_parse_afi_safi_bgp(struct vty *vty,
99 struct cmd_token **argv,
100 int argc, int *idx, afi_t *afi,
101 safi_t *safi, struct bgp **bgp,
102 bool use_json);
103 extern int bgp_show_summary_vty(struct vty *vty, const char *name, afi_t afi,
104 safi_t safi, bool show_failed, bool use_json);
105
106 #endif /* _QUAGGA_BGP_VTY_H */