Lines Matching defs:rule
937 * Parse a rule definition and send it upwards.
947 struct ifbrlreq rule;
951 warnx("invalid rule");
954 bzero(&rule, sizeof(rule));
955 strlcpy(rule.ifbr_name, ifname, sizeof(rule.ifbr_name));
958 rule.ifbr_action = BRL_ACTION_BLOCK;
960 rule.ifbr_action = BRL_ACTION_PASS;
970 rule.ifbr_flags |= BRL_FLAG_IN;
972 rule.ifbr_flags |= BRL_FLAG_OUT;
974 rule.ifbr_flags |= BRL_FLAG_IN | BRL_FLAG_OUT;
976 rule.ifbr_flags |= BRL_FLAG_IN | BRL_FLAG_OUT;
988 strlcpy(rule.ifbr_ifsname, argv[0], sizeof(rule.ifbr_ifsname));
994 if (rule.ifbr_flags & BRL_FLAG_DSTVALID)
996 rule.ifbr_flags |= BRL_FLAG_DSTVALID;
997 dea = &rule.ifbr_dst;
1000 if (rule.ifbr_flags & BRL_FLAG_SRCVALID)
1002 rule.ifbr_flags |= BRL_FLAG_SRCVALID;
1003 dea = &rule.ifbr_src;
1010 if (rule.ifbr_tagname[0]) {
1015 if (strlcpy(rule.ifbr_tagname, argv[0],
1022 rule.ifbr_arpf.brla_flags |= BRLA_ARP;
1024 if (bridge_arprule(&rule, &argc, &argv) == -1)
1027 rule.ifbr_arpf.brla_flags |= BRLA_RARP;
1029 if (bridge_arprule(&rule, &argc, &argv) == -1)
1047 if (ioctl(sock, SIOCBRDGARL, &rule) == -1) {
1059 bridge_arprule(struct ifbrlreq *rule, int *argc, char ***argv)
1066 if (rule->ifbr_arpf.brla_flags & BRLA_ARP)
1067 rule->ifbr_arpf.brla_op = ARPOP_REQUEST;
1068 else if (rule->ifbr_arpf.brla_flags & BRLA_RARP)
1069 rule->ifbr_arpf.brla_op = ARPOP_REVREQUEST;
1073 if (rule->ifbr_arpf.brla_flags & BRLA_ARP)
1074 rule->ifbr_arpf.brla_op = ARPOP_REPLY;
1075 else if (rule->ifbr_arpf.brla_flags & BRLA_RARP)
1076 rule->ifbr_arpf.brla_op = ARPOP_REVREPLY;
1080 rule->ifbr_arpf.brla_flags |= BRLA_SHA;
1081 dea = &rule->ifbr_arpf.brla_sha;
1083 rule->ifbr_arpf.brla_flags |= BRLA_THA;
1084 dea = &rule->ifbr_arpf.brla_tha;
1086 rule->ifbr_arpf.brla_flags |= BRLA_SPA;
1087 dia = &rule->ifbr_arpf.brla_spa;
1089 rule->ifbr_arpf.brla_flags |= BRLA_TPA;
1090 dia = &rule->ifbr_arpf.brla_tpa;
1149 warnx("invalid rule: %d: %s ...", ln, buf);
1164 fprintf(stderr, "%s: invalid rule: ", __progname);