summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolodymyr Bendiuga <volodymyr.bendiuga@westermo.com>2022-05-31 13:08:58 +0200
committerThomas Haller <thaller@redhat.com>2022-07-06 17:04:56 +0200
commit897ec9c9c5be971810b1303b5920aab90d055481 (patch)
treed1dda1b0d318933185812f42e8faa12403c1798a
parent00e46f16a563434d422af467e2126337f54c8d89 (diff)
downloadlibnl-897ec9c9c5be971810b1303b5920aab90d055481.tar.gz
route: act: Allow full set of actions on gact,skbedit,mirred
Signed-off-by: Volodymyr Bendiuga <volodymyr.bendiuga@westermo.com> https://github.com/thom311/libnl/pull/319
-rw-r--r--lib/route/act/gact.c14
-rw-r--r--lib/route/act/mirred.c13
-rw-r--r--lib/route/act/skbedit.c4
3 files changed, 3 insertions, 28 deletions
diff --git a/lib/route/act/gact.c b/lib/route/act/gact.c
index 832d2290..1a4bacb5 100644
--- a/lib/route/act/gact.c
+++ b/lib/route/act/gact.c
@@ -112,19 +112,7 @@ int rtnl_gact_set_action(struct rtnl_act *act, int action)
if (!(u = (struct rtnl_gact *) rtnl_tc_data(TC_CAST(act))))
return -NLE_NOMEM;
- if (action > TC_ACT_SHOT || action < TC_ACT_UNSPEC)
- return -NLE_INVAL;
-
- switch (action) {
- case TC_ACT_UNSPEC:
- case TC_ACT_SHOT:
- u->g_parm.action = action;
- break;
- case TC_ACT_OK:
- case TC_ACT_RECLASSIFY:
- default:
- return NLE_OPNOTSUPP;
- }
+ u->g_parm.action = action;
return 0;
}
diff --git a/lib/route/act/mirred.c b/lib/route/act/mirred.c
index 5d7b089f..01da1346 100644
--- a/lib/route/act/mirred.c
+++ b/lib/route/act/mirred.c
@@ -173,19 +173,8 @@ int rtnl_mirred_set_policy(struct rtnl_act *act, int policy)
if (!(u = (struct rtnl_mirred *) rtnl_tc_data(TC_CAST(act))))
return -NLE_NOMEM;
- if (policy > TC_ACT_REPEAT || policy < TC_ACT_OK)
- return -NLE_INVAL;
+ u->m_parm.action = policy;
- switch (u->m_parm.eaction) {
- case TCA_EGRESS_MIRROR:
- case TCA_EGRESS_REDIR:
- u->m_parm.action = policy;
- break;
- case TCA_INGRESS_REDIR:
- case TCA_INGRESS_MIRROR:
- default:
- return NLE_OPNOTSUPP;
- }
return 0;
}
diff --git a/lib/route/act/skbedit.c b/lib/route/act/skbedit.c
index 566a1a6f..24f57e56 100644
--- a/lib/route/act/skbedit.c
+++ b/lib/route/act/skbedit.c
@@ -152,10 +152,8 @@ int rtnl_skbedit_set_action(struct rtnl_act *act, int action)
if (!(u = (struct rtnl_skbedit *) rtnl_tc_data(TC_CAST(act))))
return -NLE_NOMEM;
- if (action > TC_ACT_REPEAT || action < TC_ACT_UNSPEC)
- return -NLE_INVAL;
-
u->s_parm.action = action;
+
return 0;
}