Lines Matching refs:compat_rule

827 ipfw_map_from_cmds_32(struct ip_fw_32 *curr_rule, struct ip_fw_compat_32 *compat_rule)
841 compat_rule->fw_prot = cmd->arg1;
845 compat_rule->fw_flg |= IP_FW_F_SME_COMPAT;
847 compat_rule->fw_flg |= IP_FW_F_INVSRC_COMPAT;
856 compat_rule->fw_src = ip->addr;
857 compat_rule->fw_smsk = ip->mask;
859 compat_rule->fw_flg |= IP_FW_F_INVSRC_COMPAT;
870 compat_rule->fw_src.s_addr = cmd32->d[0];
872 compat_rule->fw_flg |= IP_FW_F_INVSRC_COMPAT;
887 compat_rule->fw_flg |= IP_FW_F_SRNG_COMPAT;
888 compat_rule->fw_uar_compat.fw_pts[j++] = p[0];
889 compat_rule->fw_uar_compat.fw_pts[j] = p[1];
891 compat_rule->fw_uar_compat.fw_pts[j] = p[0];
894 IP_FW_SETNSRCP_COMPAT(compat_rule, j);
901 compat_rule->fw_flg |= IP_FW_F_DME_COMPAT;
903 compat_rule->fw_flg |= IP_FW_F_INVDST_COMPAT;
912 compat_rule->fw_dst = ip->addr;
913 compat_rule->fw_dmsk = ip->mask;
915 compat_rule->fw_flg |= IP_FW_F_INVDST_COMPAT;
925 compat_rule->fw_dst.s_addr = cmd32->d[0];
927 compat_rule->fw_flg |= IP_FW_F_INVDST_COMPAT;
937 j = IP_FW_GETNSRCP_COMPAT(compat_rule);
943 compat_rule->fw_flg |= IP_FW_F_DRNG_COMPAT;
944 compat_rule->fw_uar_compat.fw_pts[j++] = p[0];
945 compat_rule->fw_uar_compat.fw_pts[j] = p[1];
947 compat_rule->fw_uar_compat.fw_pts[j] = p[0];
950 IP_FW_SETNDSTP_COMPAT(compat_rule, (j - IP_FW_GETNSRCP_COMPAT(compat_rule)));
959 compat_rule->fw_flg |= IP_FW_F_PRN_COMPAT;
960 compat_rule->fw_logamount = c->max_log;
964 compat_rule->fw_flg |= IP_FW_F_UID_COMPAT;
965 compat_rule->fw_uid = cmd32->d[0];
970 compat_rule->fw_flg |= IP_FW_F_OUT_COMPAT;
972 compat_rule->fw_flg |= IP_FW_F_IN_COMPAT;
977 compat_rule->fw_flg |= IP_FW_F_KEEP_S_COMPAT;
981 compat_rule->fw_flg |= IP_FW_BRIDGED_COMPAT;
991 compat_rule->fw_flg |= IP_FW_F_OIFACE_COMPAT;
995 compat_rule->fw_flg |= IP_FW_F_OIFACE_COMPAT;
998 compat_rule->fw_flg |= IP_FW_F_OIFNAME_COMPAT;
1002 compat_rule->fw_out_if = ifu;
1014 compat_rule->fw_flg |= IP_FW_F_IIFACE_COMPAT;
1018 compat_rule->fw_flg |= IP_FW_F_IIFACE_COMPAT;
1021 compat_rule->fw_flg |= IP_FW_F_IIFNAME_COMPAT;
1025 compat_rule->fw_in_if = ifu;
1040 compat_rule->fw_flg |= IP_FW_F_IIFNAME_COMPAT;
1046 compat_rule->fw_flg |= IF_FW_F_VIAHACK_COMPAT;
1047 compat_rule->fw_out_if = compat_rule->fw_in_if = ifu;
1053 compat_rule->fw_flg |= IP_FW_F_FRAG_COMPAT;
1058 compat_rule->fw_ipopt = (cmd->arg1 & 0xff);
1059 compat_rule->fw_ipnopt = ((cmd->arg1 >> 8) & 0xff);
1066 compat_rule->fw_tcpf = IP_FW_TCPF_SYN_COMPAT;
1067 compat_rule->fw_tcpnf = IP_FW_TCPF_ACK_COMPAT;
1070 compat_rule->fw_tcpf = fill_compat_tcpflags(cmd->arg1 & 0xff);
1071 compat_rule->fw_tcpnf = fill_compat_tcpflags((cmd->arg1 >> 8) & 0xff);
1077 compat_rule->fw_tcpopt = (cmd->arg1 & 0xff);
1078 compat_rule->fw_tcpnopt = ((cmd->arg1 >> 8) & 0xff);
1082 compat_rule->fw_ipflg |= IP_FW_IF_TCPEST_COMPAT;
1091 compat_rule->fw_flg |= IP_FW_F_ICMPBIT_COMPAT;
1095 compat_rule->fw_uar_compat.fw_icmptypes[type / (sizeof(unsigned) * 8)] |=
1107 ipfw_map_from_cmds_64(struct ip_fw_64 *curr_rule, struct ip_fw_compat_64 *compat_rule)
1120 compat_rule->fw_prot = cmd->arg1;
1124 compat_rule->fw_flg |= IP_FW_F_SME_COMPAT;
1126 compat_rule->fw_flg |= IP_FW_F_INVSRC_COMPAT;
1135 compat_rule->fw_src = ip->addr;
1136 compat_rule->fw_smsk = ip->mask;
1138 compat_rule->fw_flg |= IP_FW_F_INVSRC_COMPAT;
1149 compat_rule->fw_src.s_addr = cmd32->d[0];
1151 compat_rule->fw_flg |= IP_FW_F_INVSRC_COMPAT;
1166 compat_rule->fw_flg |= IP_FW_F_SRNG_COMPAT;
1167 compat_rule->fw_uar_compat.fw_pts[j++] = p[0];
1168 compat_rule->fw_uar_compat.fw_pts[j] = p[1];
1170 compat_rule->fw_uar_compat.fw_pts[j] = p[0];
1173 IP_FW_SETNSRCP_COMPAT(compat_rule, j);
1180 compat_rule->fw_flg |= IP_FW_F_DME_COMPAT;
1182 compat_rule->fw_flg |= IP_FW_F_INVDST_COMPAT;
1191 compat_rule->fw_dst = ip->addr;
1192 compat_rule->fw_dmsk = ip->mask;
1194 compat_rule->fw_flg |= IP_FW_F_INVDST_COMPAT;
1204 compat_rule->fw_dst.s_addr = cmd32->d[0];
1206 compat_rule->fw_flg |= IP_FW_F_INVDST_COMPAT;
1216 j = IP_FW_GETNSRCP_COMPAT(compat_rule);
1222 compat_rule->fw_flg |= IP_FW_F_DRNG_COMPAT;
1223 compat_rule->fw_uar_compat.fw_pts[j++] = p[0];
1224 compat_rule->fw_uar_compat.fw_pts[j] = p[1];
1226 compat_rule->fw_uar_compat.fw_pts[j] = p[0];
1229 IP_FW_SETNDSTP_COMPAT(compat_rule, (j - IP_FW_GETNSRCP_COMPAT(compat_rule)));
1238 compat_rule->fw_flg |= IP_FW_F_PRN_COMPAT;
1239 compat_rule->fw_logamount = c->max_log;
1243 compat_rule->fw_flg |= IP_FW_F_UID_COMPAT;
1244 compat_rule->fw_uid = cmd32->d[0];
1249 compat_rule->fw_flg |= IP_FW_F_OUT_COMPAT;
1251 compat_rule->fw_flg |= IP_FW_F_IN_COMPAT;
1256 compat_rule->fw_flg |= IP_FW_F_KEEP_S_COMPAT;
1260 compat_rule->fw_flg |= IP_FW_BRIDGED_COMPAT;
1270 compat_rule->fw_flg |= IP_FW_F_OIFACE_COMPAT;
1274 compat_rule->fw_flg |= IP_FW_F_OIFACE_COMPAT;
1277 compat_rule->fw_flg |= IP_FW_F_OIFNAME_COMPAT;
1281 compat_rule->fw_out_if = ifu;
1293 compat_rule->fw_flg |= IP_FW_F_IIFACE_COMPAT;
1297 compat_rule->fw_flg |= IP_FW_F_IIFACE_COMPAT;
1300 compat_rule->fw_flg |= IP_FW_F_IIFNAME_COMPAT;
1304 compat_rule->fw_in_if = ifu;
1319 compat_rule->fw_flg |= IP_FW_F_IIFNAME_COMPAT;
1325 compat_rule->fw_flg |= IF_FW_F_VIAHACK_COMPAT;
1326 compat_rule->fw_out_if = compat_rule->fw_in_if = ifu;
1332 compat_rule->fw_flg |= IP_FW_F_FRAG_COMPAT;
1337 compat_rule->fw_ipopt = (cmd->arg1 & 0xff);
1338 compat_rule->fw_ipnopt = ((cmd->arg1 >> 8) & 0xff);
1345 compat_rule->fw_tcpf = IP_FW_TCPF_SYN_COMPAT;
1346 compat_rule->fw_tcpnf = IP_FW_TCPF_ACK_COMPAT;
1349 compat_rule->fw_tcpf = fill_compat_tcpflags(cmd->arg1 & 0xff);
1350 compat_rule->fw_tcpnf = fill_compat_tcpflags((cmd->arg1 >> 8) & 0xff);
1356 compat_rule->fw_tcpopt = (cmd->arg1 & 0xff);
1357 compat_rule->fw_tcpnopt = ((cmd->arg1 >> 8) & 0xff);
1361 compat_rule->fw_ipflg |= IP_FW_IF_TCPEST_COMPAT;
1370 compat_rule->fw_flg |= IP_FW_F_ICMPBIT_COMPAT;
1374 compat_rule->fw_uar_compat.fw_icmptypes[type / (sizeof(unsigned) * 8)] |=
1386 ipfw_map_from_actions_32(struct ip_fw_32 *curr_rule, struct ip_fw_compat_32 *compat_rule)
1396 compat_rule->fw_flg |= IP_FW_F_ACCEPT_COMPAT;
1399 compat_rule->fw_flg |= IP_FW_F_COUNT_COMPAT;
1402 compat_rule->fw_flg |= IP_FW_F_PIPE_COMPAT;
1403 compat_rule->fw_divert_port_compat = cmd->arg1;
1406 compat_rule->fw_flg |= IP_FW_F_QUEUE_COMPAT;
1407 compat_rule->fw_divert_port_compat = cmd->arg1;
1410 compat_rule->fw_flg |= IP_FW_F_SKIPTO_COMPAT;
1411 compat_rule->fw_skipto_rule_compat = cmd->arg1;
1414 compat_rule->fw_flg |= IP_FW_F_DIVERT_COMPAT;
1415 compat_rule->fw_divert_port_compat = cmd->arg1;
1418 compat_rule->fw_flg |= IP_FW_F_TEE_COMPAT;
1419 compat_rule->fw_divert_port_compat = cmd->arg1;
1425 compat_rule->fw_flg |= IP_FW_F_FWD_COMPAT;
1426 compat_rule->fw_fwd_ip_compat.sin_len = p->sa.sin_len;
1427 compat_rule->fw_fwd_ip_compat.sin_family = p->sa.sin_family;
1428 compat_rule->fw_fwd_ip_compat.sin_port = p->sa.sin_port;
1429 compat_rule->fw_fwd_ip_compat.sin_addr = p->sa.sin_addr;
1434 compat_rule->fw_flg |= IP_FW_F_DENY_COMPAT;
1437 compat_rule->fw_flg |= IP_FW_F_REJECT_COMPAT;
1438 compat_rule->fw_reject_code_compat = cmd->arg1;
1441 compat_rule->fw_flg |= IP_FW_F_CHECK_S_COMPAT;
1450 ipfw_map_from_actions_64(struct ip_fw_64 *curr_rule, struct ip_fw_compat_64 *compat_rule)
1459 compat_rule->fw_flg |= IP_FW_F_ACCEPT_COMPAT;
1462 compat_rule->fw_flg |= IP_FW_F_COUNT_COMPAT;
1465 compat_rule->fw_flg |= IP_FW_F_PIPE_COMPAT;
1466 compat_rule->fw_divert_port_compat = cmd->arg1;
1469 compat_rule->fw_flg |= IP_FW_F_QUEUE_COMPAT;
1470 compat_rule->fw_divert_port_compat = cmd->arg1;
1473 compat_rule->fw_flg |= IP_FW_F_SKIPTO_COMPAT;
1474 compat_rule->fw_skipto_rule_compat = cmd->arg1;
1477 compat_rule->fw_flg |= IP_FW_F_DIVERT_COMPAT;
1478 compat_rule->fw_divert_port_compat = cmd->arg1;
1481 compat_rule->fw_flg |= IP_FW_F_TEE_COMPAT;
1482 compat_rule->fw_divert_port_compat = cmd->arg1;
1488 compat_rule->fw_flg |= IP_FW_F_FWD_COMPAT;
1489 compat_rule->fw_fwd_ip_compat.sin_len = p->sa.sin_len;
1490 compat_rule->fw_fwd_ip_compat.sin_family = p->sa.sin_family;
1491 compat_rule->fw_fwd_ip_compat.sin_port = p->sa.sin_port;
1492 compat_rule->fw_fwd_ip_compat.sin_addr = p->sa.sin_addr;
1497 compat_rule->fw_flg |= IP_FW_F_DENY_COMPAT;
1500 compat_rule->fw_flg |= IP_FW_F_REJECT_COMPAT;
1501 compat_rule->fw_reject_code_compat = cmd->arg1;
1504 compat_rule->fw_flg |= IP_FW_F_CHECK_S_COMPAT;
1977 ipfw_convert_to_cmds_32(struct ip_fw *curr_rule, struct ip_fw_compat_32 *compat_rule)
1984 if (!compat_rule || !curr_rule || !(curr_rule->cmd)) {
1991 if (ipfw_check_vers1_struct_32(compat_rule)) {
2002 u_int flag = compat_rule->fw_flg;
2021 action->arg1 = compat_rule->fw_divert_port_compat;
2026 action->arg1 = compat_rule->fw_divert_port_compat;
2030 action->arg1 = compat_rule->fw_skipto_rule_compat;
2034 action->arg1 = compat_rule->fw_divert_port_compat;
2038 action->arg1 = compat_rule->fw_divert_port_compat;
2047 p->sa.sin_len = compat_rule->fw_fwd_ip_compat.sin_len;
2048 p->sa.sin_family = compat_rule->fw_fwd_ip_compat.sin_family;
2049 p->sa.sin_port = compat_rule->fw_fwd_ip_compat.sin_port;
2050 p->sa.sin_addr = compat_rule->fw_fwd_ip_compat.sin_addr;
2060 action->arg1 = compat_rule->fw_reject_code_compat;
2085 u_int flag = compat_rule->fw_flg;
2093 c->max_log = compat_rule->fw_logamount;
2100 if (compat_rule->fw_prot != 0) {
2101 fill_cmd(cmd, O_PROTO, compat_rule->fw_prot);
2117 if (compat_rule->fw_smsk.s_addr != 0) {
2121 ip->addr = compat_rule->fw_src;
2122 ip->mask = compat_rule->fw_smsk;
2129 if (compat_rule->fw_src.s_addr == 0) {
2133 cmd32->d[0] = compat_rule->fw_src.s_addr;
2154 nports = IP_FW_GETNSRCP_COMPAT(compat_rule),
2161 p[0] = compat_rule->fw_uar_compat.fw_pts[i++];
2162 p[1] = compat_rule->fw_uar_compat.fw_pts[i];
2165 p[0] = p[1] = compat_rule->fw_uar_compat.fw_pts[i];
2190 if (compat_rule->fw_dmsk.s_addr != 0) {
2194 ip->addr = compat_rule->fw_dst;
2195 ip->mask = compat_rule->fw_dmsk;
2202 if (compat_rule->fw_dst.s_addr == 0) {
2206 cmd32->d[0] = compat_rule->fw_dst.s_addr;
2226 int i = IP_FW_GETNSRCP_COMPAT(compat_rule),
2228 nports = (IP_FW_GETNDSTP_COMPAT(compat_rule) + i),
2236 p[0] = compat_rule->fw_uar_compat.fw_pts[i++];
2237 p[1] = compat_rule->fw_uar_compat.fw_pts[i];
2240 p[0] = p[1] = compat_rule->fw_uar_compat.fw_pts[i];
2258 cmd32->d[0] = compat_rule->fw_uid;
2281 union ip_fw_if_compat ifu = compat_rule->fw_in_if;
2291 else if (compat_rule->fw_flg & IP_FW_F_IIFNAME_COMPAT) {
2329 union ip_fw_if_compat ifu = compat_rule->fw_out_if;
2354 union ip_fw_if_compat ifu = compat_rule->fw_in_if;
2386 if (compat_rule->fw_ipopt != 0 || compat_rule->fw_ipnopt != 0) {
2387 fill_cmd(cmd, O_IPOPT, (compat_rule->fw_ipopt & 0xff) |
2388 (compat_rule->fw_ipnopt & 0xff) << 8);
2394 if (compat_rule->fw_prot == IPPROTO_TCP) {
2395 if (compat_rule->fw_ipflg & IP_FW_IF_TCPEST_COMPAT) {
2403 if (compat_rule->fw_tcpf != 0 || compat_rule->fw_tcpnf != 0) {
2404 if ((compat_rule->fw_tcpf & IP_FW_TCPF_SYN_COMPAT) &&
2405 compat_rule->fw_tcpnf & IP_FW_TCPF_ACK_COMPAT) {
2412 fill_cmd(cmd, O_TCPFLAGS, (compat_rule->fw_tcpf & 0xff) |
2413 (compat_rule->fw_tcpnf & 0xff) << 8);
2419 if (compat_rule->fw_tcpopt != 0 || compat_rule->fw_tcpnopt != 0) {
2420 fill_cmd(cmd, O_TCPOPTS, (compat_rule->fw_tcpopt & 0xff) |
2421 (compat_rule->fw_tcpnopt & 0xff) << 8);
2438 cmd32->d[0] |= compat_rule->fw_uar_compat.fw_icmptypes[i];
2453 if (compat_rule->fw_flg & IP_FW_F_RND_MATCH_COMPAT) {
2456 *((int32_t *)(dst+1)) = compat_rule->pipe_ptr;
2521 ipfw_convert_to_cmds_64(struct ip_fw *curr_rule, struct ip_fw_compat_64 *compat_rule)
2528 if (!compat_rule || !curr_rule || !(curr_rule->cmd)) {
2535 if (ipfw_check_vers1_struct_64(compat_rule)) {
2545 u_int flag = compat_rule->fw_flg;
2564 action->arg1 = compat_rule->fw_divert_port_compat;
2569 action->arg1 = compat_rule->fw_divert_port_compat;
2573 action->arg1 = compat_rule->fw_skipto_rule_compat;
2577 action->arg1 = compat_rule->fw_divert_port_compat;
2581 action->arg1 = compat_rule->fw_divert_port_compat;
2590 p->sa.sin_len = compat_rule->fw_fwd_ip_compat.sin_len;
2591 p->sa.sin_family = compat_rule->fw_fwd_ip_compat.sin_family;
2592 p->sa.sin_port = compat_rule->fw_fwd_ip_compat.sin_port;
2593 p->sa.sin_addr = compat_rule->fw_fwd_ip_compat.sin_addr;
2603 action->arg1 = compat_rule->fw_reject_code_compat;
2628 u_int flag = compat_rule->fw_flg;
2636 c->max_log = compat_rule->fw_logamount;
2643 if (compat_rule->fw_prot != 0) {
2644 fill_cmd(cmd, O_PROTO, compat_rule->fw_prot);
2660 if (compat_rule->fw_smsk.s_addr != 0) {
2664 ip->addr = compat_rule->fw_src;
2665 ip->mask = compat_rule->fw_smsk;
2672 if (compat_rule->fw_src.s_addr == 0) {
2676 cmd32->d[0] = compat_rule->fw_src.s_addr;
2697 nports = IP_FW_GETNSRCP_COMPAT(compat_rule),
2704 p[0] = compat_rule->fw_uar_compat.fw_pts[i++];
2705 p[1] = compat_rule->fw_uar_compat.fw_pts[i];
2708 p[0] = p[1] = compat_rule->fw_uar_compat.fw_pts[i];
2733 if (compat_rule->fw_dmsk.s_addr != 0) {
2737 ip->addr = compat_rule->fw_dst;
2738 ip->mask = compat_rule->fw_dmsk;
2745 if (compat_rule->fw_dst.s_addr == 0) {
2749 cmd32->d[0] = compat_rule->fw_dst.s_addr;
2769 int i = IP_FW_GETNSRCP_COMPAT(compat_rule),
2771 nports = (IP_FW_GETNDSTP_COMPAT(compat_rule) + i),
2779 p[0] = compat_rule->fw_uar_compat.fw_pts[i++];
2780 p[1] = compat_rule->fw_uar_compat.fw_pts[i];
2783 p[0] = p[1] = compat_rule->fw_uar_compat.fw_pts[i];
2801 cmd32->d[0] = compat_rule->fw_uid;
2824 union ip_fw_if_compat ifu = compat_rule->fw_in_if;
2834 else if (compat_rule->fw_flg & IP_FW_F_IIFNAME_COMPAT) {
2872 union ip_fw_if_compat ifu = compat_rule->fw_out_if;
2897 union ip_fw_if_compat ifu = compat_rule->fw_in_if;
2929 if (compat_rule->fw_ipopt != 0 || compat_rule->fw_ipnopt != 0) {
2930 fill_cmd(cmd, O_IPOPT, (compat_rule->fw_ipopt & 0xff) |
2931 (compat_rule->fw_ipnopt & 0xff) << 8);
2937 if (compat_rule->fw_prot == IPPROTO_TCP) {
2938 if (compat_rule->fw_ipflg & IP_FW_IF_TCPEST_COMPAT) {
2946 if (compat_rule->fw_tcpf != 0 || compat_rule->fw_tcpnf != 0) {
2947 if ((compat_rule->fw_tcpf & IP_FW_TCPF_SYN_COMPAT) &&
2948 compat_rule->fw_tcpnf & IP_FW_TCPF_ACK_COMPAT) {
2955 fill_cmd(cmd, O_TCPFLAGS, (compat_rule->fw_tcpf & 0xff) |
2956 (compat_rule->fw_tcpnf & 0xff) << 8);
2962 if (compat_rule->fw_tcpopt != 0 || compat_rule->fw_tcpnopt != 0) {
2963 fill_cmd(cmd, O_TCPOPTS, (compat_rule->fw_tcpopt & 0xff) |
2964 (compat_rule->fw_tcpnopt & 0xff) << 8);
2980 cmd32->d[0] |= compat_rule->fw_uar_compat.fw_icmptypes[i];
2994 if (compat_rule->fw_flg & IP_FW_F_RND_MATCH_COMPAT) {
2997 *((int32_t *)(dst+1)) = compat_rule->pipe_ptr;