Skip to content

Commit

Permalink
net_sched: move tc offload macros to pkt_cls.h
Browse files Browse the repository at this point in the history
struct tcf_exts belongs to filters, should not be visible
to plain tc actions.

Cc: Ido Schimmel <[email protected]>
Signed-off-by: Cong Wang <[email protected]>
Acked-by: Jamal Hadi Salim <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
congwang authored and davem330 committed Aug 17, 2016
1 parent 0c23c3e commit 2734437
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 16 deletions.
19 changes: 3 additions & 16 deletions include/net/act_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -189,30 +189,17 @@ int tcf_action_dump_old(struct sk_buff *skb, struct tc_action *a, int, int);
int tcf_action_dump_1(struct sk_buff *skb, struct tc_action *a, int, int);
int tcf_action_copy_stats(struct sk_buff *, struct tc_action *, int);

#define tc_no_actions(_exts) \
(list_empty(&(_exts)->actions))

#define tc_for_each_action(_a, _exts) \
list_for_each_entry(_a, &(_exts)->actions, list)

#define tc_single_action(_exts) \
(list_is_singular(&(_exts)->actions))
#endif /* CONFIG_NET_CLS_ACT */

static inline void tcf_action_stats_update(struct tc_action *a, u64 bytes,
u64 packets, u64 lastuse)
{
#ifdef CONFIG_NET_CLS_ACT
if (!a->ops->stats_update)
return;

a->ops->stats_update(a, bytes, packets, lastuse);
#endif
}

#else /* CONFIG_NET_CLS_ACT */

#define tc_no_actions(_exts) true
#define tc_for_each_action(_a, _exts) while ((void)(_a), 0)
#define tc_single_action(_exts) false
#define tcf_action_stats_update(a, bytes, packets, lastuse)

#endif /* CONFIG_NET_CLS_ACT */
#endif
19 changes: 19 additions & 0 deletions include/net/pkt_cls.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,25 @@ tcf_exts_exec(struct sk_buff *skb, struct tcf_exts *exts,
return 0;
}

#ifdef CONFIG_NET_CLS_ACT

#define tc_no_actions(_exts) \
(list_empty(&(_exts)->actions))

#define tc_for_each_action(_a, _exts) \
list_for_each_entry(_a, &(_exts)->actions, list)

#define tc_single_action(_exts) \
(list_is_singular(&(_exts)->actions))

#else /* CONFIG_NET_CLS_ACT */

#define tc_no_actions(_exts) true
#define tc_for_each_action(_a, _exts) while ((void)(_a), 0)
#define tc_single_action(_exts) false

#endif /* CONFIG_NET_CLS_ACT */

int tcf_exts_validate(struct net *net, struct tcf_proto *tp,
struct nlattr **tb, struct nlattr *rate_tlv,
struct tcf_exts *exts, bool ovr);
Expand Down

0 comments on commit 2734437

Please sign in to comment.