net: sched: add couple of goto_chain helpers
Add helpers to find out if a gact instance is goto_chain termination action and to get chain index. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
45b62742df
commit
e457d86ada
@ -15,7 +15,8 @@ struct tcf_gact {
|
|||||||
};
|
};
|
||||||
#define to_gact(a) ((struct tcf_gact *)a)
|
#define to_gact(a) ((struct tcf_gact *)a)
|
||||||
|
|
||||||
static inline bool __is_tcf_gact_act(const struct tc_action *a, int act)
|
static inline bool __is_tcf_gact_act(const struct tc_action *a, int act,
|
||||||
|
bool is_ext)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_NET_CLS_ACT
|
#ifdef CONFIG_NET_CLS_ACT
|
||||||
struct tcf_gact *gact;
|
struct tcf_gact *gact;
|
||||||
@ -24,7 +25,8 @@ static inline bool __is_tcf_gact_act(const struct tc_action *a, int act)
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
gact = to_gact(a);
|
gact = to_gact(a);
|
||||||
if (gact->tcf_action == act)
|
if ((!is_ext && gact->tcf_action == act) ||
|
||||||
|
(is_ext && TC_ACT_EXT_CMP(gact->tcf_action, act)))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@ -33,12 +35,22 @@ static inline bool __is_tcf_gact_act(const struct tc_action *a, int act)
|
|||||||
|
|
||||||
static inline bool is_tcf_gact_shot(const struct tc_action *a)
|
static inline bool is_tcf_gact_shot(const struct tc_action *a)
|
||||||
{
|
{
|
||||||
return __is_tcf_gact_act(a, TC_ACT_SHOT);
|
return __is_tcf_gact_act(a, TC_ACT_SHOT, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool is_tcf_gact_trap(const struct tc_action *a)
|
static inline bool is_tcf_gact_trap(const struct tc_action *a)
|
||||||
{
|
{
|
||||||
return __is_tcf_gact_act(a, TC_ACT_TRAP);
|
return __is_tcf_gact_act(a, TC_ACT_TRAP, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline bool is_tcf_gact_goto_chain(const struct tc_action *a)
|
||||||
|
{
|
||||||
|
return __is_tcf_gact_act(a, TC_ACT_GOTO_CHAIN, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline u32 tcf_gact_goto_chain_index(const struct tc_action *a)
|
||||||
|
{
|
||||||
|
return a->goto_chain->index;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* __NET_TC_GACT_H */
|
#endif /* __NET_TC_GACT_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user