tipc: Add support for "-s" configuration option
Provide initial support for displaying overall TIPC status/statistics information at runtime. Currently, only version info for the TIPC kernel module is displayed. Signed-off-by: Allan Stephens <allan.stephens@windriver.com> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3aec9cc936
commit
107e7be628
|
@ -74,6 +74,7 @@
|
||||||
#define TIPC_CMD_SHOW_NAME_TABLE 0x0005 /* tx name_tbl_query, rx ultra_string */
|
#define TIPC_CMD_SHOW_NAME_TABLE 0x0005 /* tx name_tbl_query, rx ultra_string */
|
||||||
#define TIPC_CMD_SHOW_PORTS 0x0006 /* tx none, rx ultra_string */
|
#define TIPC_CMD_SHOW_PORTS 0x0006 /* tx none, rx ultra_string */
|
||||||
#define TIPC_CMD_SHOW_LINK_STATS 0x000B /* tx link_name, rx ultra_string */
|
#define TIPC_CMD_SHOW_LINK_STATS 0x000B /* tx link_name, rx ultra_string */
|
||||||
|
#define TIPC_CMD_SHOW_STATS 0x000F /* tx unsigned, rx ultra_string */
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
#define TIPC_CMD_SHOW_PORT_STATS 0x0008 /* tx port_ref, rx ultra_string */
|
#define TIPC_CMD_SHOW_PORT_STATS 0x0008 /* tx port_ref, rx ultra_string */
|
||||||
|
|
|
@ -246,13 +246,48 @@ static void cfg_cmd_event(struct tipc_cmd_msg *msg,
|
||||||
default:
|
default:
|
||||||
rv = tipc_cfg_cmd(msg, data, sz, (u32 *)&msg_sect[1].iov_len, orig);
|
rv = tipc_cfg_cmd(msg, data, sz, (u32 *)&msg_sect[1].iov_len, orig);
|
||||||
}
|
}
|
||||||
exit:
|
exit:
|
||||||
rmsg.result_len = htonl(msg_sect[1].iov_len);
|
rmsg.result_len = htonl(msg_sect[1].iov_len);
|
||||||
rmsg.retval = htonl(rv);
|
rmsg.retval = htonl(rv);
|
||||||
tipc_cfg_respond(msg_sect, 2u, orig);
|
tipc_cfg_respond(msg_sect, 2u, orig);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define MAX_STATS_INFO 2000
|
||||||
|
|
||||||
|
static struct sk_buff *tipc_show_stats(void)
|
||||||
|
{
|
||||||
|
struct sk_buff *buf;
|
||||||
|
struct tlv_desc *rep_tlv;
|
||||||
|
struct print_buf pb;
|
||||||
|
int str_len;
|
||||||
|
u32 value;
|
||||||
|
|
||||||
|
if (!TLV_CHECK(req_tlv_area, req_tlv_space, TIPC_TLV_UNSIGNED))
|
||||||
|
return tipc_cfg_reply_error_string(TIPC_CFG_TLV_ERROR);
|
||||||
|
|
||||||
|
value = ntohl(*(u32 *)TLV_DATA(req_tlv_area));
|
||||||
|
if (value != 0)
|
||||||
|
return tipc_cfg_reply_error_string("unsupported argument");
|
||||||
|
|
||||||
|
buf = tipc_cfg_reply_alloc(TLV_SPACE(MAX_STATS_INFO));
|
||||||
|
if (buf == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
rep_tlv = (struct tlv_desc *)buf->data;
|
||||||
|
tipc_printbuf_init(&pb, (char *)TLV_DATA(rep_tlv), MAX_STATS_INFO);
|
||||||
|
|
||||||
|
tipc_printf(&pb, "TIPC version " TIPC_MOD_VER "\n");
|
||||||
|
|
||||||
|
/* Use additional tipc_printf()'s to return more info ... */
|
||||||
|
|
||||||
|
str_len = tipc_printbuf_validate(&pb);
|
||||||
|
skb_put(buf, TLV_SPACE(str_len));
|
||||||
|
TLV_SET(rep_tlv, TIPC_TLV_ULTRA_STRING, NULL, str_len);
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
static struct sk_buff *cfg_enable_bearer(void)
|
static struct sk_buff *cfg_enable_bearer(void)
|
||||||
{
|
{
|
||||||
struct tipc_bearer_config *args;
|
struct tipc_bearer_config *args;
|
||||||
|
@ -536,6 +571,9 @@ struct sk_buff *tipc_cfg_do_cmd(u32 orig_node, u16 cmd, const void *request_area
|
||||||
case TIPC_CMD_DUMP_LOG:
|
case TIPC_CMD_DUMP_LOG:
|
||||||
rep_tlv_buf = tipc_log_dump();
|
rep_tlv_buf = tipc_log_dump();
|
||||||
break;
|
break;
|
||||||
|
case TIPC_CMD_SHOW_STATS:
|
||||||
|
rep_tlv_buf = tipc_show_stats();
|
||||||
|
break;
|
||||||
case TIPC_CMD_SET_LINK_TOL:
|
case TIPC_CMD_SET_LINK_TOL:
|
||||||
case TIPC_CMD_SET_LINK_PRI:
|
case TIPC_CMD_SET_LINK_PRI:
|
||||||
case TIPC_CMD_SET_LINK_WINDOW:
|
case TIPC_CMD_SET_LINK_WINDOW:
|
||||||
|
|
|
@ -49,8 +49,6 @@
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
|
||||||
#define TIPC_MOD_VER "2.0.0"
|
|
||||||
|
|
||||||
#ifndef CONFIG_TIPC_ZONES
|
#ifndef CONFIG_TIPC_ZONES
|
||||||
#define CONFIG_TIPC_ZONES 3
|
#define CONFIG_TIPC_ZONES 3
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -59,6 +59,9 @@
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/vmalloc.h>
|
#include <linux/vmalloc.h>
|
||||||
|
|
||||||
|
|
||||||
|
#define TIPC_MOD_VER "2.0.0"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TIPC sanity test macros
|
* TIPC sanity test macros
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue