summaryrefslogtreecommitdiffstats
path: root/zebra/kernel_netlink.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2022-03-26 00:08:14 +0100
committerDonald Sharp <sharpd@nvidia.com>2022-03-26 00:08:14 +0100
commit2f71996a68f1b36116c4fe74da7b3f65ccca1748 (patch)
tree18492d5d1790a14fbfce56cc68244bbac0ddc349 /zebra/kernel_netlink.c
parentMerge pull request #10677 from mobash-rasool/pimv6-receive-pkt (diff)
downloadfrr-2f71996a68f1b36116c4fe74da7b3f65ccca1748.tar.xz
frr-2f71996a68f1b36116c4fe74da7b3f65ccca1748.zip
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 <sharpd@nvidia.com>
Diffstat (limited to 'zebra/kernel_netlink.c')
-rw-r--r--zebra/kernel_netlink.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/zebra/kernel_netlink.c b/zebra/kernel_netlink.c
index 0dd76e325..35f3274c6 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(