From c5344534ff71e026b29c6905c9737e658efdd515 Mon Sep 17 00:00:00 2001 From: Daniel Walton Date: Wed, 16 Mar 2016 20:56:15 +0000 Subject: [PATCH] quagga: Netlink error message following Notification send Signed-off-by: Daniel Walton Reviewed-by: Vivek Venkatraman Ticket: CM-9501 --- zebra/rt_netlink.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c index e6c726a93f..0ec4498276 100644 --- a/zebra/rt_netlink.c +++ b/zebra/rt_netlink.c @@ -58,6 +58,9 @@ static const struct message nlmsg_str[] = { {RTM_NEWADDR, "RTM_NEWADDR"}, {RTM_DELADDR, "RTM_DELADDR"}, {RTM_GETADDR, "RTM_GETADDR"}, + {RTM_NEWNEIGH, "RTM_NEWNEIGH"}, + {RTM_DELNEIGH, "RTM_DELNEIGH"}, + {RTM_GETNEIGH, "RTM_GETNEIGH"}, {0, NULL} }; @@ -389,8 +392,13 @@ netlink_parse_info (int (*filter) (struct sockaddr_nl *, struct nlmsghdr *, return 0; } - if (nl == &zns->netlink_cmd - && msg_type == RTM_NEWROUTE && -errnum == ESRCH) + /* We see RTM_DELNEIGH when shutting down an interface with an IPv4 + * link-local. The kernel should have already deleted the neighbor + * so do not log these as an error. + */ + if (msg_type == RTM_DELNEIGH || + (nl == &zns->netlink_cmd && msg_type == RTM_NEWROUTE && + (-errnum == ESRCH || -errnum == ENETUNREACH))) { /* This is known to happen in some situations, don't log * as error. -- 2.39.5