1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2*4882a593Smuzhiyun #ifndef __UAPI_TC_CT_H 3*4882a593Smuzhiyun #define __UAPI_TC_CT_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <linux/types.h> 6*4882a593Smuzhiyun #include <linux/pkt_cls.h> 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun enum { 9*4882a593Smuzhiyun TCA_CT_UNSPEC, 10*4882a593Smuzhiyun TCA_CT_PARMS, 11*4882a593Smuzhiyun TCA_CT_TM, 12*4882a593Smuzhiyun TCA_CT_ACTION, /* u16 */ 13*4882a593Smuzhiyun TCA_CT_ZONE, /* u16 */ 14*4882a593Smuzhiyun TCA_CT_MARK, /* u32 */ 15*4882a593Smuzhiyun TCA_CT_MARK_MASK, /* u32 */ 16*4882a593Smuzhiyun TCA_CT_LABELS, /* u128 */ 17*4882a593Smuzhiyun TCA_CT_LABELS_MASK, /* u128 */ 18*4882a593Smuzhiyun TCA_CT_NAT_IPV4_MIN, /* be32 */ 19*4882a593Smuzhiyun TCA_CT_NAT_IPV4_MAX, /* be32 */ 20*4882a593Smuzhiyun TCA_CT_NAT_IPV6_MIN, /* struct in6_addr */ 21*4882a593Smuzhiyun TCA_CT_NAT_IPV6_MAX, /* struct in6_addr */ 22*4882a593Smuzhiyun TCA_CT_NAT_PORT_MIN, /* be16 */ 23*4882a593Smuzhiyun TCA_CT_NAT_PORT_MAX, /* be16 */ 24*4882a593Smuzhiyun TCA_CT_PAD, 25*4882a593Smuzhiyun __TCA_CT_MAX 26*4882a593Smuzhiyun }; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun #define TCA_CT_MAX (__TCA_CT_MAX - 1) 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun #define TCA_CT_ACT_COMMIT (1 << 0) 31*4882a593Smuzhiyun #define TCA_CT_ACT_FORCE (1 << 1) 32*4882a593Smuzhiyun #define TCA_CT_ACT_CLEAR (1 << 2) 33*4882a593Smuzhiyun #define TCA_CT_ACT_NAT (1 << 3) 34*4882a593Smuzhiyun #define TCA_CT_ACT_NAT_SRC (1 << 4) 35*4882a593Smuzhiyun #define TCA_CT_ACT_NAT_DST (1 << 5) 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun struct tc_ct { 38*4882a593Smuzhiyun tc_gen; 39*4882a593Smuzhiyun }; 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun #endif /* __UAPI_TC_CT_H */ 42