Home | History | Annotate | Download | only in netfilter
      1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
      2 #ifndef _IPCONNTRACK_NETLINK_H
      3 #define _IPCONNTRACK_NETLINK_H
      4 #include <linux/netfilter/nfnetlink.h>
      5 
      6 enum cntl_msg_types {
      7 	IPCTNL_MSG_CT_NEW,
      8 	IPCTNL_MSG_CT_GET,
      9 	IPCTNL_MSG_CT_DELETE,
     10 	IPCTNL_MSG_CT_GET_CTRZERO,
     11 	IPCTNL_MSG_CT_GET_STATS_CPU,
     12 	IPCTNL_MSG_CT_GET_STATS,
     13 	IPCTNL_MSG_CT_GET_DYING,
     14 	IPCTNL_MSG_CT_GET_UNCONFIRMED,
     15 
     16 	IPCTNL_MSG_MAX
     17 };
     18 
     19 enum ctnl_exp_msg_types {
     20 	IPCTNL_MSG_EXP_NEW,
     21 	IPCTNL_MSG_EXP_GET,
     22 	IPCTNL_MSG_EXP_DELETE,
     23 	IPCTNL_MSG_EXP_GET_STATS_CPU,
     24 
     25 	IPCTNL_MSG_EXP_MAX
     26 };
     27 
     28 
     29 enum ctattr_type {
     30 	CTA_UNSPEC,
     31 	CTA_TUPLE_ORIG,
     32 	CTA_TUPLE_REPLY,
     33 	CTA_STATUS,
     34 	CTA_PROTOINFO,
     35 	CTA_HELP,
     36 	CTA_NAT_SRC,
     37 #define CTA_NAT	CTA_NAT_SRC	/* backwards compatibility */
     38 	CTA_TIMEOUT,
     39 	CTA_MARK,
     40 	CTA_COUNTERS_ORIG,
     41 	CTA_COUNTERS_REPLY,
     42 	CTA_USE,
     43 	CTA_ID,
     44 	CTA_NAT_DST,
     45 	CTA_TUPLE_MASTER,
     46 	CTA_SEQ_ADJ_ORIG,
     47 	CTA_NAT_SEQ_ADJ_ORIG	= CTA_SEQ_ADJ_ORIG,
     48 	CTA_SEQ_ADJ_REPLY,
     49 	CTA_NAT_SEQ_ADJ_REPLY	= CTA_SEQ_ADJ_REPLY,
     50 	CTA_SECMARK,		/* obsolete */
     51 	CTA_ZONE,
     52 	CTA_SECCTX,
     53 	CTA_TIMESTAMP,
     54 	CTA_MARK_MASK,
     55 	CTA_LABELS,
     56 	CTA_LABELS_MASK,
     57 	__CTA_MAX
     58 };
     59 #define CTA_MAX (__CTA_MAX - 1)
     60 
     61 enum ctattr_tuple {
     62 	CTA_TUPLE_UNSPEC,
     63 	CTA_TUPLE_IP,
     64 	CTA_TUPLE_PROTO,
     65 	CTA_TUPLE_ZONE,
     66 	__CTA_TUPLE_MAX
     67 };
     68 #define CTA_TUPLE_MAX (__CTA_TUPLE_MAX - 1)
     69 
     70 enum ctattr_ip {
     71 	CTA_IP_UNSPEC,
     72 	CTA_IP_V4_SRC,
     73 	CTA_IP_V4_DST,
     74 	CTA_IP_V6_SRC,
     75 	CTA_IP_V6_DST,
     76 	__CTA_IP_MAX
     77 };
     78 #define CTA_IP_MAX (__CTA_IP_MAX - 1)
     79 
     80 enum ctattr_l4proto {
     81 	CTA_PROTO_UNSPEC,
     82 	CTA_PROTO_NUM,
     83 	CTA_PROTO_SRC_PORT,
     84 	CTA_PROTO_DST_PORT,
     85 	CTA_PROTO_ICMP_ID,
     86 	CTA_PROTO_ICMP_TYPE,
     87 	CTA_PROTO_ICMP_CODE,
     88 	CTA_PROTO_ICMPV6_ID,
     89 	CTA_PROTO_ICMPV6_TYPE,
     90 	CTA_PROTO_ICMPV6_CODE,
     91 	__CTA_PROTO_MAX
     92 };
     93 #define CTA_PROTO_MAX (__CTA_PROTO_MAX - 1)
     94 
     95 enum ctattr_protoinfo {
     96 	CTA_PROTOINFO_UNSPEC,
     97 	CTA_PROTOINFO_TCP,
     98 	CTA_PROTOINFO_DCCP,
     99 	CTA_PROTOINFO_SCTP,
    100 	__CTA_PROTOINFO_MAX
    101 };
    102 #define CTA_PROTOINFO_MAX (__CTA_PROTOINFO_MAX - 1)
    103 
    104 enum ctattr_protoinfo_tcp {
    105 	CTA_PROTOINFO_TCP_UNSPEC,
    106 	CTA_PROTOINFO_TCP_STATE,
    107 	CTA_PROTOINFO_TCP_WSCALE_ORIGINAL,
    108 	CTA_PROTOINFO_TCP_WSCALE_REPLY,
    109 	CTA_PROTOINFO_TCP_FLAGS_ORIGINAL,
    110 	CTA_PROTOINFO_TCP_FLAGS_REPLY,
    111 	__CTA_PROTOINFO_TCP_MAX
    112 };
    113 #define CTA_PROTOINFO_TCP_MAX (__CTA_PROTOINFO_TCP_MAX - 1)
    114 
    115 enum ctattr_protoinfo_dccp {
    116 	CTA_PROTOINFO_DCCP_UNSPEC,
    117 	CTA_PROTOINFO_DCCP_STATE,
    118 	CTA_PROTOINFO_DCCP_ROLE,
    119 	CTA_PROTOINFO_DCCP_HANDSHAKE_SEQ,
    120 	CTA_PROTOINFO_DCCP_PAD,
    121 	__CTA_PROTOINFO_DCCP_MAX,
    122 };
    123 #define CTA_PROTOINFO_DCCP_MAX (__CTA_PROTOINFO_DCCP_MAX - 1)
    124 
    125 enum ctattr_protoinfo_sctp {
    126 	CTA_PROTOINFO_SCTP_UNSPEC,
    127 	CTA_PROTOINFO_SCTP_STATE,
    128 	CTA_PROTOINFO_SCTP_VTAG_ORIGINAL,
    129 	CTA_PROTOINFO_SCTP_VTAG_REPLY,
    130 	__CTA_PROTOINFO_SCTP_MAX
    131 };
    132 #define CTA_PROTOINFO_SCTP_MAX (__CTA_PROTOINFO_SCTP_MAX - 1)
    133 
    134 enum ctattr_counters {
    135 	CTA_COUNTERS_UNSPEC,
    136 	CTA_COUNTERS_PACKETS,		/* 64bit counters */
    137 	CTA_COUNTERS_BYTES,		/* 64bit counters */
    138 	CTA_COUNTERS32_PACKETS,		/* old 32bit counters, unused */
    139 	CTA_COUNTERS32_BYTES,		/* old 32bit counters, unused */
    140 	CTA_COUNTERS_PAD,
    141 	__CTA_COUNTERS_MAX
    142 };
    143 #define CTA_COUNTERS_MAX (__CTA_COUNTERS_MAX - 1)
    144 
    145 enum ctattr_tstamp {
    146 	CTA_TIMESTAMP_UNSPEC,
    147 	CTA_TIMESTAMP_START,
    148 	CTA_TIMESTAMP_STOP,
    149 	CTA_TIMESTAMP_PAD,
    150 	__CTA_TIMESTAMP_MAX
    151 };
    152 #define CTA_TIMESTAMP_MAX (__CTA_TIMESTAMP_MAX - 1)
    153 
    154 enum ctattr_nat {
    155 	CTA_NAT_UNSPEC,
    156 	CTA_NAT_V4_MINIP,
    157 #define CTA_NAT_MINIP CTA_NAT_V4_MINIP
    158 	CTA_NAT_V4_MAXIP,
    159 #define CTA_NAT_MAXIP CTA_NAT_V4_MAXIP
    160 	CTA_NAT_PROTO,
    161 	CTA_NAT_V6_MINIP,
    162 	CTA_NAT_V6_MAXIP,
    163 	__CTA_NAT_MAX
    164 };
    165 #define CTA_NAT_MAX (__CTA_NAT_MAX - 1)
    166 
    167 enum ctattr_protonat {
    168 	CTA_PROTONAT_UNSPEC,
    169 	CTA_PROTONAT_PORT_MIN,
    170 	CTA_PROTONAT_PORT_MAX,
    171 	__CTA_PROTONAT_MAX
    172 };
    173 #define CTA_PROTONAT_MAX (__CTA_PROTONAT_MAX - 1)
    174 
    175 enum ctattr_seqadj {
    176 	CTA_SEQADJ_UNSPEC,
    177 	CTA_SEQADJ_CORRECTION_POS,
    178 	CTA_SEQADJ_OFFSET_BEFORE,
    179 	CTA_SEQADJ_OFFSET_AFTER,
    180 	__CTA_SEQADJ_MAX
    181 };
    182 #define CTA_SEQADJ_MAX (__CTA_SEQADJ_MAX - 1)
    183 
    184 enum ctattr_natseq {
    185 	CTA_NAT_SEQ_UNSPEC,
    186 	CTA_NAT_SEQ_CORRECTION_POS,
    187 	CTA_NAT_SEQ_OFFSET_BEFORE,
    188 	CTA_NAT_SEQ_OFFSET_AFTER,
    189 	__CTA_NAT_SEQ_MAX
    190 };
    191 #define CTA_NAT_SEQ_MAX (__CTA_NAT_SEQ_MAX - 1)
    192 
    193 enum ctattr_expect {
    194 	CTA_EXPECT_UNSPEC,
    195 	CTA_EXPECT_MASTER,
    196 	CTA_EXPECT_TUPLE,
    197 	CTA_EXPECT_MASK,
    198 	CTA_EXPECT_TIMEOUT,
    199 	CTA_EXPECT_ID,
    200 	CTA_EXPECT_HELP_NAME,
    201 	CTA_EXPECT_ZONE,
    202 	CTA_EXPECT_FLAGS,
    203 	CTA_EXPECT_CLASS,
    204 	CTA_EXPECT_NAT,
    205 	CTA_EXPECT_FN,
    206 	__CTA_EXPECT_MAX
    207 };
    208 #define CTA_EXPECT_MAX (__CTA_EXPECT_MAX - 1)
    209 
    210 enum ctattr_expect_nat {
    211 	CTA_EXPECT_NAT_UNSPEC,
    212 	CTA_EXPECT_NAT_DIR,
    213 	CTA_EXPECT_NAT_TUPLE,
    214 	__CTA_EXPECT_NAT_MAX
    215 };
    216 #define CTA_EXPECT_NAT_MAX (__CTA_EXPECT_NAT_MAX - 1)
    217 
    218 enum ctattr_help {
    219 	CTA_HELP_UNSPEC,
    220 	CTA_HELP_NAME,
    221 	CTA_HELP_INFO,
    222 	__CTA_HELP_MAX
    223 };
    224 #define CTA_HELP_MAX (__CTA_HELP_MAX - 1)
    225 
    226 enum ctattr_secctx {
    227 	CTA_SECCTX_UNSPEC,
    228 	CTA_SECCTX_NAME,
    229 	__CTA_SECCTX_MAX
    230 };
    231 #define CTA_SECCTX_MAX (__CTA_SECCTX_MAX - 1)
    232 
    233 enum ctattr_stats_cpu {
    234 	CTA_STATS_UNSPEC,
    235 	CTA_STATS_SEARCHED,	/* no longer used */
    236 	CTA_STATS_FOUND,
    237 	CTA_STATS_NEW,		/* no longer used */
    238 	CTA_STATS_INVALID,
    239 	CTA_STATS_IGNORE,
    240 	CTA_STATS_DELETE,	/* no longer used */
    241 	CTA_STATS_DELETE_LIST,	/* no longer used */
    242 	CTA_STATS_INSERT,
    243 	CTA_STATS_INSERT_FAILED,
    244 	CTA_STATS_DROP,
    245 	CTA_STATS_EARLY_DROP,
    246 	CTA_STATS_ERROR,
    247 	CTA_STATS_SEARCH_RESTART,
    248 	__CTA_STATS_MAX,
    249 };
    250 #define CTA_STATS_MAX (__CTA_STATS_MAX - 1)
    251 
    252 enum ctattr_stats_global {
    253 	CTA_STATS_GLOBAL_UNSPEC,
    254 	CTA_STATS_GLOBAL_ENTRIES,
    255 	__CTA_STATS_GLOBAL_MAX,
    256 };
    257 #define CTA_STATS_GLOBAL_MAX (__CTA_STATS_GLOBAL_MAX - 1)
    258 
    259 enum ctattr_expect_stats {
    260 	CTA_STATS_EXP_UNSPEC,
    261 	CTA_STATS_EXP_NEW,
    262 	CTA_STATS_EXP_CREATE,
    263 	CTA_STATS_EXP_DELETE,
    264 	__CTA_STATS_EXP_MAX,
    265 };
    266 #define CTA_STATS_EXP_MAX (__CTA_STATS_EXP_MAX - 1)
    267 
    268 #endif /* _IPCONNTRACK_NETLINK_H */
    269