Modules Simple module API struct mod { char *name; char *usage; void *(*open)(int argc, char *argv[]); int (*apply)(void *data, struct pktq *pktq); void *(*close)(void *data); }; 14 default modules, configured via simple ruleset language Each module operates on logical packet queue, handed to it by the previous rule