From: Vlad Buslov <vladbu@nvidia.com>
To: dsahern@gmail.com, stephen@networkplumber.org
Cc: netdev@vger.kernel.org, davem@davemloft.net, jhs@mojatatu.com,
xiyou.wangcong@gmail.com, jiri@resnulli.us, ivecera@redhat.com,
Vlad Buslov <vladbu@mellanox.com>, Jiri Pirko <jiri@mellanox.com>
Subject: [PATCH iproute2-next v2 1/2] tc: skip actions that don't have options attribute when printing
Date: Wed, 30 Sep 2020 19:59:23 +0300 [thread overview]
Message-ID: <20200930165924.16404-2-vladbu@nvidia.com> (raw)
In-Reply-To: <20200930165924.16404-1-vladbu@nvidia.com>
From: Vlad Buslov <vladbu@mellanox.com>
Modify implementations that return error from action_until->print_aopt()
callback to silently skip actions that don't have their corresponding
TCA_ACT_OPTIONS attribute set (some actions already behave like this). This
is necessary to support terse dump mode in following patch in the series.
Signed-off-by: Vlad Buslov <vladbu@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
---
tc/m_bpf.c | 2 +-
tc/m_connmark.c | 2 +-
tc/m_csum.c | 2 +-
tc/m_ct.c | 2 +-
tc/m_ctinfo.c | 2 +-
tc/m_gact.c | 2 +-
tc/m_ife.c | 2 +-
tc/m_ipt.c | 2 +-
tc/m_mirred.c | 2 +-
tc/m_mpls.c | 2 +-
tc/m_nat.c | 2 +-
tc/m_pedit.c | 2 +-
tc/m_sample.c | 2 +-
tc/m_simple.c | 2 +-
tc/m_skbedit.c | 2 +-
tc/m_skbmod.c | 2 +-
tc/m_tunnel_key.c | 2 +-
tc/m_vlan.c | 2 +-
tc/m_xt.c | 2 +-
tc/m_xt_old.c | 2 +-
20 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/tc/m_bpf.c b/tc/m_bpf.c
index e8d704b557f9..6b231cb3d7b0 100644
--- a/tc/m_bpf.c
+++ b/tc/m_bpf.c
@@ -162,7 +162,7 @@ static int bpf_print_opt(struct action_util *au, FILE *f, struct rtattr *arg)
int d_ok = 0;
if (arg == NULL)
- return -1;
+ return 0;
parse_rtattr_nested(tb, TCA_ACT_BPF_MAX, arg);
diff --git a/tc/m_connmark.c b/tc/m_connmark.c
index 4b2dc4e25ef8..38546c75b30c 100644
--- a/tc/m_connmark.c
+++ b/tc/m_connmark.c
@@ -111,7 +111,7 @@ static int print_connmark(struct action_util *au, FILE *f, struct rtattr *arg)
struct tc_connmark *ci;
if (arg == NULL)
- return -1;
+ return 0;
parse_rtattr_nested(tb, TCA_CONNMARK_MAX, arg);
if (tb[TCA_CONNMARK_PARMS] == NULL) {
diff --git a/tc/m_csum.c b/tc/m_csum.c
index afbee9c8de0f..347e5e90e967 100644
--- a/tc/m_csum.c
+++ b/tc/m_csum.c
@@ -167,7 +167,7 @@ print_csum(struct action_util *au, FILE *f, struct rtattr *arg)
int uflag_count = 0;
if (arg == NULL)
- return -1;
+ return 0;
parse_rtattr_nested(tb, TCA_CSUM_MAX, arg);
diff --git a/tc/m_ct.c b/tc/m_ct.c
index 70d186e859f4..20cc9c8a3102 100644
--- a/tc/m_ct.c
+++ b/tc/m_ct.c
@@ -444,7 +444,7 @@ static int print_ct(struct action_util *au, FILE *f, struct rtattr *arg)
int ct_action = 0;
if (arg == NULL)
- return -1;
+ return 0;
parse_rtattr_nested(tb, TCA_CT_MAX, arg);
if (tb[TCA_CT_PARMS] == NULL) {
diff --git a/tc/m_ctinfo.c b/tc/m_ctinfo.c
index e5c1b43642a7..5475fe4d43da 100644
--- a/tc/m_ctinfo.c
+++ b/tc/m_ctinfo.c
@@ -189,7 +189,7 @@ static int print_ctinfo(struct action_util *au, FILE *f, struct rtattr *arg)
struct tc_ctinfo *ci;
if (arg == NULL)
- return -1;
+ return 0;
parse_rtattr_nested(tb, TCA_CTINFO_MAX, arg);
if (!tb[TCA_CTINFO_ACT]) {
diff --git a/tc/m_gact.c b/tc/m_gact.c
index 33f326f823d1..2722e9b805f7 100644
--- a/tc/m_gact.c
+++ b/tc/m_gact.c
@@ -172,7 +172,7 @@ print_gact(struct action_util *au, FILE *f, struct rtattr *arg)
struct rtattr *tb[TCA_GACT_MAX + 1];
if (arg == NULL)
- return -1;
+ return 0;
parse_rtattr_nested(tb, TCA_GACT_MAX, arg);
diff --git a/tc/m_ife.c b/tc/m_ife.c
index 6a85e087ede1..2491ddb861c2 100644
--- a/tc/m_ife.c
+++ b/tc/m_ife.c
@@ -228,7 +228,7 @@ static int print_ife(struct action_util *au, FILE *f, struct rtattr *arg)
SPRINT_BUF(b2);
if (arg == NULL)
- return -1;
+ return 0;
parse_rtattr_nested(tb, TCA_IFE_MAX, arg);
diff --git a/tc/m_ipt.c b/tc/m_ipt.c
index cc95eab7fefb..046b310e64ab 100644
--- a/tc/m_ipt.c
+++ b/tc/m_ipt.c
@@ -433,7 +433,7 @@ print_ipt(struct action_util *au, FILE * f, struct rtattr *arg)
__u32 hook;
if (arg == NULL)
- return -1;
+ return 0;
lib_dir = getenv("IPTABLES_LIB_DIR");
if (!lib_dir)
diff --git a/tc/m_mirred.c b/tc/m_mirred.c
index d2bdf4074a73..7c6351865788 100644
--- a/tc/m_mirred.c
+++ b/tc/m_mirred.c
@@ -282,7 +282,7 @@ print_mirred(struct action_util *au, FILE *f, struct rtattr *arg)
const char *dev;
if (arg == NULL)
- return -1;
+ return 0;
parse_rtattr_nested(tb, TCA_MIRRED_MAX, arg);
diff --git a/tc/m_mpls.c b/tc/m_mpls.c
index 3d5d9b25fbf6..1a3bfdda104b 100644
--- a/tc/m_mpls.c
+++ b/tc/m_mpls.c
@@ -198,7 +198,7 @@ static int print_mpls(struct action_util *au, FILE *f, struct rtattr *arg)
__u32 val;
if (!arg)
- return -1;
+ return 0;
parse_rtattr_nested(tb, TCA_MPLS_MAX, arg);
diff --git a/tc/m_nat.c b/tc/m_nat.c
index 56e8f47cdefd..63de71014efd 100644
--- a/tc/m_nat.c
+++ b/tc/m_nat.c
@@ -147,7 +147,7 @@ print_nat(struct action_util *au, FILE * f, struct rtattr *arg)
int len;
if (arg == NULL)
- return -1;
+ return 0;
parse_rtattr_nested(tb, TCA_NAT_MAX, arg);
diff --git a/tc/m_pedit.c b/tc/m_pedit.c
index 51dcf10930e8..ec71fcf9922e 100644
--- a/tc/m_pedit.c
+++ b/tc/m_pedit.c
@@ -746,7 +746,7 @@ static int print_pedit(struct action_util *au, FILE *f, struct rtattr *arg)
int err;
if (arg == NULL)
- return -1;
+ return 0;
parse_rtattr_nested(tb, TCA_PEDIT_MAX, arg);
diff --git a/tc/m_sample.c b/tc/m_sample.c
index 4a30513a6247..e2467a93444a 100644
--- a/tc/m_sample.c
+++ b/tc/m_sample.c
@@ -144,7 +144,7 @@ static int print_sample(struct action_util *au, FILE *f, struct rtattr *arg)
struct tc_sample *p;
if (arg == NULL)
- return -1;
+ return 0;
parse_rtattr_nested(tb, TCA_SAMPLE_MAX, arg);
diff --git a/tc/m_simple.c b/tc/m_simple.c
index 70897d6b7c13..bc86be27cbcc 100644
--- a/tc/m_simple.c
+++ b/tc/m_simple.c
@@ -166,7 +166,7 @@ static int print_simple(struct action_util *au, FILE *f, struct rtattr *arg)
char *simpdata;
if (arg == NULL)
- return -1;
+ return 0;
parse_rtattr_nested(tb, TCA_DEF_MAX, arg);
diff --git a/tc/m_skbedit.c b/tc/m_skbedit.c
index 9afe2f0c049d..37625c5ab067 100644
--- a/tc/m_skbedit.c
+++ b/tc/m_skbedit.c
@@ -199,7 +199,7 @@ static int print_skbedit(struct action_util *au, FILE *f, struct rtattr *arg)
struct tc_skbedit *p;
if (arg == NULL)
- return -1;
+ return 0;
parse_rtattr_nested(tb, TCA_SKBEDIT_MAX, arg);
diff --git a/tc/m_skbmod.c b/tc/m_skbmod.c
index d38a5c1921e7..e13d3f16bfcb 100644
--- a/tc/m_skbmod.c
+++ b/tc/m_skbmod.c
@@ -169,7 +169,7 @@ static int print_skbmod(struct action_util *au, FILE *f, struct rtattr *arg)
SPRINT_BUF(b2);
if (arg == NULL)
- return -1;
+ return 0;
parse_rtattr_nested(tb, TCA_SKBMOD_MAX, arg);
diff --git a/tc/m_tunnel_key.c b/tc/m_tunnel_key.c
index bfec90724d72..f700f6d86c82 100644
--- a/tc/m_tunnel_key.c
+++ b/tc/m_tunnel_key.c
@@ -671,7 +671,7 @@ static int print_tunnel_key(struct action_util *au, FILE *f, struct rtattr *arg)
struct tc_tunnel_key *parm;
if (!arg)
- return -1;
+ return 0;
parse_rtattr_nested(tb, TCA_TUNNEL_KEY_MAX, arg);
diff --git a/tc/m_vlan.c b/tc/m_vlan.c
index 1096ba0fbf12..afc9b475ae0a 100644
--- a/tc/m_vlan.c
+++ b/tc/m_vlan.c
@@ -183,7 +183,7 @@ static int print_vlan(struct action_util *au, FILE *f, struct rtattr *arg)
struct tc_vlan *parm;
if (arg == NULL)
- return -1;
+ return 0;
parse_rtattr_nested(tb, TCA_VLAN_MAX, arg);
diff --git a/tc/m_xt.c b/tc/m_xt.c
index 487ba25ad391..deaf96a26f75 100644
--- a/tc/m_xt.c
+++ b/tc/m_xt.c
@@ -320,7 +320,7 @@ print_ipt(struct action_util *au, FILE *f, struct rtattr *arg)
__u32 hook;
if (arg == NULL)
- return -1;
+ return 0;
/* copy tcipt_globals because .opts will be modified by iptables */
struct xtables_globals tmp_tcipt_globals = tcipt_globals;
diff --git a/tc/m_xt_old.c b/tc/m_xt_old.c
index 6a4509a9982f..db014898590d 100644
--- a/tc/m_xt_old.c
+++ b/tc/m_xt_old.c
@@ -358,7 +358,7 @@ print_ipt(struct action_util *au, FILE * f, struct rtattr *arg)
__u32 hook;
if (arg == NULL)
- return -1;
+ return 0;
set_lib_dir();
--
2.21.0
next prev parent reply other threads:[~2020-09-30 17:00 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-30 16:59 [PATCH iproute2-next v2 0/2] Implement filter terse dump mode support Vlad Buslov
2020-09-30 16:59 ` Vlad Buslov [this message]
2020-09-30 16:59 ` [PATCH iproute2-next v2 2/2] tc: implement support for terse dump Vlad Buslov
2020-10-08 1:40 ` David Ahern
2020-10-08 12:58 ` Jamal Hadi Salim
2020-10-08 15:34 ` Vlad Buslov
2020-10-09 12:03 ` Jamal Hadi Salim
2020-10-09 12:15 ` Vlad Buslov
2020-10-09 12:45 ` Jamal Hadi Salim
2020-10-09 16:38 ` Vlad Buslov
2020-10-13 2:05 ` David Ahern
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200930165924.16404-2-vladbu@nvidia.com \
--to=vladbu@nvidia.com \
--cc=davem@davemloft.net \
--cc=dsahern@gmail.com \
--cc=ivecera@redhat.com \
--cc=jhs@mojatatu.com \
--cc=jiri@mellanox.com \
--cc=jiri@resnulli.us \
--cc=netdev@vger.kernel.org \
--cc=stephen@networkplumber.org \
--cc=vladbu@mellanox.com \
--cc=xiyou.wangcong@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).