> -----Original Message-----
> From: Jon Maloy [mailto:jon.ma...@ericsson.com]
> Sent: Wednesday, 08 June, 2016 15:46
> To: Parthasarathy Bhuvaragan; tipc-discussion@lists.sourceforge.net;
> ma...@donjonn.com; Ying Xue; Richard Alpe
> Subject: Re: [tipc-discussion] [PATCH iproute2 v3 07/10] tipc: add link 
> monitor
> summary
> 
> 
> 
> > -----Original Message-----
> > From: Parthasarathy Bhuvaragan
> > Sent: Thursday, 02 June, 2016 10:10
> > To: tipc-discussion@lists.sourceforge.net; Jon Maloy; ma...@donjonn.com;
> Ying
> > Xue; Richard Alpe
> > Subject: [PATCH iproute2 v3 07/10] tipc: add link monitor summary
> >
> > The monitor summary command prints the basic attributes
> > specific to the local node.
> > A sample usage is shown below:
> > $ tipc link monitor summary
> >
> > bearer eth:data0
> >     table 8
> 
> I suspect you mean "table generation" here? Then you should spell it out. If 
> it for
> some reason has to be one single word, call the entry "generation", as just
> "table" gives no useful information at all.
> 
> >     members 8
> 
> "local domain members" ?
> 
> ///jon
> 
> >     state active

"algorithm"  "full-mesh"/"overlapping-ring" ??

///jon

