@@ -1001,6 +1001,7 @@ pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY;
1001
1001
pub const MFD_CLOEXEC : :: c_uint = 0x0001 ;
1002
1002
pub const MFD_ALLOW_SEALING : :: c_uint = 0x0002 ;
1003
1003
1004
+ // linux/netfilter.h
1004
1005
pub const NF_DROP : :: c_int = 0 ;
1005
1006
pub const NF_ACCEPT : :: c_int = 1 ;
1006
1007
pub const NF_STOLEN : :: c_int = 2 ;
@@ -1037,12 +1038,90 @@ pub const NFPROTO_IPV6: ::c_int = 10;
1037
1038
pub const NFPROTO_DECNET : :: c_int = 12 ;
1038
1039
pub const NFPROTO_NUMPROTO : :: c_int = 13 ;
1039
1040
1041
+ // linux/netfilter_ipv4.h
1042
+ pub const NF_IP_PRE_ROUTING : :: c_int = 0 ;
1043
+ pub const NF_IP_LOCAL_IN : :: c_int = 1 ;
1044
+ pub const NF_IP_FORWARD : :: c_int = 2 ;
1045
+ pub const NF_IP_LOCAL_OUT : :: c_int = 3 ;
1046
+ pub const NF_IP_POST_ROUTING : :: c_int = 4 ;
1047
+ pub const NF_IP_NUMHOOKS : :: c_int = 5 ;
1048
+
1049
+ pub const NF_IP_PRI_FIRST : :: c_int = :: INT_MIN ;
1050
+ pub const NF_IP_PRI_CONNTRACK_DEFRAG : :: c_int = -400 ;
1051
+ pub const NF_IP_PRI_RAW : :: c_int = -300 ;
1052
+ pub const NF_IP_PRI_SELINUX_FIRST : :: c_int = -225 ;
1053
+ pub const NF_IP_PRI_CONNTRACK : :: c_int = -200 ;
1054
+ pub const NF_IP_PRI_MANGLE : :: c_int = -150 ;
1055
+ pub const NF_IP_PRI_NAT_DST : :: c_int = -100 ;
1056
+ pub const NF_IP_PRI_FILTER : :: c_int = 0 ;
1057
+ pub const NF_IP_PRI_SECURITY : :: c_int = 50 ;
1058
+ pub const NF_IP_PRI_NAT_SRC : :: c_int = 100 ;
1059
+ pub const NF_IP_PRI_SELINUX_LAST : :: c_int = 225 ;
1060
+ pub const NF_IP_PRI_CONNTRACK_HELPER : :: c_int = 300 ;
1061
+ pub const NF_IP_PRI_CONNTRACK_CONFIRM : :: c_int = :: INT_MAX ;
1062
+ pub const NF_IP_PRI_LAST : :: c_int = :: INT_MAX ;
1063
+
1064
+ // linux/netfilter_ipv6.h
1065
+ pub const NF_IP6_PRE_ROUTING : :: c_int = 0 ;
1066
+ pub const NF_IP6_LOCAL_IN : :: c_int = 1 ;
1067
+ pub const NF_IP6_FORWARD : :: c_int = 2 ;
1068
+ pub const NF_IP6_LOCAL_OUT : :: c_int = 3 ;
1069
+ pub const NF_IP6_POST_ROUTING : :: c_int = 4 ;
1070
+ pub const NF_IP6_NUMHOOKS : :: c_int = 5 ;
1071
+
1072
+ pub const NF_IP6_PRI_FIRST : :: c_int = :: INT_MIN ;
1073
+ pub const NF_IP6_PRI_CONNTRACK_DEFRAG : :: c_int = -400 ;
1074
+ pub const NF_IP6_PRI_RAW : :: c_int = -300 ;
1075
+ pub const NF_IP6_PRI_SELINUX_FIRST : :: c_int = -225 ;
1076
+ pub const NF_IP6_PRI_CONNTRACK : :: c_int = -200 ;
1077
+ pub const NF_IP6_PRI_MANGLE : :: c_int = -150 ;
1078
+ pub const NF_IP6_PRI_NAT_DST : :: c_int = -100 ;
1079
+ pub const NF_IP6_PRI_FILTER : :: c_int = 0 ;
1080
+ pub const NF_IP6_PRI_SECURITY : :: c_int = 50 ;
1081
+ pub const NF_IP6_PRI_NAT_SRC : :: c_int = 100 ;
1082
+ pub const NF_IP6_PRI_SELINUX_LAST : :: c_int = 225 ;
1083
+ pub const NF_IP6_PRI_CONNTRACK_HELPER : :: c_int = 300 ;
1084
+ pub const NF_IP6_PRI_LAST : :: c_int = :: INT_MAX ;
1085
+
1086
+ // linux/netfilter/nf_tables.h
1040
1087
pub const NFT_TABLE_MAXNAMELEN : :: c_int = 32 ;
1041
1088
pub const NFT_CHAIN_MAXNAMELEN : :: c_int = 32 ;
1042
1089
pub const NFT_SET_MAXNAMELEN : :: c_int = 32 ;
1043
1090
pub const NFT_OBJ_MAXNAMELEN : :: c_int = 32 ;
1044
1091
pub const NFT_USERDATA_MAXLEN : :: c_int = 256 ;
1045
1092
1093
+ pub const NFT_REG_VERDICT : :: c_int = 0 ;
1094
+ pub const NFT_REG_1 : :: c_int = 1 ;
1095
+ pub const NFT_REG_2 : :: c_int = 2 ;
1096
+ pub const NFT_REG_3 : :: c_int = 3 ;
1097
+ pub const NFT_REG_4 : :: c_int = 4 ;
1098
+ pub const __NFT_REG_MAX: :: c_int = 5 ;
1099
+ pub const NFT_REG32_00 : :: c_int = 8 ;
1100
+ pub const NFT_REG32_01 : :: c_int = 9 ;
1101
+ pub const NFT_REG32_02 : :: c_int = 10 ;
1102
+ pub const NFT_REG32_03 : :: c_int = 11 ;
1103
+ pub const NFT_REG32_04 : :: c_int = 12 ;
1104
+ pub const NFT_REG32_05 : :: c_int = 13 ;
1105
+ pub const NFT_REG32_06 : :: c_int = 14 ;
1106
+ pub const NFT_REG32_07 : :: c_int = 15 ;
1107
+ pub const NFT_REG32_08 : :: c_int = 16 ;
1108
+ pub const NFT_REG32_09 : :: c_int = 17 ;
1109
+ pub const NFT_REG32_10 : :: c_int = 18 ;
1110
+ pub const NFT_REG32_11 : :: c_int = 19 ;
1111
+ pub const NFT_REG32_12 : :: c_int = 20 ;
1112
+ pub const NFT_REG32_13 : :: c_int = 21 ;
1113
+ pub const NFT_REG32_14 : :: c_int = 22 ;
1114
+ pub const NFT_REG32_15 : :: c_int = 23 ;
1115
+
1116
+ pub const NFT_REG_SIZE : :: c_int = 16 ;
1117
+ pub const NFT_REG32_SIZE : :: c_int = 4 ;
1118
+
1119
+ pub const NFT_CONTINUE : :: c_int = -1 ;
1120
+ pub const NFT_BREAK : :: c_int = -2 ;
1121
+ pub const NFT_JUMP : :: c_int = -3 ;
1122
+ pub const NFT_GOTO : :: c_int = -4 ;
1123
+ pub const NFT_RETURN : :: c_int = -5 ;
1124
+
1046
1125
pub const NFT_MSG_NEWTABLE : :: c_int = 0 ;
1047
1126
pub const NFT_MSG_GETTABLE : :: c_int = 1 ;
1048
1127
pub const NFT_MSG_DELTABLE : :: c_int = 2 ;
@@ -1067,6 +1146,126 @@ pub const NFT_MSG_DELOBJ: ::c_int = 20;
1067
1146
pub const NFT_MSG_GETOBJ_RESET : :: c_int = 21 ;
1068
1147
pub const NFT_MSG_MAX : :: c_int = 22 ;
1069
1148
1149
+ pub const NFT_SET_ANONYMOUS : :: c_int = 0x1 ;
1150
+ pub const NFT_SET_CONSTANT : :: c_int = 0x2 ;
1151
+ pub const NFT_SET_INTERVAL : :: c_int = 0x4 ;
1152
+ pub const NFT_SET_MAP : :: c_int = 0x8 ;
1153
+ pub const NFT_SET_TIMEOUT : :: c_int = 0x10 ;
1154
+ pub const NFT_SET_EVAL : :: c_int = 0x20 ;
1155
+
1156
+ pub const NFT_SET_POL_PERFORMANCE : :: c_int = 0 ;
1157
+ pub const NFT_SET_POL_MEMORY : :: c_int = 1 ;
1158
+
1159
+ pub const NFT_SET_ELEM_INTERVAL_END : :: c_int = 0x1 ;
1160
+
1161
+ pub const NFT_DATA_VALUE : :: c_uint = 0 ;
1162
+ pub const NFT_DATA_VERDICT : :: c_uint = 0xffffff00 ;
1163
+
1164
+ pub const NFT_DATA_RESERVED_MASK : :: c_uint = 0xffffff00 ;
1165
+
1166
+ pub const NFT_DATA_VALUE_MAXLEN : :: c_int = 64 ;
1167
+
1168
+ pub const NFT_BYTEORDER_NTOH : :: c_int = 0 ;
1169
+ pub const NFT_BYTEORDER_HTON : :: c_int = 1 ;
1170
+
1171
+ pub const NFT_CMP_EQ : :: c_int = 0 ;
1172
+ pub const NFT_CMP_NEQ : :: c_int = 1 ;
1173
+ pub const NFT_CMP_LT : :: c_int = 2 ;
1174
+ pub const NFT_CMP_LTE : :: c_int = 3 ;
1175
+ pub const NFT_CMP_GT : :: c_int = 4 ;
1176
+ pub const NFT_CMP_GTE : :: c_int = 5 ;
1177
+
1178
+ pub const NFT_RANGE_EQ : :: c_int = 0 ;
1179
+ pub const NFT_RANGE_NEQ : :: c_int = 1 ;
1180
+
1181
+ pub const NFT_LOOKUP_F_INV : :: c_int = ( 1 << 0 ) ;
1182
+
1183
+ pub const NFT_DYNSET_OP_ADD : :: c_int = 0 ;
1184
+ pub const NFT_DYNSET_OP_UPDATE : :: c_int = 1 ;
1185
+
1186
+ pub const NFT_DYNSET_F_INV : :: c_int = ( 1 << 0 ) ;
1187
+
1188
+ pub const NFT_PAYLOAD_LL_HEADER : :: c_int = 0 ;
1189
+ pub const NFT_PAYLOAD_NETWORK_HEADER : :: c_int = 1 ;
1190
+ pub const NFT_PAYLOAD_TRANSPORT_HEADER : :: c_int = 2 ;
1191
+
1192
+ pub const NFT_PAYLOAD_CSUM_NONE : :: c_int = 0 ;
1193
+ pub const NFT_PAYLOAD_CSUM_INET : :: c_int = 1 ;
1194
+
1195
+ pub const NFT_META_LEN : :: c_int = 0 ;
1196
+ pub const NFT_META_PROTOCOL : :: c_int = 1 ;
1197
+ pub const NFT_META_PRIORITY : :: c_int = 2 ;
1198
+ pub const NFT_META_MARK : :: c_int = 3 ;
1199
+ pub const NFT_META_IIF : :: c_int = 4 ;
1200
+ pub const NFT_META_OIF : :: c_int = 5 ;
1201
+ pub const NFT_META_IIFNAME : :: c_int = 6 ;
1202
+ pub const NFT_META_OIFNAME : :: c_int = 7 ;
1203
+ pub const NFT_META_IIFTYPE : :: c_int = 8 ;
1204
+ pub const NFT_META_OIFTYPE : :: c_int = 9 ;
1205
+ pub const NFT_META_SKUID : :: c_int = 10 ;
1206
+ pub const NFT_META_SKGID : :: c_int = 11 ;
1207
+ pub const NFT_META_NFTRACE : :: c_int = 12 ;
1208
+ pub const NFT_META_RTCLASSID : :: c_int = 13 ;
1209
+ pub const NFT_META_SECMARK : :: c_int = 14 ;
1210
+ pub const NFT_META_NFPROTO : :: c_int = 15 ;
1211
+ pub const NFT_META_L4PROTO : :: c_int = 16 ;
1212
+ pub const NFT_META_BRI_IIFNAME : :: c_int = 17 ;
1213
+ pub const NFT_META_BRI_OIFNAME : :: c_int = 18 ;
1214
+ pub const NFT_META_PKTTYPE : :: c_int = 19 ;
1215
+ pub const NFT_META_CPU : :: c_int = 20 ;
1216
+ pub const NFT_META_IIFGROUP : :: c_int = 21 ;
1217
+ pub const NFT_META_OIFGROUP : :: c_int = 22 ;
1218
+ pub const NFT_META_CGROUP : :: c_int = 23 ;
1219
+ pub const NFT_META_PRANDOM : :: c_int = 24 ;
1220
+
1221
+ pub const NFT_CT_STATE : :: c_int = 0 ;
1222
+ pub const NFT_CT_DIRECTION : :: c_int = 1 ;
1223
+ pub const NFT_CT_STATUS : :: c_int = 2 ;
1224
+ pub const NFT_CT_MARK : :: c_int = 3 ;
1225
+ pub const NFT_CT_SECMARK : :: c_int = 4 ;
1226
+ pub const NFT_CT_EXPIRATION : :: c_int = 5 ;
1227
+ pub const NFT_CT_HELPER : :: c_int = 6 ;
1228
+ pub const NFT_CT_L3PROTOCOL : :: c_int = 7 ;
1229
+ pub const NFT_CT_SRC : :: c_int = 8 ;
1230
+ pub const NFT_CT_DST : :: c_int = 9 ;
1231
+ pub const NFT_CT_PROTOCOL : :: c_int = 10 ;
1232
+ pub const NFT_CT_PROTO_SRC : :: c_int = 11 ;
1233
+ pub const NFT_CT_PROTO_DST : :: c_int = 12 ;
1234
+ pub const NFT_CT_LABELS : :: c_int = 13 ;
1235
+ pub const NFT_CT_PKTS : :: c_int = 14 ;
1236
+ pub const NFT_CT_BYTES : :: c_int = 15 ;
1237
+
1238
+ pub const NFT_LIMIT_PKTS : :: c_int = 0 ;
1239
+ pub const NFT_LIMIT_PKT_BYTES : :: c_int = 1 ;
1240
+
1241
+ pub const NFT_LIMIT_F_INV : :: c_int = ( 1 << 0 ) ;
1242
+
1243
+ pub const NFT_QUEUE_FLAG_BYPASS : :: c_int = 0x01 ;
1244
+ pub const NFT_QUEUE_FLAG_CPU_FANOUT : :: c_int = 0x02 ;
1245
+ pub const NFT_QUEUE_FLAG_MASK : :: c_int = 0x03 ;
1246
+
1247
+ pub const NFT_QUOTA_F_INV : :: c_int = ( 1 << 0 ) ;
1248
+
1249
+ pub const NFT_REJECT_ICMP_UNREACH : :: c_int = 0 ;
1250
+ pub const NFT_REJECT_TCP_RST : :: c_int = 1 ;
1251
+ pub const NFT_REJECT_ICMPX_UNREACH : :: c_int = 2 ;
1252
+
1253
+ pub const NFT_REJECT_ICMPX_NO_ROUTE : :: c_int = 0 ;
1254
+ pub const NFT_REJECT_ICMPX_PORT_UNREACH : :: c_int = 1 ;
1255
+ pub const NFT_REJECT_ICMPX_HOST_UNREACH : :: c_int = 2 ;
1256
+ pub const NFT_REJECT_ICMPX_ADMIN_PROHIBITED : :: c_int = 3 ;
1257
+
1258
+ pub const NFT_NAT_SNAT : :: c_int = 0 ;
1259
+ pub const NFT_NAT_DNAT : :: c_int = 1 ;
1260
+
1261
+ pub const NFT_TRACETYPE_UNSPEC : :: c_int = 0 ;
1262
+ pub const NFT_TRACETYPE_POLICY : :: c_int = 1 ;
1263
+ pub const NFT_TRACETYPE_RETURN : :: c_int = 2 ;
1264
+ pub const NFT_TRACETYPE_RULE : :: c_int = 3 ;
1265
+
1266
+ pub const NFT_NG_INCREMENTAL : :: c_int = 0 ;
1267
+ pub const NFT_NG_RANDOM : :: c_int = 1 ;
1268
+
1070
1269
pub const IFF_TUN : :: c_int = 0x0001 ;
1071
1270
pub const IFF_TAP : :: c_int = 0x0002 ;
1072
1271
pub const IFF_NO_PI : :: c_int = 0x1000 ;
0 commit comments