Skip to content

Commit

Permalink
net_sched: get rid of struct tcf_common
Browse files Browse the repository at this point in the history
After the previous patch, struct tc_action should be enough
to represent the generic tc action, tcf_common is not necessary
any more. This patch gets rid of it to make tc action code
more readable.

Cc: Jamal Hadi Salim <[email protected]>
Signed-off-by: Cong Wang <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
congwang authored and davem330 committed Jul 26, 2016
1 parent a85a970 commit ec0595c
Show file tree
Hide file tree
Showing 15 changed files with 114 additions and 122 deletions.
63 changes: 30 additions & 33 deletions include/net/act_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,42 +22,39 @@ struct tc_action_ops;

struct tc_action {
const struct tc_action_ops *ops;
__u32 type; /* for backward compat(TCA_OLD_COMPAT) */
__u32 order;
struct list_head list;
struct tcf_hashinfo *hinfo;
};

struct tcf_common {
struct tc_action tcfc_act;
struct hlist_node tcfc_head;
u32 tcfc_index;
int tcfc_refcnt;
int tcfc_bindcnt;
u32 tcfc_capab;
int tcfc_action;
struct tcf_t tcfc_tm;
struct gnet_stats_basic_packed tcfc_bstats;
struct gnet_stats_queue tcfc_qstats;
struct gnet_stats_rate_est64 tcfc_rate_est;
spinlock_t tcfc_lock;
struct rcu_head tcfc_rcu;
__u32 type; /* for backward compat(TCA_OLD_COMPAT) */
__u32 order;
struct list_head list;
struct tcf_hashinfo *hinfo;

struct hlist_node tcfa_head;
u32 tcfa_index;
int tcfa_refcnt;
int tcfa_bindcnt;
u32 tcfa_capab;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_packed tcfa_bstats;
struct gnet_stats_queue tcfa_qstats;
struct gnet_stats_rate_est64 tcfa_rate_est;
spinlock_t tcfa_lock;
struct rcu_head tcfa_rcu;
struct gnet_stats_basic_cpu __percpu *cpu_bstats;
struct gnet_stats_queue __percpu *cpu_qstats;
};
#define tcf_act common.tcfc_act
#define tcf_head common.tcfc_head
#define tcf_index common.tcfc_index
#define tcf_refcnt common.tcfc_refcnt
#define tcf_bindcnt common.tcfc_bindcnt
#define tcf_capab common.tcfc_capab
#define tcf_action common.tcfc_action
#define tcf_tm common.tcfc_tm
#define tcf_bstats common.tcfc_bstats
#define tcf_qstats common.tcfc_qstats
#define tcf_rate_est common.tcfc_rate_est
#define tcf_lock common.tcfc_lock
#define tcf_rcu common.tcfc_rcu
#define tcf_act common.tcfa_act
#define tcf_head common.tcfa_head
#define tcf_index common.tcfa_index
#define tcf_refcnt common.tcfa_refcnt
#define tcf_bindcnt common.tcfa_bindcnt
#define tcf_capab common.tcfa_capab
#define tcf_action common.tcfa_action
#define tcf_tm common.tcfa_tm
#define tcf_bstats common.tcfa_bstats
#define tcf_qstats common.tcfa_qstats
#define tcf_rate_est common.tcfa_rate_est
#define tcf_lock common.tcfa_lock
#define tcf_rcu common.tcfa_rcu

static inline unsigned int tcf_hash(u32 index, unsigned int hmask)
{
Expand Down
2 changes: 1 addition & 1 deletion include/net/tc_act/tc_bpf.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
#include <net/act_api.h>

struct tcf_bpf {
struct tcf_common common;
struct tc_action common;
struct bpf_prog __rcu *filter;
union {
u32 bpf_fd;
Expand Down
2 changes: 1 addition & 1 deletion include/net/tc_act/tc_connmark.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <net/act_api.h>

struct tcf_connmark_info {
struct tcf_common common;
struct tc_action common;
struct net *net;
u16 zone;
};
Expand Down
2 changes: 1 addition & 1 deletion include/net/tc_act/tc_csum.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include <net/act_api.h>

struct tcf_csum {
struct tcf_common common;
struct tc_action common;

u32 update_flags;
};
Expand Down
2 changes: 1 addition & 1 deletion include/net/tc_act/tc_defact.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <net/act_api.h>

struct tcf_defact {
struct tcf_common common;
struct tc_action common;
u32 tcfd_datalen;
void *tcfd_defdata;
};
Expand Down
2 changes: 1 addition & 1 deletion include/net/tc_act/tc_gact.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include <linux/tc_act/tc_gact.h>

struct tcf_gact {
struct tcf_common common;
struct tc_action common;
#ifdef CONFIG_GACT_PROB
u16 tcfg_ptype;
u16 tcfg_pval;
Expand Down
2 changes: 1 addition & 1 deletion include/net/tc_act/tc_ife.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

#define IFE_METAHDRLEN 2
struct tcf_ife_info {
struct tcf_common common;
struct tc_action common;
u8 eth_dst[ETH_ALEN];
u8 eth_src[ETH_ALEN];
u16 eth_type;
Expand Down
2 changes: 1 addition & 1 deletion include/net/tc_act/tc_ipt.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
struct xt_entry_target;

struct tcf_ipt {
struct tcf_common common;
struct tc_action common;
u32 tcfi_hook;
char *tcfi_tname;
struct xt_entry_target *tcfi_t;
Expand Down
2 changes: 1 addition & 1 deletion include/net/tc_act/tc_mirred.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include <linux/tc_act/tc_mirred.h>

struct tcf_mirred {
struct tcf_common common;
struct tc_action common;
int tcfm_eaction;
int tcfm_ifindex;
int tcfm_ok_push;
Expand Down
2 changes: 1 addition & 1 deletion include/net/tc_act/tc_nat.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include <net/act_api.h>

struct tcf_nat {
struct tcf_common common;
struct tc_action common;

__be32 old_addr;
__be32 new_addr;
Expand Down
2 changes: 1 addition & 1 deletion include/net/tc_act/tc_pedit.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <net/act_api.h>

struct tcf_pedit {
struct tcf_common common;
struct tc_action common;
unsigned char tcfp_nkeys;
unsigned char tcfp_flags;
struct tc_pedit_key *tcfp_keys;
Expand Down
2 changes: 1 addition & 1 deletion include/net/tc_act/tc_skbedit.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
#include <linux/tc_act/tc_skbedit.h>

struct tcf_skbedit {
struct tcf_common common;
struct tc_action common;
u32 flags;
u32 priority;
u32 mark;
Expand Down
2 changes: 1 addition & 1 deletion include/net/tc_act/tc_vlan.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
#define VLAN_F_PUSH 0x2

struct tcf_vlan {
struct tcf_common common;
struct tc_action common;
int tcfv_action;
u16 tcfv_push_vid;
__be16 tcfv_push_proto;
Expand Down
Loading

0 comments on commit ec0595c

Please sign in to comment.