Core ~~~~ Globals ~~~~~~~ - right usage of DBG vs. debug - logging and tracing; use appropriate log levels - check incoming packets and log errors!! - check log calls for trailing newlines and log levels followed by comma - check if all protocols set proper packet priorities and TTL's. - try compiling with -Wunused - does everybody test return value of sk_open? - protocols: implement CLI hooks and per-procotol CLI commands - protocols: implement reconfigure hook - protocols: use locking - check use of system includes and sprintf() Various ideas ~~~~~~~~~~~~~ - static: allow specifying a per-route filter program for setting route attributes? - client: paging of output - client: Ctrl-R eats one more enter - bgp: timing of updates? - netlink: realms - netlink: import Linux route attributes to our rta's, so that they can be filtered? - config: executable config files - filters: user defined attributes? - client: access control - io: use poll if available - IPv6 router advertisements - real multipath (doesn't seem to be simple at all :() - fake multipath (even less simple) - route recalculation timing and flap dampening [see RFC2439 for algorithms] - aggregate engine: standard route aggregation and summarization [RFC2519] - aggregate engine: injection of manually configured pseudo-static routes - generate default route if any working BGP connection exists (aggregate engine again?) - generate default route to IGP's (aggregate engine yet another time?) - look at RFC 2386 (QoS-based routing) - cli: show tables? OSPF ~~~~ - refuse running on non-multicast devices - importing of device routes for networks where we don't run OSPF - check incoming packets using neighbor cache - RFC2328 appendix E: Use a better algorithm - automatic generation of external route tags (RFC1403) - RFC1587 NSSA areas - RFC2370 opaque LSA's - respect interface MTU and try not to create larger packets unless unavoidable Documentation (sorry, its in czech) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Filtry: o Vysvetlit nesting a zastinovani. Protocols: o passwords: syntaxe data uz, tusim, davno vypada jinak. Struktura dokumentace: o Na konci (nebo ve zvlast sekci pro kazdy protokol?) by mel byt seznam referenci na vsechny mozne dokumenty, zejmena vsak vsechna RFC, kterymi se ridime nebo ktera maji neco spolecneho s tim, co delame (napriklad RPSL). K jazyku: o K "BIRD Internet Routing Daemon" by mel patrit urcity clen. o Pokud je v zavorce cela veta, patri pred ')' tecka, pokud neni, tak nepatri. o Davej si pozor na rody -- router je vzdycky `it', nikdy `he'. Jeste by to chtelo trosku podrobneji: (1) zminit se o atributech, rici, co vsechno o route rikaji a odkazat na kapitolu o filtrech, kde jsou presne nadefinovany (2) kdyz mluvis o preferenci, mel bys rici, co to je (ze to je atribut) a kdo jej vlastne nastavuje (ze existuje globalni default pro typ protokolu, ktery muzes overridovat v konfiguraci protokolu, coz muzes pro konkretni routu overridovat filtrem). (3) popsat spojeni mezi routovacimi tabulkami, filtry a protokoly Last minute stuff: ~~~~~~~~~~~~~~~~~~ Martin: DOC: korektury DOC: typograficky doladit, vyrobit titulni stranku (ta, co ji vygeneruji SGMLtools, vypada priserne) Pavel: RIP: programatorska dokumentace (finish) filtry: programatorska dokumentace filtry: opravit chybove hlasky !!! DOC: dokoncit uzivatelskou dokumentaci (viz predchozi maily) DOC: Pridat odkazy na RFC apod. Feela: OSPF: uzivatelska dokumentace OSPF: programatorska dokumentace