Lines Matching defs:superblock

56  * A container that lets us sort a superblock to optimize the skip step jumps
66 * A superblock is a block of adjacent rules of similar action. If there
67 * are five PASS rules in a row, they all become members of a superblock.
68 * Once we have a superblock, we are free to re-order any rules within it
72 struct superblock {
74 TAILQ_ENTRY(superblock) sb_entry;
75 struct superblock *sb_profiled_block;
78 TAILQ_HEAD(superblocks, superblock);
86 BREAK, /* the field may not differ between rules in a superblock */
106 * superblock. Thus it will not be optimized. It also prevents the
119 * These fields must be the same between all rules in the same superblock.
215 int block_feedback(struct pfctl *, struct superblock *);
216 int combine_rules(struct pfctl *, struct superblock *);
223 int optimize_superblock(struct pfctl *, struct superblock *);
225 void remove_from_skipsteps(struct skiplist *, struct superblock *,
227 int remove_identical_rules(struct pfctl *, struct superblock *);
228 int reorder_rules(struct pfctl *, struct superblock *, int);
230 void skip_append(struct superblock *, int, struct pf_skip_step *,
242 int superblock_inclusive(struct superblock *, struct pf_opt_rule *);
243 void superblock_free(struct pfctl *, struct superblock *);
269 struct superblock *block;
379 * Go ahead and optimize a superblock
382 optimize_superblock(struct pfctl *pf, struct superblock *block)
408 * XXX keep last skiplist of last superblock to influence this
409 * superblock. '5 inet6 log' should make '3 inet6' come before '4
410 * inet' in the next superblock.
449 * superblock might have been split into multiple superblocks.
463 remove_identical_rules(struct pfctl *pf, struct superblock *block)
505 combine_rules(struct pfctl *pf, struct superblock *block)
655 reorder_rules(struct pfctl *pf, struct superblock *block, int depth)
657 struct superblock *newblock;
691 * all of the rules in the superblock and those fields which differ
692 * between every rule in the superblock.
712 /* Ugh. There is NO commonality in the superblock on which
719 * Now we're going to empty the superblock rule list and re-create
773 * superblock and pass it back into the optimizer.
785 DEBUG("(%d) splitting off %d rules from superblock @ #%d",
829 block_feedback(struct pfctl *pf, struct superblock *block)
837 * Walk through all of the profiled superblock's rules and copy
858 * Now we pull all of the rules off the superblock and re-insert them
897 struct superblock *block, *blockcur;
1005 skip_append(struct superblock *superblock, int skipnum,
1016 TAILQ_REMOVE(&superblock->sb_skipsteps[skipnum],
1027 remove_from_skipsteps(struct skiplist *head, struct superblock *block,
1355 struct superblock *block = NULL;
1422 * Can a rule be included inside a superblock
1425 superblock_inclusive(struct superblock *block, struct pf_opt_rule *por)
1456 * Ergo interface groups become a defacto superblock break :-(
1479 DEBUG("superblock break @ %d due to %s",
1493 DEBUG("superblock break @ %d on %s+%zxh",
1499 DEBUG("superblock break @ %d on field @ %d",
1655 superblock_free(struct pfctl *pf, struct superblock *block)