From: Donald Sharp Date: Fri, 25 Mar 2022 23:08:14 +0000 (-0400) Subject: zebra: Note when the netlink DUMP command is interrupted X-Git-Tag: pim6-testing-20220430~148^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=2f71996a68f1b36116c4fe74da7b3f65ccca1748;p=matthieu%2Ffrr.git zebra: Note when the netlink DUMP command is interrupted There exists code paths in the linux kernel where a dump command will be interrupted( I am not sure I understand what this really means ) and the data sent back from the kernel is wrong or incomplete. At this point in time I am not 100% certain what should be done, but let's start noticing that this has happened so we can formulate a plan or allow the end operator to know bad stuff is a foot at the circle K. Signed-off-by: Donald Sharp --- diff --git a/zebra/kernel_netlink.c b/zebra/kernel_netlink.c index 0dd76e3253..35f3274c65 100644 --- a/zebra/kernel_netlink.c +++ b/zebra/kernel_netlink.c @@ -1016,6 +1016,18 @@ int netlink_parse_info(int (*filter)(struct nlmsghdr *, ns_id_t, int), return err; } + /* + * What is the right thing to do? The kernel + * is telling us that the dump request was interrupted + * and we more than likely are out of luck and have + * missed data from the kernel. At this point in time + * lets just note that this is happening. + */ + if (h->nlmsg_flags & NLM_F_DUMP_INTR) + flog_err( + EC_ZEBRA_NETLINK_BAD_SEQUENCE, + "netlink recvmsg: The Dump request was interrupted"); + /* OK we got netlink message. */ if (IS_ZEBRA_DEBUG_KERNEL) zlog_debug(