Lines Matching defs:super

1567 exclude_supersets(struct pfctl_rule *super, struct pfctl_rule *sub)
1569 if (super->ifname[0] == '\0')
1571 if (super->direction == PF_INOUT)
1573 if ((super->proto == 0 || super->proto == sub->proto) &&
1574 super->flags == 0 && super->flagset == 0 && (sub->flags ||
1576 sub->flags = super->flags;
1577 sub->flagset = super->flagset;
1579 if (super->proto == 0)
1582 if (super->src.port_op == 0) {
1587 if (super->dst.port_op == 0) {
1593 if (super->src.addr.type == PF_ADDR_ADDRMASK && !super->src.neg &&
1594 !sub->src.neg && super->src.addr.v.a.mask.addr32[0] == 0 &&
1595 super->src.addr.v.a.mask.addr32[1] == 0 &&
1596 super->src.addr.v.a.mask.addr32[2] == 0 &&
1597 super->src.addr.v.a.mask.addr32[3] == 0)
1599 else if (super->src.addr.type == PF_ADDR_ADDRMASK &&
1601 super->src.neg == sub->src.neg &&
1602 super->af == sub->af &&
1603 unmask(&super->src.addr.v.a.mask, super->af) <
1605 super->src.addr.v.a.addr.addr32[0] ==
1607 super->src.addr.v.a.mask.addr32[0]) &&
1608 super->src.addr.v.a.addr.addr32[1] ==
1610 super->src.addr.v.a.mask.addr32[1]) &&
1611 super->src.addr.v.a.addr.addr32[2] ==
1613 super->src.addr.v.a.mask.addr32[2]) &&
1614 super->src.addr.v.a.addr.addr32[3] ==
1616 super->src.addr.v.a.mask.addr32[3])) {
1617 /* sub->src.addr is a subset of super->src.addr/mask */
1618 memcpy(&sub->src.addr, &super->src.addr, sizeof(sub->src.addr));
1621 if (super->dst.addr.type == PF_ADDR_ADDRMASK && !super->dst.neg &&
1622 !sub->dst.neg && super->dst.addr.v.a.mask.addr32[0] == 0 &&
1623 super->dst.addr.v.a.mask.addr32[1] == 0 &&
1624 super->dst.addr.v.a.mask.addr32[2] == 0 &&
1625 super->dst.addr.v.a.mask.addr32[3] == 0)
1627 else if (super->dst.addr.type == PF_ADDR_ADDRMASK &&
1629 super->dst.neg == sub->dst.neg &&
1630 super->af == sub->af &&
1631 unmask(&super->dst.addr.v.a.mask, super->af) <
1633 super->dst.addr.v.a.addr.addr32[0] ==
1635 super->dst.addr.v.a.mask.addr32[0]) &&
1636 super->dst.addr.v.a.addr.addr32[1] ==
1638 super->dst.addr.v.a.mask.addr32[1]) &&
1639 super->dst.addr.v.a.addr.addr32[2] ==
1641 super->dst.addr.v.a.mask.addr32[2]) &&
1642 super->dst.addr.v.a.addr.addr32[3] ==
1644 super->dst.addr.v.a.mask.addr32[3])) {
1645 /* sub->dst.addr is a subset of super->dst.addr/mask */
1646 memcpy(&sub->dst.addr, &super->dst.addr, sizeof(sub->dst.addr));
1649 if (super->af == 0)