diff options
Diffstat (limited to 'ARCHITECTURE')
-rw-r--r-- | ARCHITECTURE | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/ARCHITECTURE b/ARCHITECTURE index c9264b3..f825a0a 100644 --- a/ARCHITECTURE +++ b/ARCHITECTURE @@ -60,3 +60,20 @@ Architecture of ulogd2 - problems: - multiple interpreters can return same value (i.e. sport/dport) - some outputs/filters will require _ALL_ keys (e.g. OPRINT) + +Plugin stack building + +- start at final output plugin in stack. + - pass list of input keys to previous plugin in stack + - next plugin in stack verifies that it can provide those keys, + and determines it's required input keys. pass them to next plugin + +if current plugin cannot support this key, a plugin further up the stack could! +two-pass approach: +1) connect next<->prev pointers so plugin stack is known +2) start from output plugin and go upwards + +- list of "can provide" keys should be per instance, since configuration + parameters could determine the possible keys. -LATER + + |