static int cmd_link_stat_show(struct nlmsghdr *nlh, const struct cmd *cmd, struct cmdl *cmdl, void *data) { char *link = NULL; char buf[MNL_SOCKET_BUFFER_SIZE]; struct opt *opt; struct opt opts[] = { { "link", OPT_KEYVAL, NULL }, { NULL } }; int err = 0; if (help_flag) { (cmd->help)(cmdl); return -EINVAL; } nlh = msg_init(buf, TIPC_NL_LINK_GET); if (!nlh) { fprintf(stderr, "error, message initialisation failed\n"); return -1; } if (parse_opts(opts, cmdl) < 0) return -EINVAL; opt = get_opt(opts, "link"); if (opt) link = opt->val; new_json_obj(json); err = msg_dumpit(nlh, link_stat_show_cb, link); delete_json_obj(); return err; }
static int cmd_node_list(struct nlmsghdr *nlh, const struct cmd *cmd, struct cmdl *cmdl, void *data) { char buf[MNL_SOCKET_BUFFER_SIZE]; if (help_flag) { fprintf(stderr, "Usage: %s node list\n", cmdl->argv[0]); return -EINVAL; } if (!(nlh = msg_init(buf, TIPC_NL_NODE_GET))) { fprintf(stderr, "error, message initialisation failed\n"); return -1; } return msg_dumpit(nlh, node_list_cb, NULL); }
static int cmd_node_get_netid(struct nlmsghdr *nlh, const struct cmd *cmd, struct cmdl *cmdl, void *data) { char buf[MNL_SOCKET_BUFFER_SIZE]; if (help_flag) { (cmd->help)(cmdl); return -EINVAL; } if (!(nlh = msg_init(buf, TIPC_NL_NET_GET))) { fprintf(stderr, "error, message initialisation failed\n"); return -1; } return msg_dumpit(nlh, netid_get_cb, NULL); }
static int cmd_link_mon_list(struct nlmsghdr *nlh, const struct cmd *cmd, struct cmdl *cmdl, void *data) { char buf[MNL_SOCKET_BUFFER_SIZE]; char bname[TIPC_MAX_BEARER_NAME] = {0}; struct opt opts[] = { { "media", OPT_KEYVAL, NULL }, { "device", OPT_KEYVAL, NULL }, { "name", OPT_KEYVAL, NULL }, { NULL } }; struct tipc_sup_media sup_media[] = { { "udp", "name", cmd_link_mon_list_udp_help}, { "eth", "device", cmd_link_mon_list_l2_help }, { "ib", "device", cmd_link_mon_list_l2_help }, { NULL, }, }; int err; if (parse_opts(opts, cmdl) < 0) return -EINVAL; if (get_opt(opts, "media")) { err = cmd_get_unique_bearer_name(cmd, cmdl, opts, bname, sup_media); if (err) return err; } if (help_flag) { cmd->help(cmdl); return -EINVAL; } nlh = msg_init(buf, TIPC_NL_MON_GET); if (!nlh) { fprintf(stderr, "error, message initialisation failed\n"); return -1; } new_json_obj(json); err = msg_dumpit(nlh, link_mon_list_cb, bname); delete_json_obj(); return err; }
static int cmd_nametable_show(struct nlmsghdr *nlh, const struct cmd *cmd, struct cmdl *cmdl, void *data) { int iteration = 0; char buf[MNL_SOCKET_BUFFER_SIZE]; if (help_flag) { fprintf(stderr, "Usage: %s nametable show\n", cmdl->argv[0]); return -EINVAL; } if (!(nlh = msg_init(buf, TIPC_NL_NAME_TABLE_GET))) { fprintf(stderr, "error, message initialisation failed\n"); return -1; } return msg_dumpit(nlh, nametable_show_cb, &iteration); }
static int link_mon_peer_list(uint32_t mon_ref) { struct nlmsghdr *nlh; char buf[MNL_SOCKET_BUFFER_SIZE]; struct nlattr *nest; int err = 0; nlh = msg_init(buf, TIPC_NL_MON_PEER_GET); if (!nlh) { fprintf(stderr, "error, message initialisation failed\n"); return -1; } nest = mnl_attr_nest_start(nlh, TIPC_NLA_MON); mnl_attr_put_u32(nlh, TIPC_NLA_MON_REF, mon_ref); mnl_attr_nest_end(nlh, nest); err = msg_dumpit(nlh, link_mon_peer_list_cb, NULL); return err; }
static int cmd_link_mon_summary(struct nlmsghdr *nlh, const struct cmd *cmd, struct cmdl *cmdl, void *data) { char buf[MNL_SOCKET_BUFFER_SIZE]; int err = 0; if (help_flag) { fprintf(stderr, "Usage: %s monitor summary\n", cmdl->argv[0]); return -EINVAL; } nlh = msg_init(buf, TIPC_NL_MON_GET); if (!nlh) { fprintf(stderr, "error, message initialisation failed\n"); return -1; } new_json_obj(json); err = msg_dumpit(nlh, link_mon_summary_cb, NULL); delete_json_obj(); return err; }