babeld: add command: "show_babel_running_config".

This commit is contained in:
Matthieu Boutier 2012-01-19 22:36:56 +01:00 committed by Paul Jakma
parent 1f39f466e4
commit d3351d1ebf
7 changed files with 105 additions and 0 deletions

View File

@ -43,6 +43,7 @@ THE SOFTWARE.
#include "command.h"
#include "prefix.h"
#include "vector.h"
#include "distribute.h"
#include "babel_main.h"
#include "util.h"
@ -829,6 +830,24 @@ DEFUN (show_babel_database,
return CMD_SUCCESS;
}
DEFUN (show_babel_running_config,
show_babel_running_config_cmd,
"show babel running-config",
SHOW_STR
IP_STR
"Babel information\n"
"Configuration information\n"
"No attributes\n")
{
vty_out(vty, " -- Babel running configuration --%s", VTY_NEWLINE);
show_babel_main_configuration(vty);
show_babeld_configuration(vty);
vty_out(vty, " -- ditribution lists --%s", VTY_NEWLINE);
config_show_distribute(vty);
return CMD_SUCCESS;
}
void
babel_if_init ()
{
@ -864,6 +883,8 @@ babel_if_init ()
install_element(ENABLE_NODE, &show_babel_neighbour_cmd);
install_element(VIEW_NODE, &show_babel_database_cmd);
install_element(ENABLE_NODE, &show_babel_database_cmd);
install_element(VIEW_NODE, &show_babel_running_config_cmd);
install_element(ENABLE_NODE, &show_babel_running_config_cmd);
}
/* hooks: functions called respectively when struct interface is

View File

@ -527,3 +527,69 @@ babel_save_state_file(void)
close(fd);
}
}
void
show_babel_main_configuration (struct vty *vty)
{
#ifdef NO_DEBUG
vty_out(vty, "No debug.%s", VTY_NEWLINE);
#else
vty_out(vty, "Activated debug options:");
if (debug == BABEL_DEBUG_ALL) {
vty_out(vty, " all%s", VTY_NEWLINE);
} else {
vty_out(vty, "%s%s%s%s%s%s%s%s%s%s%s%s%s",
debug & BABEL_DEBUG_COMMON ? VTY_NEWLINE : "",
debug & BABEL_DEBUG_COMMON ? " common" : "",
debug & BABEL_DEBUG_KERNEL ? VTY_NEWLINE : "",
debug & BABEL_DEBUG_KERNEL ? " kernel" : "",
debug & BABEL_DEBUG_FILTER ? VTY_NEWLINE : "",
debug & BABEL_DEBUG_FILTER ? " filter" : "",
debug & BABEL_DEBUG_TIMEOUT ? VTY_NEWLINE : "",
debug & BABEL_DEBUG_TIMEOUT ? " timeout" : "",
debug & BABEL_DEBUG_IF ? VTY_NEWLINE : "",
debug & BABEL_DEBUG_IF ? " interface": "",
debug & BABEL_DEBUG_ROUTE ? VTY_NEWLINE : "",
debug & BABEL_DEBUG_ROUTE ? " route" : "",
VTY_NEWLINE);
}
#endif
vty_out(vty,
"pid file = %s%s"
"state file = %s%s"
"configuration file = %s%s"
"protocol informations:%s"
" multicast address = %s%s"
" port = %d%s"
"vty address = %s%s"
"vty port = %d%s"
"id = %s%s"
"idle time = %d%s"
"wireless hello interval = %d%s"
"wired hello interval = %d%s"
"idle hello interval = %d%s"
"parasitic = %s%s"
"split-horizon = %s%s"
"allow_duplicates = %s%s"
"kernel_metric = %d%s",
pidfile, VTY_NEWLINE,
state_file, VTY_NEWLINE,
babel_config_file ? babel_config_file : babel_config_default,
VTY_NEWLINE,
VTY_NEWLINE,
format_address(protocol_group), VTY_NEWLINE,
protocol_port, VTY_NEWLINE,
babel_vty_addr ? babel_vty_addr : "None",
VTY_NEWLINE,
babel_vty_port, VTY_NEWLINE,
format_eui64(myid), VTY_NEWLINE,
idle_time, VTY_NEWLINE,
wireless_hello_interval, VTY_NEWLINE,
wired_hello_interval, VTY_NEWLINE,
idle_hello_interval, VTY_NEWLINE,
format_bool(parasitic), VTY_NEWLINE,
format_bool(split_horizon), VTY_NEWLINE,
format_bool(allow_duplicates), VTY_NEWLINE,
kernel_metric, VTY_NEWLINE);
}

View File

@ -36,6 +36,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
#include "vty.h"
extern struct timeval babel_now; /* current time */
extern struct thread_master *master; /* quagga's threads handler */
extern int debug;
@ -52,3 +54,5 @@ extern unsigned char protocol_group[16];
extern int protocol_socket;
extern int kernel_socket;
extern int max_request_hopcount;
void show_babel_main_configuration (struct vty *vty);

View File

@ -764,3 +764,10 @@ redistribute_filter(const unsigned char *prefix, unsigned short plen,
return babel_filter_redistribute(&p, NULL);
}
void
show_babeld_configuration (struct vty *vty)
{
vty_out(vty, "babeld running process %s.%s",
babel_routing_process ? "enable" : "disable", VTY_NEWLINE);
}

View File

@ -41,6 +41,7 @@ THE SOFTWARE.
#define BABEL_BABELD_H
#include <zebra.h>
#include "vty.h"
#define INFINITY ((unsigned short)(~0))
@ -131,6 +132,7 @@ extern int redistribute_filter(const unsigned char *prefix, unsigned short plen,
unsigned int ifindex, int proto);
extern int resize_receive_buffer(int size);
extern void schedule_neighbours_check(int msecs, int override);
extern void show_babeld_configuration (struct vty *vty);
#endif /* BABEL_BABELD_H */

View File

@ -298,6 +298,10 @@ format_eui64(const unsigned char *eui)
return buf[i];
}
const char *format_bool(const int b) {
return b ? "true" : "false";
}
int
parse_address(const char *address, unsigned char *addr_r, int *af_r)
{

View File

@ -111,6 +111,7 @@ unsigned char *mask_prefix(unsigned char *restrict ret,
const char *format_address(const unsigned char *address);
const char *format_prefix(const unsigned char *address, unsigned char prefix);
const char *format_eui64(const unsigned char *eui);
const char *format_bool(const int b);
int parse_address(const char *address, unsigned char *addr_r, int *af_r);
int parse_net(const char *ifp, unsigned char *prefix_r, unsigned char *plen_r,
int *af_r);