> Actually, there wouldn't be any real performance penalty, because these
> embrionic states are in effect only a tree sorted list of one shot rules.
> 
> When they match they're removed from the embrionic tree, filled in with
> some other details, and moved to the normal state tree. It's just done
> faster than if you added rules to match the same things.

Though I hate to make performance-based arguments without any code
to make an evaluation on, I have to say this makes me feel uneasy.

It seems to me the only time the filter would NOT have to search the embryonic
state table is:

1) If an existing state is matched
2) If the entire embryonic rule list is empty.

So basically, every potentially state-creating packet is going to have
to traverse this list. Sure, you can use skip steps to minimize the
cost of the traversal, but this still seems like a hell of a hit.

And though I like the idea of rule templates, I can't help but wonder
if we can't achieve the same thing (limiting what kind of rules a
proxy can insert) just by some well-thought-out "block [in/out] quick
uid foo-proxy" rules (assuming the proxy's dynamic rules are added at
the end.)

-kj

Reply via email to