From: Nicolas Dichtel Date: Tue, 24 Feb 2015 15:15:00 +0000 (+0100) Subject: ip-monitor: allow to monitor ip rules X-Git-Tag: v4.0.0~34 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2dd5909d9d447ccfb5365007f32152303eea8139;p=thirdparty%2Fiproute2.git ip-monitor: allow to monitor ip rules Now done by default or with 'ip monitor rule'. Signed-off-by: Nicolas Dichtel --- diff --git a/ip/ipmonitor.c b/ip/ipmonitor.c index 5ec8f4181..6b5e66534 100644 --- a/ip/ipmonitor.c +++ b/ip/ipmonitor.c @@ -32,7 +32,7 @@ static void usage(void) fprintf(stderr, "Usage: ip monitor [ all | LISTofOBJECTS ] [ FILE ]" "[ label ] [dev DEVICE]\n"); fprintf(stderr, "LISTofOBJECTS := link | address | route | mroute | prefix |\n"); - fprintf(stderr, " neigh | netconf\n"); + fprintf(stderr, " neigh | netconf | rule\n"); fprintf(stderr, "FILE := file FILENAME\n"); exit(-1); } @@ -150,6 +150,7 @@ int do_ipmonitor(int argc, char **argv) int lprefix=0; int lneigh=0; int lnetconf=0; + int lrule=0; int ifindex=0; groups |= nl_mgrp(RTNLGRP_LINK); @@ -163,6 +164,8 @@ int do_ipmonitor(int argc, char **argv) groups |= nl_mgrp(RTNLGRP_NEIGH); groups |= nl_mgrp(RTNLGRP_IPV4_NETCONF); groups |= nl_mgrp(RTNLGRP_IPV6_NETCONF); + groups |= nl_mgrp(RTNLGRP_IPV4_RULE); + groups |= nl_mgrp(RTNLGRP_IPV6_RULE); rtnl_close(&rth); @@ -193,6 +196,9 @@ int do_ipmonitor(int argc, char **argv) } else if (matches(*argv, "netconf") == 0) { lnetconf = 1; groups = 0; + } else if (matches(*argv, "rule") == 0) { + lrule = 1; + groups = 0; } else if (strcmp(*argv, "all") == 0) { prefix_banner=1; } else if (matches(*argv, "help") == 0) { @@ -249,6 +255,12 @@ int do_ipmonitor(int argc, char **argv) if (!preferred_family || preferred_family == AF_INET6) groups |= nl_mgrp(RTNLGRP_IPV6_NETCONF); } + if (lrule) { + if (!preferred_family || preferred_family == AF_INET) + groups |= nl_mgrp(RTNLGRP_IPV4_RULE); + if (!preferred_family || preferred_family == AF_INET6) + groups |= nl_mgrp(RTNLGRP_IPV6_RULE); + } if (file) { FILE *fp; fp = fopen(file, "r"); diff --git a/man/man8/ip-monitor.8 b/man/man8/ip-monitor.8 index 544b62567..5ce8dc736 100644 --- a/man/man8/ip-monitor.8 +++ b/man/man8/ip-monitor.8 @@ -49,7 +49,7 @@ command is the first in the command line and then the object list follows: is the list of object types that we want to monitor. It may contain .BR link ", " address ", " route ", " mroute ", " prefix ", " -.BR neigh " and " netconf "." +.BR neigh ", " netconf " and " rule "." If no .B file argument is given,