TODO 4.01 KB
Newer Older
1 2
Core
~~~~
3

4
Globals
Martin Mareš's avatar
Martin Mareš committed
5 6 7 8
~~~~~~~
- right usage of DBG vs. debug
- logging and tracing; use appropriate log levels
- check incoming packets and log errors!!
9
- check log calls for trailing newlines and log levels followed by comma
Martin Mareš's avatar
Martin Mareš committed
10
- check if all protocols set proper packet priorities and TTL's.
11
- try compiling with -Wunused
12
- does everybody test return value of sk_open?
13
- protocols: implement CLI hooks and per-procotol CLI commands
14
- protocols: implement reconfigure hook
15
- protocols: use locking
16
- check use of system includes and sprintf()
Martin Mareš's avatar
Martin Mareš committed
17 18 19

Various ideas
~~~~~~~~~~~~~
20
- static: allow specifying a per-route filter program for setting route attributes?
21 22
- client: paging of output
- client: Ctrl-R eats one more enter
23
- bgp: timing of updates?
24
- netlink: realms
25
- netlink: import Linux route attributes to our rta's, so that they can be filtered?
26
- config: executable config files
27
- filters: user defined attributes?
28
- client: access control
29
- io: use poll if available
30
- IPv6 router advertisements
Martin Mareš's avatar
Martin Mareš committed
31 32
- real multipath (doesn't seem to be simple at all :()
- fake multipath (even less simple)
Martin Mareš's avatar
Martin Mareš committed
33
- route recalculation timing and flap dampening [see RFC2439 for algorithms]
34
- aggregate engine: standard route aggregation and summarization [RFC2519]
Martin Mareš's avatar
Martin Mareš committed
35 36 37
- 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?)
38
- look at RFC 2386 (QoS-based routing)
39
- cli: show tables?
40

41 42
OSPF
~~~~
43
	- refuse running on non-multicast devices
44
	- importing of device routes for networks where we don't run OSPF
Martin Mareš's avatar
Martin Mareš committed
45 46
	- check incoming packets using neighbor cache
	- RFC2328 appendix E: Use a better algorithm
47
	- automatic generation of external route tags (RFC1403)
Martin Mareš's avatar
Martin Mareš committed
48 49 50
	- RFC1587 NSSA areas
	- RFC2370 opaque LSA's
	- respect interface MTU and try not to create larger packets unless unavoidable
Pavel Machek's avatar
Pavel Machek committed
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74

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'.

75 76 77 78 79 80 81 82 83
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
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109


Last minute stuff:
~~~~~~~~~~~~~~~~~~
Martin:	DOC: korektury
	DOC: typograficky doladit, vyrobit titulni stranku (ta, co ji vygeneruji SGMLtools, vypada priserne)
	progdoc: dopsat kapitoly o resourcech a sysdepu
	OSPF: zkontrolovat defaultni hodnoty metrik
	Zinscenovat jeste jeden poradny test OSPF
	Zjistit, kde se bude tisknout a vazat dokumentace

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.
	Zjistit, v jake forme ma byt projekt odevzdan (kolik kopii dokumentace atd.)

Feela:	OSPF: locking
	OSPF: tracing (a zkontrolovat vsechny debug()-y), u log() uvadet kategorie a jmeno instance
	OSPF: vypnout LOCAL_DEBUG
	OSPF: ze vsech die() udelat bug() a zkontrolovat, ze to jsou opravdu interni bugy
	OSPF: reconfiguration hook
	OSPF: uzivatelska dokumentace
	OSPF: programatorska dokumentace
	OSPF: autentikace (kdyz se nestihne, nijak to nevadi)