> >
> > bearer eth:data1
> >     table 8
> >     members 8
> >     state active
> >
> > $ tipc link monitor summary -h
> > Usage: tipc monitor summary
> >
> > Signed-off-by: Parthasarathy Bhuvaragan
> > <parthasarathy.bhuvara...@ericsson.com>
> > ---
> >  include/linux/tipc_netlink.h | 25 ++++++++++++++++++++++++
> >  tipc/link.c                  | 45
> +++++++++++++++++++++++++++++++++++++++++++-
> >  2 files changed, 69 insertions(+), 1 deletion(-)
> >
> > diff --git a/include/linux/tipc_netlink.h b/include/linux/tipc_netlink.h
> > index d07c6ec76062..5f3f6d09fb79 100644
> > --- a/include/linux/tipc_netlink.h
> > +++ b/include/linux/tipc_netlink.h
> > @@ -58,6 +58,7 @@ enum {
> >     TIPC_NL_NAME_TABLE_GET,
> >     TIPC_NL_MON_SET,
> >     TIPC_NL_MON_GET,
> > +   TIPC_NL_MON_PEER_GET,
> >
> >     __TIPC_NL_CMD_MAX,
> >     TIPC_NL_CMD_MAX = __TIPC_NL_CMD_MAX - 1
> > @@ -75,6 +76,7 @@ enum {
> >     TIPC_NLA_NET,                   /* nest */
> >     TIPC_NLA_NAME_TABLE,            /* nest */
> >     TIPC_NLA_MON,                   /* nest */
> > +   TIPC_NLA_MON_PEER,              /* nest */
> >
> >     __TIPC_NLA_MAX,
> >     TIPC_NLA_MAX = __TIPC_NLA_MAX - 1
> > @@ -173,6 +175,11 @@ enum {
> >  enum {
> >     TIPC_NLA_MON_UNSPEC,
> >     TIPC_NLA_MON_ACTIVATION_THRESHOLD,      /* u32 */
> > +   TIPC_NLA_MON_REF,                       /* u32 */
> > +   TIPC_NLA_MON_ACTIVE,                    /* flag */
> > +   TIPC_NLA_MON_BEARER_NAME,               /* string */
> > +   TIPC_NLA_MON_PEERCNT,                   /* u32 */
> > +   TIPC_NLA_MON_LISTGEN,                   /* u32 */
> >
> >     __TIPC_NLA_MON_MAX,
> >     TIPC_NLA_MON_MAX = __TIPC_NLA_MON_MAX - 1
> > @@ -194,6 +201,24 @@ enum {
> >     TIPC_NLA_PUBL_MAX = __TIPC_NLA_PUBL_MAX - 1
> >  };
> >
> > +/* Monitor peer info */
> > +enum {
> > +   TIPC_NLA_MON_PEER_UNSPEC,
> > +
> > +   TIPC_NLA_MON_PEER_ADDR,                 /* u32 */
> > +   TIPC_NLA_MON_PEER_DOMGEN,               /* u32 */
> > +   TIPC_NLA_MON_PEER_APPLIED,              /* u32 */
> > +   TIPC_NLA_MON_PEER_UPMAP,                /* u64 */
> > +   TIPC_NLA_MON_PEER_MEMBERS,              /* tlv */
> > +   TIPC_NLA_MON_PEER_UP,                   /* flag */
> > +   TIPC_NLA_MON_PEER_HEAD,                 /* flag */
> > +   TIPC_NLA_MON_PEER_LOCAL,                /* flag */
> > +   TIPC_NLA_MON_PEER_PAD,                  /* flag */
> > +
> > +   __TIPC_NLA_MON_PEER_MAX,
> > +   TIPC_NLA_MON_PEER_MAX = __TIPC_NLA_MON_PEER_MAX - 1
> > +};
> > +
> >  /* Nest, connection info */
> >  enum {
> >     TIPC_NLA_CON_UNSPEC,
> > diff --git a/tipc/link.c b/tipc/link.c
> > index a09444912515..46a25b314311 100644
> > --- a/tipc/link.c
> > +++ b/tipc/link.c
> > @@ -515,6 +515,47 @@ static int cmd_link_mon_set_prop(struct nlmsghdr
> *nlh,
> > const struct cmd *cmd,
> >     return msg_doit(nlh, NULL, NULL);
> >  }
> >
> > +static int link_mon_summary_cb(const struct nlmsghdr *nlh, void *data)
> > +{
> > +   struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
> > +   struct nlattr *info[TIPC_NLA_MAX + 1] = {};
> > +   struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {};
> > +
> > +   mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
> > +   if (!info[TIPC_NLA_MON])
> > +           return MNL_CB_ERROR;
> > +
> > +   mnl_attr_parse_nested(info[TIPC_NLA_MON], parse_attrs, attrs);
> > +
> > +   printf("\nbearer %s\n",
> > +           mnl_attr_get_str(attrs[TIPC_NLA_MON_BEARER_NAME]));
> > +
> > +   printf("    table %u\n    members %u\n    state %s\n",
> > +           mnl_attr_get_u32(attrs[TIPC_NLA_MON_LISTGEN]),
> > +           mnl_attr_get_u32(attrs[TIPC_NLA_MON_PEERCNT]),
> > +           attrs[TIPC_NLA_MON_ACTIVE] ? "active" : "inactive");
> > +
> > +   return MNL_CB_OK;
> > +}
> > +
> > +static int cmd_link_mon_summary(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 monitor summary\n", cmdl->argv[0]);
> > +           return -EINVAL;
> > +   }
> > +
> > +   if (!(nlh = msg_init(buf, TIPC_NL_MON_GET))) {
> > +           fprintf(stderr, "error, message initialisation failed\n");
> > +           return -1;
> > +   }
> > +
> > +   return msg_dumpit(nlh, link_mon_summary_cb, NULL);
> > +}
> > +
> >  static void cmd_link_mon_set_help(struct cmdl *cmdl)
> >  {
> >     fprintf(stderr, "Usage: %s monitor set PPROPERTY\n\n"
> > @@ -592,7 +633,8 @@ static void cmd_link_mon_help(struct cmdl *cmdl)
> >             "Usage: %s montior COMMAND [ARGS] ...\n\n"
> >             "COMMANDS\n"
> >             " set                   - Set monitor properties\n"
> > -           " get                   - Get monitor properties\n",
> > +           " get                   - Get monitor properties\n"
> > +           " summary               - Show local node monitor summary\n",
> >             cmdl->argv[0]);
> >  }
> >
> > @@ -602,6 +644,7 @@ static int cmd_link_mon(struct nlmsghdr *nlh, const
> struct
> > cmd *cmd, struct cmdl
> >     const struct cmd cmds[] = {
> >             { "set",        cmd_link_mon_set,       cmd_link_mon_set_help },
> >             { "get",        cmd_link_mon_get,       cmd_link_mon_get_help },
> > +           { "summary",    cmd_link_mon_summary,   NULL },
> >             { NULL }
> >     };
> >
> > --
> > 2.1.4
> 
> 
> ------------------------------------------------------------------------------
> What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
> patterns at an interface-level. Reveals which users, apps, and protocols are
> consuming the most bandwidth. Provides multi-vendor support for NetFlow,
> J-Flow, sFlow and other flows. Make informed decisions using capacity
> planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
> _______________________________________________
> tipc-discussion mailing list
> tipc-discussion@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/tipc-discussion

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
tipc-discussion mailing list
tipc-discussion@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tipc-discussion

Reply via email to