ip: Add IFLA_EVENT output to ip monitor
Add IFLA_EVENT output so that event types can be viewed with 'monitor' command. This gives a little more information for why a given message was received. Signed-off-by: Vladislav Yasevich <vyasevic@redhat.com>
This commit is contained in:
parent
aa883d86c0
commit
735a52ceda
|
|
@ -737,6 +737,26 @@ int print_linkinfo_brief(const struct sockaddr_nl *who,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *link_events[] = {
|
||||||
|
[IFLA_EVENT_NONE] = "NONE",
|
||||||
|
[IFLA_EVENT_REBOOT] = "REBOOT",
|
||||||
|
[IFLA_EVENT_FEATURES] = "FEATURE CHANGE",
|
||||||
|
[IFLA_EVENT_BONDING_FAILOVER] = "BONDING FAILOVER",
|
||||||
|
[IFLA_EVENT_NOTIFY_PEERS] = "NOTIFY PEERS",
|
||||||
|
[IFLA_EVENT_IGMP_RESEND] = "RESEND IGMP",
|
||||||
|
[IFLA_EVENT_BONDING_OPTIONS] = "BONDING OPTION"
|
||||||
|
};
|
||||||
|
|
||||||
|
static void print_link_event(FILE *f, __u32 event)
|
||||||
|
{
|
||||||
|
if (event >= ARRAY_SIZE(link_events))
|
||||||
|
fprintf(f, "event %d ", event);
|
||||||
|
else {
|
||||||
|
if (event)
|
||||||
|
fprintf(f, "event %s ", link_events[event]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int print_linkinfo(const struct sockaddr_nl *who,
|
int print_linkinfo(const struct sockaddr_nl *who,
|
||||||
struct nlmsghdr *n, void *arg)
|
struct nlmsghdr *n, void *arg)
|
||||||
{
|
{
|
||||||
|
|
@ -842,6 +862,9 @@ int print_linkinfo(const struct sockaddr_nl *who,
|
||||||
if (filter.showqueue)
|
if (filter.showqueue)
|
||||||
print_queuelen(fp, tb);
|
print_queuelen(fp, tb);
|
||||||
|
|
||||||
|
if (tb[IFLA_EVENT])
|
||||||
|
print_link_event(fp, rta_getattr_u32(tb[IFLA_EVENT]));
|
||||||
|
|
||||||
if (!filter.family || filter.family == AF_PACKET || show_details) {
|
if (!filter.family || filter.family == AF_PACKET || show_details) {
|
||||||
SPRINT_BUF(b1);
|
SPRINT_BUF(b1);
|
||||||
fprintf(fp, "%s", _SL_);
|
fprintf(fp, "%s", _SL_);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue