bird/TODO
Martin Mares 7de45ba4a0 Kernel route syncer supports multiple tables.
The changes are just too extensive for lazy me to list them
there, but see the comment at the top of sysdep/unix/krt.c.
The code got a bit more ifdeffy than I'd like, though.

Also fixed a bunch of FIXME's and added a couple of others. :)
1999-08-03 19:33:22 +00:00

98 lines
3 KiB
Plaintext

Core
~~~~
* protocols: implement dumping of protocol-dependent rte attributes
- io.c: refuse old-style multicasts for unnumbered interfaces?
- config: executable config files
- counters (according to SNMP MIB?)
- better memory allocators
- default preferences of protocols: prefer BGP over OSPF/RIP external routes?
- static: check validity of route destination?
- device: configuration of interface patterns
- adding of route: check whether all bits not covered by masklen are zero
- netlink: import Linux route attributes to our rta's, so that they can be filtered?
- iface: SIOCGIFINDEX exists on glibc systems, but it doesn't work on 2.0.x kernels!
- socket: Use IP_RECVERR for BGP TCP sockets?
- OSPF: refuse running on non-multicast devices
- config: when parsing prefix, check zero bits
- krt: rescan interfaces when route addition fails?
Cleanup
~~~~~~~
- right usage of DBG vs. debug
- cleanup debugging calls
- logging and tracing; use appropriate log levels
- check incoming packets and log errors!!
- check log calls for trailing newlines
- check if all protocols set proper packet priorities and TTL's.
- replace all NUM, IPA and expr tokens by constant filter expressions
- try compiling with -Wunused
- does everybody test return value of sk_open?
Various ideas
~~~~~~~~~~~~~
- 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
- 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?)
RIP
~~~
- RIP: export-only and import-only mode?
- drop RIPv1 (Historic protocol)?
- Route Tag
- limit routing table xfer (frequency, only to neighbors)
- multicast on/off (per interface)
OSPF
~~~~
- importing of device routes for networks where we don't run OSPF
- check incoming packets using neighbor cache
- stub area: either no external routes or only default route
- RFC2328 appendix E: Use a better algorithm
- automatic generation of external route tags (RFC1403)
- RFC1587 NSSA areas
- RFC2370 opaque LSA's
- RFC1793 Demand Circuit Support ??
- respect interface MTU and try not to create larger packets unless unavoidable
BGP
~~~
- in, local, out RIB
- maxsize=4096
- detection of loops
- aggregation, ATOMIC_AGGREGATE
- communities
- confederations
- attributes must be sorted!
- re-export of NEXT_HOP attribute
- BGP session over currently down interface
- LOCAL_PREF attribute
- error notification received -> log error
- set TTL to 1 (configurable?)
- consulting IGP for next-hop information? (what if it changes?)
- inter-advertisement delay???!
- normalize (sort) incoming AS-SET's
- maximum length of AS paths
- expected neighbor AS
- hold time
- idle timer after error: initial value, exponential growth, maximum value
- import of IGP routes (use external route tags from OSPF)