mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 09:41:54 +00:00
bdb95a21a4
but the framework is there and I'll try finish it soon.
94 lines
3.0 KiB
Plaintext
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
|
|
- we need ifindex at least for PtP links
|
|
|
|
- kernel: RTM_F_NOTIFY seems to be unimplemented
|
|
- kernel: RTM_DELROUTE not announced for device routes
|
|
|
|
- netlink: import Linux route attributes to our rta's, so that they can be filtered?
|
|
|
|
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
|
|
|
|
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)
|