Lines Matching refs:super

1542 exclude_supersets(struct pf_rule *super, struct pf_rule *sub)
1544 if (super->ifname[0] == '\0')
1546 if (super->direction == PF_INOUT)
1548 if ((super->proto == 0 || super->proto == sub->proto) &&
1549 super->flags == 0 && super->flagset == 0 && (sub->flags ||
1551 sub->flags = super->flags;
1552 sub->flagset = super->flagset;
1554 if (super->proto == 0)
1557 if (super->src.port_op == 0) {
1562 if (super->dst.port_op == 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)
1574 else if (super->src.addr.type == PF_ADDR_ADDRMASK &&
1576 super->src.neg == sub->src.neg &&
1577 super->af == sub->af &&
1578 unmask(&super->src.addr.v.a.mask, super->af) <
1580 super->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] ==
1585 super->src.addr.v.a.mask.addr32[1]) &&
1586 super->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] ==
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));
1596 if (super->dst.addr.type == PF_ADDR_ADDRMASK && !super->dst.neg &&
1597 !sub->dst.neg && super->dst.addr.v.a.mask.addr32[0] == 0 &&
1598 super->dst.addr.v.a.mask.addr32[1] == 0 &&
1599 super->dst.addr.v.a.mask.addr32[2] == 0 &&
1600 super->dst.addr.v.a.mask.addr32[3] == 0)
1602 else if (super->dst.addr.type == PF_ADDR_ADDRMASK &&
1604 super->dst.neg == sub->dst.neg &&
1605 super->af == sub->af &&
1606 unmask(&super->dst.addr.v.a.mask, super->af) <
1608 super->dst.addr.v.a.addr.addr32[0] ==
1610 super->dst.addr.v.a.mask.addr32[0]) &&
1611 super->dst.addr.v.a.addr.addr32[1] ==
1613 super->dst.addr.v.a.mask.addr32[1]) &&
1614 super->dst.addr.v.a.addr.addr32[2] ==
1616 super->dst.addr.v.a.mask.addr32[2]) &&
1617 super->dst.addr.v.a.addr.addr32[3] ==
1619 super->dst.addr.v.a.mask.addr32[3])) {
1620 /* sub->dst.addr is a subset of super->dst.addr/mask */
1621 memcpy(&sub->dst.addr, &super->dst.addr, sizeof(sub->dst.addr));
1624 if (super->af == 0)