162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef __NET_TC_CTINFO_H 362306a36Sopenharmony_ci#define __NET_TC_CTINFO_H 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#include <net/act_api.h> 662306a36Sopenharmony_ci 762306a36Sopenharmony_cistruct tcf_ctinfo_params { 862306a36Sopenharmony_ci struct rcu_head rcu; 962306a36Sopenharmony_ci struct net *net; 1062306a36Sopenharmony_ci u32 dscpmask; 1162306a36Sopenharmony_ci u32 dscpstatemask; 1262306a36Sopenharmony_ci u32 cpmarkmask; 1362306a36Sopenharmony_ci u16 zone; 1462306a36Sopenharmony_ci u8 mode; 1562306a36Sopenharmony_ci u8 dscpmaskshift; 1662306a36Sopenharmony_ci}; 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_cistruct tcf_ctinfo { 1962306a36Sopenharmony_ci struct tc_action common; 2062306a36Sopenharmony_ci struct tcf_ctinfo_params __rcu *params; 2162306a36Sopenharmony_ci u64 stats_dscp_set; 2262306a36Sopenharmony_ci u64 stats_dscp_error; 2362306a36Sopenharmony_ci u64 stats_cpmark_set; 2462306a36Sopenharmony_ci}; 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_cienum { 2762306a36Sopenharmony_ci CTINFO_MODE_DSCP = BIT(0), 2862306a36Sopenharmony_ci CTINFO_MODE_CPMARK = BIT(1) 2962306a36Sopenharmony_ci}; 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci#define to_ctinfo(a) ((struct tcf_ctinfo *)a) 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci#endif /* __NET_TC_CTINFO_H */ 34