* [PATCH iproute2 1/2] Add define for nlmsg_types with timestamp
2015-01-13 18:14 [PATCH iproute2 0/2] Refactoring for monitoring utils Vadim Kochan
@ 2015-01-13 18:14 ` Vadim Kochan
2015-01-13 18:14 ` [PATCH iproute2 2/2] Use one func to print timestamp from nlmsg Vadim Kochan
1 sibling, 0 replies; 3+ messages in thread
From: Vadim Kochan @ 2015-01-13 18:14 UTC (permalink / raw)
To: netdev; +Cc: Vadim Kochan
From: Vadim Kochan <vadim4j@gmail.com>
Add #define for nlmsg_type = 15
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
---
bridge/monitor.c | 4 +---
include/libnetlink.h | 4 ++++
ip/ipmonitor.c | 2 +-
ip/rtmon.c | 2 +-
4 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/bridge/monitor.c b/bridge/monitor.c
index 76e7d47..f00e0a6 100644
--- a/bridge/monitor.c
+++ b/bridge/monitor.c
@@ -74,14 +74,12 @@ static int accept_msg(const struct sockaddr_nl *who,
fprintf(fp, "[MDB]");
return print_mdb(who, n, arg);
- case 15:
+ case NLMSG_TSTAMP:
return show_mark(fp, n);
default:
return 0;
}
-
-
}
int do_monitor(int argc, char **argv)
diff --git a/include/libnetlink.h b/include/libnetlink.h
index de7c85f..d081e54 100644
--- a/include/libnetlink.h
+++ b/include/libnetlink.h
@@ -158,5 +158,9 @@ extern int rtnl_from_file(FILE *, rtnl_filter_t handler,
#define NDTA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ndtmsg))
#endif
+/* User defined nlmsg_type which is used mostly for logging netlink
+ * messages from dump file */
+#define NLMSG_TSTAMP 15
+
#endif /* __LIBNETLINK_H__ */
diff --git a/ip/ipmonitor.c b/ip/ipmonitor.c
index 4708e54..f40daac 100644
--- a/ip/ipmonitor.c
+++ b/ip/ipmonitor.c
@@ -125,7 +125,7 @@ static int accept_msg(const struct sockaddr_nl *who,
print_netconf(who, n, arg);
return 0;
}
- if (n->nlmsg_type == 15) {
+ if (n->nlmsg_type == NLMSG_TSTAMP) {
char *tstr;
time_t secs = ((__u32*)NLMSG_DATA(n))[0];
long usecs = ((__u32*)NLMSG_DATA(n))[1];
diff --git a/ip/rtmon.c b/ip/rtmon.c
index 9227eac..ff685e5 100644
--- a/ip/rtmon.c
+++ b/ip/rtmon.c
@@ -34,7 +34,7 @@ static void write_stamp(FILE *fp)
struct nlmsghdr *n1 = (void*)buf;
struct timeval tv;
- n1->nlmsg_type = 15;
+ n1->nlmsg_type = NLMSG_TSTAMP;
n1->nlmsg_flags = 0;
n1->nlmsg_seq = 0;
n1->nlmsg_pid = 0;
--
2.1.3
^ permalink raw reply related [flat|nested] 3+ messages in thread* [PATCH iproute2 2/2] Use one func to print timestamp from nlmsg
2015-01-13 18:14 [PATCH iproute2 0/2] Refactoring for monitoring utils Vadim Kochan
2015-01-13 18:14 ` [PATCH iproute2 1/2] Add define for nlmsg_types with timestamp Vadim Kochan
@ 2015-01-13 18:14 ` Vadim Kochan
1 sibling, 0 replies; 3+ messages in thread
From: Vadim Kochan @ 2015-01-13 18:14 UTC (permalink / raw)
To: netdev; +Cc: Vadim Kochan
From: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
---
bridge/monitor.c | 14 ++------------
include/utils.h | 2 ++
ip/ipmonitor.c | 7 +------
lib/utils.c | 10 ++++++++++
4 files changed, 15 insertions(+), 18 deletions(-)
diff --git a/bridge/monitor.c b/bridge/monitor.c
index f00e0a6..9e1ed48 100644
--- a/bridge/monitor.c
+++ b/bridge/monitor.c
@@ -35,17 +35,6 @@ static void usage(void)
exit(-1);
}
-static int show_mark(FILE *fp, const struct nlmsghdr *n)
-{
- char *tstr;
- time_t secs = ((__u32*)NLMSG_DATA(n))[0];
- long usecs = ((__u32*)NLMSG_DATA(n))[1];
- tstr = asctime(localtime(&secs));
- tstr[strlen(tstr)-1] = 0;
- fprintf(fp, "Timestamp: %s %lu us\n", tstr, usecs);
- return 0;
-}
-
static int accept_msg(const struct sockaddr_nl *who,
struct nlmsghdr *n, void *arg)
{
@@ -75,7 +64,8 @@ static int accept_msg(const struct sockaddr_nl *who,
return print_mdb(who, n, arg);
case NLMSG_TSTAMP:
- return show_mark(fp, n);
+ print_nlmsg_timestamp(fp, n);
+ return 0;
default:
return 0;
diff --git a/include/utils.h b/include/utils.h
index eecbc39..e1fe7cf 100644
--- a/include/utils.h
+++ b/include/utils.h
@@ -148,6 +148,7 @@ static inline __u32 nl_mgrp(__u32 group)
int print_timestamp(FILE *fp);
+void print_nlmsg_timestamp(FILE *fp, const struct nlmsghdr *n);
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
@@ -160,4 +161,5 @@ struct iplink_req;
int iplink_parse(int argc, char **argv, struct iplink_req *req,
char **name, char **type, char **link, char **dev,
int *group, int *index);
+
#endif /* __UTILS_H__ */
diff --git a/ip/ipmonitor.c b/ip/ipmonitor.c
index f40daac..5ec8f41 100644
--- a/ip/ipmonitor.c
+++ b/ip/ipmonitor.c
@@ -126,12 +126,7 @@ static int accept_msg(const struct sockaddr_nl *who,
return 0;
}
if (n->nlmsg_type == NLMSG_TSTAMP) {
- char *tstr;
- time_t secs = ((__u32*)NLMSG_DATA(n))[0];
- long usecs = ((__u32*)NLMSG_DATA(n))[1];
- tstr = asctime(localtime(&secs));
- tstr[strlen(tstr)-1] = 0;
- fprintf(fp, "Timestamp: %s %lu us\n", tstr, usecs);
+ print_nlmsg_timestamp(fp, n);
return 0;
}
if (n->nlmsg_type != NLMSG_ERROR && n->nlmsg_type != NLMSG_NOOP &&
diff --git a/lib/utils.c b/lib/utils.c
index 64915f3..f65ceaa 100644
--- a/lib/utils.c
+++ b/lib/utils.c
@@ -868,3 +868,13 @@ int inet_get_addr(const char *src, __u32 *dst, struct in6_addr *dst6)
else
return inet_pton(AF_INET, src, dst);
}
+
+void print_nlmsg_timestamp(FILE *fp, const struct nlmsghdr *n)
+{
+ char *tstr;
+ time_t secs = ((__u32*)NLMSG_DATA(n))[0];
+ long usecs = ((__u32*)NLMSG_DATA(n))[1];
+ tstr = asctime(localtime(&secs));
+ tstr[strlen(tstr)-1] = 0;
+ fprintf(fp, "Timestamp: %s %lu us\n", tstr, usecs);
+}
--
2.1.3
^ permalink raw reply related [flat|nested] 3+ messages in thread