Lines Matching refs:skiplist

76 	TAILQ_HEAD(skiplist, pf_skip_step)	 sb_skipsteps[PF_SKIP_COUNT];
220 void remove_from_skipsteps(struct skiplist *, struct superblock *,
389 * XXX keep last skiplist of last superblock to influence this
639 struct pf_skip_step *skiplist;
650 TAILQ_FOREACH(skiplist, &block->sb_skipsteps[i],
652 if (skip_compare(i, skiplist, por) == 0)
655 if (skiplist == NULL) {
656 if ((skiplist = calloc(1, sizeof(*skiplist))) ==
659 TAILQ_INIT(&skiplist->ps_rules);
661 skiplist, ps_entry);
663 skip_append(block, i, skiplist, por);
677 skiplist = TAILQ_FIRST(&block->sb_skipsteps[i]);
678 if (skiplist->ps_count == rule_count) {
681 skiplist->ps_count = 0;
682 } else if (skiplist->ps_count == 1) {
683 skiplist->ps_count = 0;
687 skiplist->ps_count);
688 if (skiplist->ps_count > largest)
689 largest = skiplist->ps_count;
717 skiplist = TAILQ_FIRST(&block->sb_skipsteps[i]);
718 if (skiplist->ps_count > largest) {
719 largest = skiplist->ps_count;
740 skiplist = TAILQ_FIRST(&block->sb_skipsteps[
748 skiplist, ps_entry);
756 if (skiplist->ps_count > 2) {
767 depth, skiplist->ps_count,
768 TAILQ_FIRST(&skiplist->ps_rules)->
774 while ((por = TAILQ_FIRST(&skiplist->ps_rules))) {
776 TAILQ_REMOVE(&skiplist->ps_rules, por,
783 largest_list], block, por, skiplist);
785 free(skiplist);
794 while ((skiplist = TAILQ_FIRST(&block->sb_skipsteps[i]))) {
795 TAILQ_REMOVE(&block->sb_skipsteps[i], skiplist,
797 free(skiplist);
963 * Compare a rule to a skiplist to see if the rule is a member
966 skip_compare(int skipnum, struct pf_skip_step *skiplist,
973 b = &TAILQ_FIRST(&skiplist->ps_rules)->por_rule;
980 * Add a rule to a skiplist
984 struct pf_skip_step *skiplist, struct pf_opt_rule *por)
988 skiplist->ps_count++;
989 TAILQ_INSERT_TAIL(&skiplist->ps_rules, por, por_skip_entry[skipnum]);
992 while ((prev = TAILQ_PREV(skiplist, skiplist, ps_entry)) &&
993 prev->ps_count < skiplist->ps_count) {
995 skiplist, ps_entry);
996 TAILQ_INSERT_BEFORE(prev, skiplist, ps_entry);
1002 * Remove a rule from the other skiplist calculations.
1005 remove_from_skipsteps(struct skiplist *head, struct superblock *block,
1043 /* Compare two rules AF field for skiplist construction */
1052 /* Compare two rules DIRECTION field for skiplist construction */
1061 /* Compare two rules DST Address field for skiplist construction */
1101 /* Compare two rules DST port field for skiplist construction */
1117 /* Compare two rules IFP field for skiplist construction */
1126 /* Compare two rules PROTO field for skiplist construction */
1133 /* Compare two rules SRC addr field for skiplist construction */
1173 /* Compare two rules SRC port field for skiplist construction */