1
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-11-03 18:37:48 +01:00
bird/TODO

94 lines
3.0 KiB
Plaintext

Core
~~~~
- TOS not supported by kernel -> automatically drop routes with TOS<>0
- config: executable config files
- config: define ipaddr constants?
- config: better default protocol names
- counters (according to SNMP MIB?)
- better memory allocators
- default preferences of protocols: prefer BGP over OSPF/RIP external routes?
- secondary addresses -> subinterfaces or ignore
- static: check validity of route destination?
- device: configuration of interface patterns
- adding of route: check whether all bits not covered by masklen are zero
- incoming packets: interface the packet came from? (esp. for multicasts)
- broadcast/multicast echoing suppresion
- netlink: import Linux route attributes to our rta's, so that they can be filtered?
- iface: when seen an invalid broadcast, fix it up or at least report
- iface: we always need ifindex at least for PtP links (OSPF)
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's by expr's
- try compiling with -Wunused
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)