mirror of
https://git.proxmox.com/git/mirror_iproute2
synced 2026-01-28 01:25:36 +00:00
iproute2: ndm states should be handled as flags
(Logical change 1.108)
This commit is contained in:
parent
80354aa911
commit
435ac6b8b5
43
ip/ipneigh.c
43
ip/ipneigh.c
@ -86,33 +86,6 @@ int nud_state_a2n(unsigned *state, char *arg)
|
||||
return 0;
|
||||
}
|
||||
|
||||
char * nud_state_n2a(__u8 state, char *buf, int len)
|
||||
{
|
||||
switch (state) {
|
||||
case NUD_NONE:
|
||||
return "none";
|
||||
case NUD_INCOMPLETE:
|
||||
return "incomplete";
|
||||
case NUD_REACHABLE:
|
||||
return "reachable";
|
||||
case NUD_STALE:
|
||||
return "stale";
|
||||
case NUD_DELAY:
|
||||
return "delay";
|
||||
case NUD_PROBE:
|
||||
return "probe";
|
||||
case NUD_FAILED:
|
||||
return "failed";
|
||||
case NUD_NOARP:
|
||||
return "noarp";
|
||||
case NUD_PERMANENT:
|
||||
return "permanent";
|
||||
default:
|
||||
snprintf(buf, len, "%x", state);
|
||||
return buf;
|
||||
}
|
||||
}
|
||||
|
||||
static int flush_update(void)
|
||||
{
|
||||
if (rtnl_send(filter.rth, filter.flushb, filter.flushp) < 0) {
|
||||
@ -316,8 +289,20 @@ int print_neigh(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
|
||||
}
|
||||
|
||||
if (r->ndm_state) {
|
||||
SPRINT_BUF(b1);
|
||||
fprintf(fp, " nud %s", nud_state_n2a(r->ndm_state, b1, sizeof(b1)));
|
||||
int nud = r->ndm_state;
|
||||
fprintf(fp, " ");
|
||||
|
||||
#define PRINT_FLAG(f) if (nud & NUD_##f) { \
|
||||
nud &= ~NUD_##f; fprintf(fp, #f "%s", nud ? "," : ""); }
|
||||
PRINT_FLAG(INCOMPLETE);
|
||||
PRINT_FLAG(REACHABLE);
|
||||
PRINT_FLAG(STALE);
|
||||
PRINT_FLAG(DELAY);
|
||||
PRINT_FLAG(PROBE);
|
||||
PRINT_FLAG(FAILED);
|
||||
PRINT_FLAG(NOARP);
|
||||
PRINT_FLAG(PERMANENT);
|
||||
#undef PRINT_FLAG
|
||||
}
|
||||
fprintf(fp, "\n");
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user