diff mbox series

[iproute2,2/2] tc: m_action: fix parsing of TCA_EXT_WARN_MSG by using different enum

Message ID 20230314070841.1533755-1-liuhangbin@gmail.com (mailing list archive)
State Changes Requested
Delegated to: Stephen Hemminger
Headers show
Series None | expand

Commit Message

Hangbin Liu March 14, 2023, 7:08 a.m. UTC
We can't use TCA_EXT_WARN_MSG directly in tc action as it's using different
enum with filter. Let's use a new TCA_ACT_EXT_WARN_MSG for tc action
specifically.

Fixes: 6035995665b7 ("tc: add new attr TCA_EXT_WARN_MSG")
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
---
 include/uapi/linux/rtnetlink.h | 1 +
 tc/m_action.c                  | 7 ++++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

Comments

Davide Caratti March 14, 2023, 9:22 a.m. UTC | #1
On Tue, Mar 14, 2023 at 03:08:41PM +0800, Hangbin Liu wrote:
> We can't use TCA_EXT_WARN_MSG directly in tc action as it's using different
> enum with filter. Let's use a new TCA_ACT_EXT_WARN_MSG for tc action
> specifically.
> 
> Fixes: 6035995665b7 ("tc: add new attr TCA_EXT_WARN_MSG")
> Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>

Reported-and-tested-by: Davide Caratti <dcaratti@redhat.com>

thanks!
diff mbox series

Patch

diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h
index 217b25b9..f598c78a 100644
--- a/include/uapi/linux/rtnetlink.h
+++ b/include/uapi/linux/rtnetlink.h
@@ -787,6 +787,7 @@  enum {
 	TCA_ROOT_FLAGS,
 	TCA_ROOT_COUNT,
 	TCA_ROOT_TIME_DELTA, /* in msecs */
+	TCA_ACT_EXT_WARN_MSG,
 	__TCA_ROOT_MAX,
 #define	TCA_ROOT_MAX (__TCA_ROOT_MAX - 1)
 };
diff --git a/tc/m_action.c b/tc/m_action.c
index 0400132c..f99d1170 100644
--- a/tc/m_action.c
+++ b/tc/m_action.c
@@ -586,7 +586,12 @@  int print_action(struct nlmsghdr *n, void *arg)
 
 	open_json_object(NULL);
 	tc_dump_action(fp, tb[TCA_ACT_TAB], tot_acts ? *tot_acts:0, false);
-	print_ext_msg(tb);
+
+	if (tb[TCA_ACT_EXT_WARN_MSG]) {
+		print_string(PRINT_ANY, "warn", "%s", rta_getattr_str(tb[TCA_ACT_EXT_WARN_MSG]));
+		print_nl();
+	}
+
 	close_json_object();
 
 	return 0;