diff --git a/TODO b/TODO index 82e168c1..7274a56c 100644 --- a/TODO +++ b/TODO @@ -1,115 +1,108 @@ 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: +we need a function to: +void dst_cache_links_update(knet_host *host); +that will order link_entries by priority/weight for RR. -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) +Look into link status changes notification (maybe a signal to a thread? or write to a pipe) * add priority/weight to link config struct -* add active/active to link config struct + +we might need to update the cache on link removal... 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 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