diff --git a/TODO b/TODO index a9f4dff1..82e168c1 100644 --- a/TODO +++ b/TODO @@ -1,91 +1,115 @@ 0.1 --- +compress/encrypt: review API crypto->nsscrypto + compress->zlibcompress and ABI + current feels clumpsy and we can save memcpy around + in case we don't encrypt/compress + +compress must happen before encrypt, should we compress all? what's +the price for uncompress on already uncompressed buffer? do we need +a bit to indicate if pckt is compressed or not? +is it worth compressing pings? do they compress at all? + +config bits: +- should crypto and compress be part of handle_new? or new api calls? + we won't allow runtime changes, so i don't think there is much + benefit to have it outside of knet_handle_net for now. + We maybe able to spare some duplication between knet_h and knet_cfg struct + link layer: +one we have pckt inspector in place, we need a function to: + +int get_dst_links(knet_host *host, int *fd_array, size_t fd_array_size); + +that will call into dst_cache + +dst_cache is populated by link status changes, cache calculation should +probably be in its own thread. this is a bit touchy to implement, specially +due to rwlocks required to update the cache. Look into link status changes +notification (maybe a signal to a thread? or write to a pipe) + +if all links for a host are down, then clear circular_buffers (this +is necessary to detect restarts and a bunch of other things) + * add priority/weight to link config struct * add active/active to link config struct ring: * support 8 listener per node. * index pointer list general: * what to log log to file: who logins, config changes and link status changes log to vty: cmd execution failure * consider splitting tests/* based on what they test (tap_test -> libtap/) ? vty: * split cmd_files * basic show info * fix check_param for ip/prefix/crypto 0.2 --- libtap: * add man pages * improve tests to cover thread safety and more error codes 0.3 --- * benchmark tests: - all critical paths in ring.c 0.4 --- general: * add statistics * add init script / spec file * v4/v6 (bindv6only check via cli) vty: * add optional options * sorting * tab completion on options 0.5 --- * pong count 0.6 --- * dynip 0.7 --- * review ring api for libknetring shared lib * review tap api for libknettap shared lib * review vty api for libknetvty shared lib -0.9 ---- - -* compression - 1.0-pre ------- tests: * coverity * unit test: - test all public APIs - write ad-doc tests for internal complex functions - not required to test return codes from external libs directly (we are not testing glibc) - test all code paths we write - no 0.9/1.0 release without max testing coverage for the core