]> rtime.felk.cvut.cz Git - lisovros/iproute2_canprio.git/commitdiff
Enable Type Labels For "ip monitor all"
authorVarun Chandramohan <varunc@linux.vnet.ibm.com>
Thu, 12 Mar 2009 08:12:43 +0000 (13:42 +0530)
committerStephen Hemminger <stephen.hemminger@vyatta.com>
Fri, 27 Mar 2009 18:09:04 +0000 (11:09 -0700)
This patch adds prefix lables for "ip monitor all" command to simplfy
understanding of the output.

Signed-off-by: Varun Chandramohan <varunc@linux.vnet.ibm.com>
ip/ipmonitor.c

index a74730e49277510ef1c37556029ff1ec2fe8cd23..baf25a8b97d59036ab36ae4b9babac933ef6ce64 100644 (file)
@@ -25,6 +25,7 @@
 #include "ip_common.h"
 
 static void usage(void) __attribute__((noreturn));
+int prefix_banner;
 
 static void usage(void)
 {
@@ -42,31 +43,45 @@ int accept_msg(const struct sockaddr_nl *who,
                print_timestamp(fp);
 
        if (n->nlmsg_type == RTM_NEWROUTE || n->nlmsg_type == RTM_DELROUTE) {
+               if (prefix_banner)
+                       fprintf(fp, "[ROUTE]");
                print_route(who, n, arg);
                return 0;
        }
        if (n->nlmsg_type == RTM_NEWLINK || n->nlmsg_type == RTM_DELLINK) {
                ll_remember_index(who, n, NULL);
+               if (prefix_banner)
+                       fprintf(fp, "[LINK]");
                print_linkinfo(who, n, arg);
                return 0;
        }
        if (n->nlmsg_type == RTM_NEWADDR || n->nlmsg_type == RTM_DELADDR) {
+               if (prefix_banner)
+                       fprintf(fp, "[ADDR]");
                print_addrinfo(who, n, arg);
                return 0;
        }
        if (n->nlmsg_type == RTM_NEWADDRLABEL || n->nlmsg_type == RTM_DELADDRLABEL) {
+               if (prefix_banner)
+                       fprintf(fp, "[ADDRLABEL]");
                print_addrlabel(who, n, arg);
                return 0;
        }
        if (n->nlmsg_type == RTM_NEWNEIGH || n->nlmsg_type == RTM_DELNEIGH) {
+               if (prefix_banner)
+                       fprintf(fp, "[NEIGH]");
                print_neigh(who, n, arg);
                return 0;
        }
        if (n->nlmsg_type == RTM_NEWPREFIX) {
+               if (prefix_banner)
+                       fprintf(fp, "[PREFIX]");
                print_prefix(who, n, arg);
                return 0;
        }
        if (n->nlmsg_type == RTM_NEWRULE || n->nlmsg_type == RTM_DELRULE) {
+               if (prefix_banner)
+                       fprintf(fp, "[RULE]");
                print_rule(who, n, arg);
                return 0;
        }
@@ -130,6 +145,7 @@ int do_ipmonitor(int argc, char **argv)
                        groups = 0;             
                } else if (strcmp(*argv, "all") == 0) {
                        groups = ~RTMGRP_TC;
+                       prefix_banner=1;
                } else if (matches(*argv, "help") == 0) {
                        usage();
                } else {