tool inclusion category: bugfix bugzilla: https://gitee.com/src-openeuler/iproute/issues/IAVEBI CVE: NA ----------------------------------------------------------------- Signed-off-by: Hao Chen <chenhao418@huawei.com> (cherry picked from commit aeeb796ed97ecf2b275da218b667a47d8d3653e8)
45 lines
1.5 KiB
Diff
45 lines
1.5 KiB
Diff
From 84c036972659ae9a98aac3cef983cc7dd8e14c53 Mon Sep 17 00:00:00 2001
|
|
From: Junxin Chen <chenjunxin1@huawei.com>
|
|
Date: Wed, 19 Oct 2022 09:20:08 +0800
|
|
Subject: [PATCH] dcb: unblock mnl_socket_recvfrom if not message received
|
|
|
|
Currently, the dcb command sinks to the kernel through the netlink
|
|
to obtain information. However, if the kernel fails to obtain infor-
|
|
mation or is not processed, the dcb command is suspended.
|
|
|
|
For example, if we don't implement dcbnl_ops->ieee_getpfc in the
|
|
kernel, the command "dcb pfc show dev eth1" will be stuck and subsequent
|
|
commands cannot be executed.
|
|
|
|
This patch adds the NLM_F_ACK flag to the netlink in mnlu_msg_prepare
|
|
to ensure that the kernel responds to user requests.
|
|
|
|
After the problem is solved, the execution result is as follows:
|
|
$ dcb pfc show dev eth1
|
|
Attribute not found: Success
|
|
|
|
Fixes: 67033d1c1c8a ("Add skeleton of a new tool, dcb")
|
|
Signed-off-by: Junxin Chen <chenjunxin1@huawei.com>
|
|
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
|
|
---
|
|
dcb/dcb.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/dcb/dcb.c b/dcb/dcb.c
|
|
index 8d75ab0..391fd95 100644
|
|
--- a/dcb/dcb.c
|
|
+++ b/dcb/dcb.c
|
|
@@ -156,7 +156,8 @@ static struct nlmsghdr *dcb_prepare(struct dcb *dcb, const char *dev,
|
|
};
|
|
struct nlmsghdr *nlh;
|
|
|
|
- nlh = mnlu_msg_prepare(dcb->buf, nlmsg_type, NLM_F_REQUEST, &dcbm, sizeof(dcbm));
|
|
+ nlh = mnlu_msg_prepare(dcb->buf, nlmsg_type, NLM_F_REQUEST | NLM_F_ACK,
|
|
+ &dcbm, sizeof(dcbm));
|
|
mnl_attr_put_strz(nlh, DCB_ATTR_IFNAME, dev);
|
|
return nlh;
|
|
}
|
|
--
|
|
2.7.4
|
|
|