summaryrefslogtreecommitdiffstats
path: root/ARCHITECTURE
diff options
context:
space:
mode:
Diffstat (limited to 'ARCHITECTURE')
-rw-r--r--ARCHITECTURE17
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
+
+