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_SYNPROXY, 58 CTA_FILTER, 59 CTA_STATUS_MASK, 60 CTA_TIMESTAMP_EVENT, 61 __CTA_MAX 62 }; 63 #define CTA_MAX (__CTA_MAX - 1) 64 65 enum ctattr_tuple { 66 CTA_TUPLE_UNSPEC, 67 CTA_TUPLE_IP, 68 CTA_TUPLE_PROTO, 69 CTA_TUPLE_ZONE, 70 __CTA_TUPLE_MAX 71 }; 72 #define CTA_TUPLE_MAX (__CTA_TUPLE_MAX - 1) 73 74 enum ctattr_ip { 75 CTA_IP_UNSPEC, 76 CTA_IP_V4_SRC, 77 CTA_IP_V4_DST, 78 CTA_IP_V6_SRC, 79 CTA_IP_V6_DST, 80 __CTA_IP_MAX 81 }; 82 #define CTA_IP_MAX (__CTA_IP_MAX - 1) 83 84 enum ctattr_l4proto { 85 CTA_PROTO_UNSPEC, 86 CTA_PROTO_NUM, 87 CTA_PROTO_SRC_PORT, 88 CTA_PROTO_DST_PORT, 89 CTA_PROTO_ICMP_ID, 90 CTA_PROTO_ICMP_TYPE, 91 CTA_PROTO_ICMP_CODE, 92 CTA_PROTO_ICMPV6_ID, 93 CTA_PROTO_ICMPV6_TYPE, 94 CTA_PROTO_ICMPV6_CODE, 95 __CTA_PROTO_MAX 96 }; 97 #define CTA_PROTO_MAX (__CTA_PROTO_MAX - 1) 98 99 enum ctattr_protoinfo { 100 CTA_PROTOINFO_UNSPEC, 101 CTA_PROTOINFO_TCP, 102 CTA_PROTOINFO_DCCP, 103 CTA_PROTOINFO_SCTP, 104 __CTA_PROTOINFO_MAX 105 }; 106 #define CTA_PROTOINFO_MAX (__CTA_PROTOINFO_MAX - 1) 107 108 enum ctattr_protoinfo_tcp { 109 CTA_PROTOINFO_TCP_UNSPEC, 110 CTA_PROTOINFO_TCP_STATE, 111 CTA_PROTOINFO_TCP_WSCALE_ORIGINAL, 112 CTA_PROTOINFO_TCP_WSCALE_REPLY, 113 CTA_PROTOINFO_TCP_FLAGS_ORIGINAL, 114 CTA_PROTOINFO_TCP_FLAGS_REPLY, 115 __CTA_PROTOINFO_TCP_MAX 116 }; 117 #define CTA_PROTOINFO_TCP_MAX (__CTA_PROTOINFO_TCP_MAX - 1) 118 119 enum ctattr_protoinfo_dccp { 120 CTA_PROTOINFO_DCCP_UNSPEC, 121 CTA_PROTOINFO_DCCP_STATE, 122 CTA_PROTOINFO_DCCP_ROLE, 123 CTA_PROTOINFO_DCCP_HANDSHAKE_SEQ, 124 CTA_PROTOINFO_DCCP_PAD, 125 __CTA_PROTOINFO_DCCP_MAX, 126 }; 127 #define CTA_PROTOINFO_DCCP_MAX (__CTA_PROTOINFO_DCCP_MAX - 1) 128 129 enum ctattr_protoinfo_sctp { 130 CTA_PROTOINFO_SCTP_UNSPEC, 131 CTA_PROTOINFO_SCTP_STATE, 132 CTA_PROTOINFO_SCTP_VTAG_ORIGINAL, 133 CTA_PROTOINFO_SCTP_VTAG_REPLY, 134 __CTA_PROTOINFO_SCTP_MAX 135 }; 136 #define CTA_PROTOINFO_SCTP_MAX (__CTA_PROTOINFO_SCTP_MAX - 1) 137 138 enum ctattr_counters { 139 CTA_COUNTERS_UNSPEC, 140 CTA_COUNTERS_PACKETS, /* 64bit counters */ 141 CTA_COUNTERS_BYTES, /* 64bit counters */ 142 CTA_COUNTERS32_PACKETS, /* old 32bit counters, unused */ 143 CTA_COUNTERS32_BYTES, /* old 32bit counters, unused */ 144 CTA_COUNTERS_PAD, 145 __CTA_COUNTERS_MAX 146 }; 147 #define CTA_COUNTERS_MAX (__CTA_COUNTERS_MAX - 1) 148 149 enum ctattr_tstamp { 150 CTA_TIMESTAMP_UNSPEC, 151 CTA_TIMESTAMP_START, 152 CTA_TIMESTAMP_STOP, 153 CTA_TIMESTAMP_PAD, 154 __CTA_TIMESTAMP_MAX 155 }; 156 #define CTA_TIMESTAMP_MAX (__CTA_TIMESTAMP_MAX - 1) 157 158 enum ctattr_nat { 159 CTA_NAT_UNSPEC, 160 CTA_NAT_V4_MINIP, 161 #define CTA_NAT_MINIP CTA_NAT_V4_MINIP 162 CTA_NAT_V4_MAXIP, 163 #define CTA_NAT_MAXIP CTA_NAT_V4_MAXIP 164 CTA_NAT_PROTO, 165 CTA_NAT_V6_MINIP, 166 CTA_NAT_V6_MAXIP, 167 __CTA_NAT_MAX 168 }; 169 #define CTA_NAT_MAX (__CTA_NAT_MAX - 1) 170 171 enum ctattr_protonat { 172 CTA_PROTONAT_UNSPEC, 173 CTA_PROTONAT_PORT_MIN, 174 CTA_PROTONAT_PORT_MAX, 175 __CTA_PROTONAT_MAX 176 }; 177 #define CTA_PROTONAT_MAX (__CTA_PROTONAT_MAX - 1) 178 179 enum ctattr_seqadj { 180 CTA_SEQADJ_UNSPEC, 181 CTA_SEQADJ_CORRECTION_POS, 182 CTA_SEQADJ_OFFSET_BEFORE, 183 CTA_SEQADJ_OFFSET_AFTER, 184 __CTA_SEQADJ_MAX 185 }; 186 #define CTA_SEQADJ_MAX (__CTA_SEQADJ_MAX - 1) 187 188 enum ctattr_natseq { 189 CTA_NAT_SEQ_UNSPEC, 190 CTA_NAT_SEQ_CORRECTION_POS, 191 CTA_NAT_SEQ_OFFSET_BEFORE, 192 CTA_NAT_SEQ_OFFSET_AFTER, 193 __CTA_NAT_SEQ_MAX 194 }; 195 #define CTA_NAT_SEQ_MAX (__CTA_NAT_SEQ_MAX - 1) 196 197 enum ctattr_synproxy { 198 CTA_SYNPROXY_UNSPEC, 199 CTA_SYNPROXY_ISN, 200 CTA_SYNPROXY_ITS, 201 CTA_SYNPROXY_TSOFF, 202 __CTA_SYNPROXY_MAX, 203 }; 204 #define CTA_SYNPROXY_MAX (__CTA_SYNPROXY_MAX - 1) 205 206 enum ctattr_expect { 207 CTA_EXPECT_UNSPEC, 208 CTA_EXPECT_MASTER, 209 CTA_EXPECT_TUPLE, 210 CTA_EXPECT_MASK, 211 CTA_EXPECT_TIMEOUT, 212 CTA_EXPECT_ID, 213 CTA_EXPECT_HELP_NAME, 214 CTA_EXPECT_ZONE, 215 CTA_EXPECT_FLAGS, 216 CTA_EXPECT_CLASS, 217 CTA_EXPECT_NAT, 218 CTA_EXPECT_FN, 219 __CTA_EXPECT_MAX 220 }; 221 #define CTA_EXPECT_MAX (__CTA_EXPECT_MAX - 1) 222 223 enum ctattr_expect_nat { 224 CTA_EXPECT_NAT_UNSPEC, 225 CTA_EXPECT_NAT_DIR, 226 CTA_EXPECT_NAT_TUPLE, 227 __CTA_EXPECT_NAT_MAX 228 }; 229 #define CTA_EXPECT_NAT_MAX (__CTA_EXPECT_NAT_MAX - 1) 230 231 enum ctattr_help { 232 CTA_HELP_UNSPEC, 233 CTA_HELP_NAME, 234 CTA_HELP_INFO, 235 __CTA_HELP_MAX 236 }; 237 #define CTA_HELP_MAX (__CTA_HELP_MAX - 1) 238 239 enum ctattr_secctx { 240 CTA_SECCTX_UNSPEC, 241 CTA_SECCTX_NAME, 242 __CTA_SECCTX_MAX 243 }; 244 #define CTA_SECCTX_MAX (__CTA_SECCTX_MAX - 1) 245 246 enum ctattr_stats_cpu { 247 CTA_STATS_UNSPEC, 248 CTA_STATS_SEARCHED, /* no longer used */ 249 CTA_STATS_FOUND, 250 CTA_STATS_NEW, /* no longer used */ 251 CTA_STATS_INVALID, 252 CTA_STATS_IGNORE, /* no longer used */ 253 CTA_STATS_DELETE, /* no longer used */ 254 CTA_STATS_DELETE_LIST, /* no longer used */ 255 CTA_STATS_INSERT, 256 CTA_STATS_INSERT_FAILED, 257 CTA_STATS_DROP, 258 CTA_STATS_EARLY_DROP, 259 CTA_STATS_ERROR, 260 CTA_STATS_SEARCH_RESTART, 261 CTA_STATS_CLASH_RESOLVE, 262 CTA_STATS_CHAIN_TOOLONG, 263 __CTA_STATS_MAX, 264 }; 265 #define CTA_STATS_MAX (__CTA_STATS_MAX - 1) 266 267 enum ctattr_stats_global { 268 CTA_STATS_GLOBAL_UNSPEC, 269 CTA_STATS_GLOBAL_ENTRIES, 270 CTA_STATS_GLOBAL_MAX_ENTRIES, 271 __CTA_STATS_GLOBAL_MAX, 272 }; 273 #define CTA_STATS_GLOBAL_MAX (__CTA_STATS_GLOBAL_MAX - 1) 274 275 enum ctattr_expect_stats { 276 CTA_STATS_EXP_UNSPEC, 277 CTA_STATS_EXP_NEW, 278 CTA_STATS_EXP_CREATE, 279 CTA_STATS_EXP_DELETE, 280 __CTA_STATS_EXP_MAX, 281 }; 282 #define CTA_STATS_EXP_MAX (__CTA_STATS_EXP_MAX - 1) 283 284 enum ctattr_filter { 285 CTA_FILTER_UNSPEC, 286 CTA_FILTER_ORIG_FLAGS, 287 CTA_FILTER_REPLY_FLAGS, 288 __CTA_FILTER_MAX 289 }; 290 #define CTA_FILTER_MAX (__CTA_FILTER_MAX - 1) 291 292 #endif /* _IPCONNTRACK_NETLINK_H */ 293