mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-20 21:04:40 +08:00
net: tc_skbedit: Factor a helper out of is_tcf_skbedit_{mark, ptype}()
The two functions is_tcf_skbedit_mark() and is_tcf_skbedit_ptype() have a very similar structure. A follow-up patch will add one more such function. Instead of more cut'n'pasting, extract a helper function that checks whether a TC action is an skbedit with the required flag. Convert the two existing functions into thin wrappers around the helper. Signed-off-by: Petr Machata <petrm@mellanox.com> Reviewed-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3fd177cb2b
commit
fe93f0b225
@ -27,8 +27,8 @@ struct tcf_skbedit {
|
||||
};
|
||||
#define to_skbedit(a) ((struct tcf_skbedit *)a)
|
||||
|
||||
/* Return true iff action is mark */
|
||||
static inline bool is_tcf_skbedit_mark(const struct tc_action *a)
|
||||
/* Return true iff action is the one identified by FLAG. */
|
||||
static inline bool is_tcf_skbedit_with_flag(const struct tc_action *a, u32 flag)
|
||||
{
|
||||
#ifdef CONFIG_NET_CLS_ACT
|
||||
u32 flags;
|
||||
@ -37,12 +37,18 @@ static inline bool is_tcf_skbedit_mark(const struct tc_action *a)
|
||||
rcu_read_lock();
|
||||
flags = rcu_dereference(to_skbedit(a)->params)->flags;
|
||||
rcu_read_unlock();
|
||||
return flags == SKBEDIT_F_MARK;
|
||||
return flags == flag;
|
||||
}
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Return true iff action is mark */
|
||||
static inline bool is_tcf_skbedit_mark(const struct tc_action *a)
|
||||
{
|
||||
return is_tcf_skbedit_with_flag(a, SKBEDIT_F_MARK);
|
||||
}
|
||||
|
||||
static inline u32 tcf_skbedit_mark(const struct tc_action *a)
|
||||
{
|
||||
u32 mark;
|
||||
@ -57,17 +63,7 @@ static inline u32 tcf_skbedit_mark(const struct tc_action *a)
|
||||
/* Return true iff action is ptype */
|
||||
static inline bool is_tcf_skbedit_ptype(const struct tc_action *a)
|
||||
{
|
||||
#ifdef CONFIG_NET_CLS_ACT
|
||||
u32 flags;
|
||||
|
||||
if (a->ops && a->ops->id == TCA_ID_SKBEDIT) {
|
||||
rcu_read_lock();
|
||||
flags = rcu_dereference(to_skbedit(a)->params)->flags;
|
||||
rcu_read_unlock();
|
||||
return flags == SKBEDIT_F_PTYPE;
|
||||
}
|
||||
#endif
|
||||
return false;
|
||||
return is_tcf_skbedit_with_flag(a, SKBEDIT_F_PTYPE);
|
||||
}
|
||||
|
||||
static inline u32 tcf_skbedit_ptype(const struct tc_action *a)
|
||||
|
Loading…
Reference in New Issue
Block a user