tc_action
Regular
4.4
: ✅struct tc_action {
void *priv;
const struct tc_action_ops *ops;
__u32 type;
__u32 order;
struct list_head list;
};
4.8
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
__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 callback_head tcfa_rcu;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_queue *cpu_qstats;
};
4.10
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
__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 net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct callback_head tcfa_rcu;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
};
4.13
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
__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 net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct callback_head tcfa_rcu;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
};
4.15
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
__u32 order;
struct list_head list;
struct tcf_idrinfo *idrinfo;
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 net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
};
4.18
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
__u32 order;
struct list_head list;
struct tcf_idrinfo *idrinfo;
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 net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
};
5.0
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
__u32 order;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_packed tcfa_bstats;
struct gnet_stats_basic_packed tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_basic_cpu *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
};
5.3
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
__u32 order;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_packed tcfa_bstats;
struct gnet_stats_basic_packed tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_basic_cpu *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
};
5.4
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
__u32 order;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_packed tcfa_bstats;
struct gnet_stats_basic_packed tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_basic_cpu *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
};
5.8
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_packed tcfa_bstats;
struct gnet_stats_basic_packed tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_basic_cpu *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
u32 tcfa_flags;
u8 hw_stats;
u8 used_hw_stats;
bool used_hw_stats_valid;
};
5.11
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_packed tcfa_bstats;
struct gnet_stats_basic_packed tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_basic_cpu *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
u32 tcfa_flags;
u8 hw_stats;
u8 used_hw_stats;
bool used_hw_stats_valid;
};
5.13
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_packed tcfa_bstats;
struct gnet_stats_basic_packed tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_basic_cpu *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
u32 tcfa_flags;
u8 hw_stats;
u8 used_hw_stats;
bool used_hw_stats_valid;
};
5.15
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_packed tcfa_bstats;
struct gnet_stats_basic_packed tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_basic_cpu *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
u32 tcfa_flags;
u8 hw_stats;
u8 used_hw_stats;
bool used_hw_stats_valid;
};
5.19
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_sync tcfa_bstats;
struct gnet_stats_basic_sync tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_sync *cpu_bstats;
struct gnet_stats_basic_sync *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
u32 tcfa_flags;
u8 hw_stats;
u8 used_hw_stats;
bool used_hw_stats_valid;
u32 in_hw_count;
};
6.2
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_sync tcfa_bstats;
struct gnet_stats_basic_sync tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_sync *cpu_bstats;
struct gnet_stats_basic_sync *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
u32 tcfa_flags;
u8 hw_stats;
u8 used_hw_stats;
bool used_hw_stats_valid;
u32 in_hw_count;
};
6.5
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_sync tcfa_bstats;
struct gnet_stats_basic_sync tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_sync *cpu_bstats;
struct gnet_stats_basic_sync *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *user_cookie;
struct tcf_chain *goto_chain;
u32 tcfa_flags;
u8 hw_stats;
u8 used_hw_stats;
bool used_hw_stats_valid;
u32 in_hw_count;
};
6.8
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_sync tcfa_bstats;
struct gnet_stats_basic_sync tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_sync *cpu_bstats;
struct gnet_stats_basic_sync *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *user_cookie;
struct tcf_chain *goto_chain;
u32 tcfa_flags;
u8 hw_stats;
u8 used_hw_stats;
bool used_hw_stats_valid;
u32 in_hw_count;
};
arm64
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
__u32 order;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_packed tcfa_bstats;
struct gnet_stats_basic_packed tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_basic_cpu *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
};
armhf
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
__u32 order;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_packed tcfa_bstats;
struct gnet_stats_basic_packed tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_basic_cpu *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
};
ppc64el
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
__u32 order;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_packed tcfa_bstats;
struct gnet_stats_basic_packed tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_basic_cpu *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
};
riscv64
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
__u32 order;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_packed tcfa_bstats;
struct gnet_stats_basic_packed tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_basic_cpu *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
};
aws
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
__u32 order;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_packed tcfa_bstats;
struct gnet_stats_basic_packed tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_basic_cpu *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
};
azure
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
__u32 order;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_packed tcfa_bstats;
struct gnet_stats_basic_packed tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_basic_cpu *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
};
gcp
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
__u32 order;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_packed tcfa_bstats;
struct gnet_stats_basic_packed tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_basic_cpu *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
};
lowlatency
: ✅struct tc_action {
const struct tc_action_ops *ops;
__u32 type;
__u32 order;
struct tcf_idrinfo *idrinfo;
u32 tcfa_index;
refcount_t tcfa_refcnt;
atomic_t tcfa_bindcnt;
int tcfa_action;
struct tcf_t tcfa_tm;
struct gnet_stats_basic_packed tcfa_bstats;
struct gnet_stats_basic_packed tcfa_bstats_hw;
struct gnet_stats_queue tcfa_qstats;
struct net_rate_estimator *tcfa_rate_est;
spinlock_t tcfa_lock;
struct gnet_stats_basic_cpu *cpu_bstats;
struct gnet_stats_basic_cpu *cpu_bstats_hw;
struct gnet_stats_queue *cpu_qstats;
struct tc_cookie *act_cookie;
struct tcf_chain *goto_chain;
};
Regular
4.4
and 4.8
⚠️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 callback_head tcfa_rcu
struct gnet_stats_basic_cpu *cpu_bstats
struct gnet_stats_queue *cpu_qstats
void *priv
4.8
and 4.10
⚠️struct tc_cookie *act_cookie
struct gnet_stats_rate_est64 tcfa_rate_est
➡️ struct net_rate_estimator *tcfa_rate_est
4.10
and 4.13
⚠️struct tcf_chain *goto_chain
4.13
and 4.15
⚠️struct tcf_idrinfo *idrinfo
struct tcf_hashinfo *hinfo
struct hlist_node tcfa_head
struct callback_head tcfa_rcu
4.15
and 4.18
✅
4.18
and 5.0
⚠️struct gnet_stats_basic_packed tcfa_bstats_hw
struct gnet_stats_basic_cpu *cpu_bstats_hw
struct list_head list
u32 tcfa_capab
int tcfa_refcnt
➡️ refcount_t tcfa_refcnt
int tcfa_bindcnt
➡️ atomic_t tcfa_bindcnt
5.0
and 5.3
✅
5.3
and 5.4
✅
5.4
and 5.8
⚠️u32 tcfa_flags
u8 hw_stats
u8 used_hw_stats
bool used_hw_stats_valid
__u32 order
5.8
and 5.11
✅
5.11
and 5.13
✅
5.13
and 5.15
✅
5.15
and 5.19
⚠️u32 in_hw_count
struct gnet_stats_basic_packed tcfa_bstats
➡️ struct gnet_stats_basic_sync tcfa_bstats
struct gnet_stats_basic_packed tcfa_bstats_hw
➡️ struct gnet_stats_basic_sync tcfa_bstats_hw
struct gnet_stats_basic_cpu *cpu_bstats
➡️ struct gnet_stats_basic_sync *cpu_bstats
struct gnet_stats_basic_cpu *cpu_bstats_hw
➡️ struct gnet_stats_basic_sync *cpu_bstats_hw
5.19
and 6.2
✅
6.2
and 6.5
⚠️struct tc_cookie *user_cookie
struct tc_cookie *act_cookie
6.5
and 6.8
✅
amd64
and arm64
✅
amd64
and armhf
✅
amd64
and ppc64el
✅
amd64
and riscv64
✅
generic
and aws
✅
generic
and azure
✅
generic
and gcp
✅
generic
and lowlatency
✅