Lines Matching refs:src

171     PF_RULE_FIELD(src.port,		NOMERGE),
173 PF_RULE_FIELD(src.port_op, NOMERGE),
175 PF_RULE_FIELD(src.neg, NOMERGE),
179 PF_RULE_FIELD(src.addr, COMBINED),
505 src_eq = addrs_equal(&p1->por_rule.src,
506 &p2->por_rule.src);
536 addrs_combineable(&p1->por_rule.src,
537 &p2->por_rule.src)) {
542 p1->por_rule.af, &p1->por_rule.src))
545 p1->por_rule.af, &p2->por_rule.src))
588 memset(&p1->por_rule.src.addr, 0,
589 sizeof(p1->por_rule.src.addr));
590 p1->por_rule.src.addr.type = PF_ADDR_TABLE;
591 strlcpy(p1->por_rule.src.addr.v.tblname,
593 sizeof(p1->por_rule.src.addr.v.tblname));
1144 if (a->src.neg != b->src.neg ||
1145 a->src.addr.type != b->src.addr.type)
1152 switch (a->src.addr.type) {
1154 if (memcmp(&a->src.addr.v.a.addr, &b->src.addr.v.a.addr,
1155 sizeof(a->src.addr.v.a.addr)) ||
1156 memcmp(&a->src.addr.v.a.mask, &b->src.addr.v.a.mask,
1157 sizeof(a->src.addr.v.a.mask)) ||
1158 (a->src.addr.v.a.addr.addr32[0] == 0 &&
1159 a->src.addr.v.a.addr.addr32[1] == 0 &&
1160 a->src.addr.v.a.addr.addr32[2] == 0 &&
1161 a->src.addr.v.a.addr.addr32[3] == 0))
1165 if (strcmp(a->src.addr.v.ifname, b->src.addr.v.ifname) != 0 ||
1166 a->src.addr.iflags != b->src.addr.iflags ||
1167 memcmp(&a->src.addr.v.a.mask, &b->src.addr.v.a.mask,
1168 sizeof(a->src.addr.v.a.mask)))
1175 return (strcmp(a->src.addr.v.tblname, b->src.addr.v.tblname));
1184 if (a->src.port_op == PF_OP_NONE || a->src.port_op != b->src.port_op ||
1185 a->src.port[0] != b->src.port[0] ||
1186 a->src.port[1] != b->src.port[1])
1425 /* per-rule src-track is also a hard break */
1517 comparable_rule(struct pf_rule *dst, const struct pf_rule *src, int type)
1524 memcpy(dst, src, sizeof(*dst));
1557 if (super->src.port_op == 0) {
1558 sub->src.port_op = 0;
1559 sub->src.port[0] = 0;
1560 sub->src.port[1] = 0;
1568 if (super->src.addr.type == PF_ADDR_ADDRMASK && !super->src.neg &&
1569 !sub->src.neg && super->src.addr.v.a.mask.addr32[0] == 0 &&
1570 super->src.addr.v.a.mask.addr32[1] == 0 &&
1571 super->src.addr.v.a.mask.addr32[2] == 0 &&
1572 super->src.addr.v.a.mask.addr32[3] == 0)
1573 memset(&sub->src.addr, 0, sizeof(sub->src.addr));
1574 else if (super->src.addr.type == PF_ADDR_ADDRMASK &&
1575 sub->src.addr.type == PF_ADDR_ADDRMASK &&
1576 super->src.neg == sub->src.neg &&
1578 unmask(&super->src.addr.v.a.mask, super->af) <
1579 unmask(&sub->src.addr.v.a.mask, sub->af) &&
1580 super->src.addr.v.a.addr.addr32[0] ==
1581 (sub->src.addr.v.a.addr.addr32[0] &
1582 super->src.addr.v.a.mask.addr32[0]) &&
1583 super->src.addr.v.a.addr.addr32[1] ==
1584 (sub->src.addr.v.a.addr.addr32[1] &
1585 super->src.addr.v.a.mask.addr32[1]) &&
1586 super->src.addr.v.a.addr.addr32[2] ==
1587 (sub->src.addr.v.a.addr.addr32[2] &
1588 super->src.addr.v.a.mask.addr32[2]) &&
1589 super->src.addr.v.a.addr.addr32[3] ==
1590 (sub->src.addr.v.a.addr.addr32[3] &
1591 super->src.addr.v.a.mask.addr32[3])) {
1592 /* sub->src.addr is a subset of super->src.addr/mask */
1593 memcpy(&sub->src.addr, &super->src.addr, sizeof(sub->src.addr));