Same comment as in the kernel patch: parsing and argument checking should
be done better here.

Signed-off-by: Marcelo Ricardo Leitner <mleit...@redhat.com>
---
 include/uapi/linux/tc_act/tc_ct.h | 1 +
 tc/m_ct.c                         | 7 ++++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/include/uapi/linux/tc_act/tc_ct.h 
b/include/uapi/linux/tc_act/tc_ct.h
index 
009e53ee83fb3125bc5c4ca86954af3bf6a0287a..636f435b86e006aa36034f86c65fd5c220ca8a13
 100644
--- a/include/uapi/linux/tc_act/tc_ct.h
+++ b/include/uapi/linux/tc_act/tc_ct.h
@@ -26,6 +26,7 @@ enum {
 enum {
        TC_CT_COMMIT,
        TC_CT_FORCE,
+       TC_CT_CLEAR,
        __TC_CT_MAX
 };
 #define TC_CT_MAX (__TC_CT_MAX - 1)
diff --git a/tc/m_ct.c b/tc/m_ct.c
index 
c3c1a66848ae52c4522ac7e07822febf2b52e5f1..0221fc666a84dc3df73eff97beca997b9b11a9f0
 100644
--- a/tc/m_ct.c
+++ b/tc/m_ct.c
@@ -27,7 +27,7 @@ static void
 explain(void)
 {
        fprintf(stderr,
-               "Usage: ct [mark <mark>] [zone <zone>] [label <label>] [chain 
<chain>] [commit [force]]\n"
+               "Usage: ct [mark <mark>] [zone <zone>] [label <label>] [chain 
<chain>] [commit [force]] [clear]\n"
                "where:\n");
 }
 
@@ -239,6 +239,11 @@ out:
                flags |= BIT(TC_CT_FORCE);
                goto again;
        }
+       if (!matches(*argv, "clear")) {
+               NEXT_ARG_FWD();
+               flags |= BIT(TC_CT_CLEAR);
+               goto again;
+       }
 /*     if (!matches(*argv, "state")) {
                NEXT_ARG();
                ct_parse_u8(*argv,
-- 
2.20.1

Reply via email to