1998-04-22 20:58:34 +08:00
|
|
|
Core
|
|
|
|
~~~~
|
1999-12-16 21:51:43 +08:00
|
|
|
- IPv6: router advertisements
|
|
|
|
- IPv6: test it!
|
|
|
|
- IPv6: hashing functions etc.
|
|
|
|
|
|
|
|
- krt-iface: check whether the interface alias hack works
|
|
|
|
- krt-iface and netlink: unnumberedness of tunnels
|
1999-04-28 00:03:17 +08:00
|
|
|
|
1998-05-04 00:43:39 +08:00
|
|
|
- better memory allocators
|
1999-08-04 03:35:01 +08:00
|
|
|
- real attribute cache
|
|
|
|
- real neighbor cache
|
|
|
|
|
1999-12-16 21:51:43 +08:00
|
|
|
- preferences of protocols
|
1998-12-09 02:37:58 +08:00
|
|
|
|
1998-12-07 07:13:31 +08:00
|
|
|
- static: check validity of route destination?
|
1999-08-04 03:36:06 +08:00
|
|
|
- static: allow specifying a per-route filter program for setting route attributes?
|
1998-12-20 22:24:35 +08:00
|
|
|
|
1999-08-04 03:35:01 +08:00
|
|
|
- rte_update: check whether all bits not covered by masklen are zero
|
|
|
|
- rte_update: debug mode
|
1998-04-22 20:58:34 +08:00
|
|
|
|
1999-03-02 04:17:46 +08:00
|
|
|
- netlink: import Linux route attributes to our rta's, so that they can be filtered?
|
|
|
|
|
1999-08-04 03:35:01 +08:00
|
|
|
- config: executable config files
|
1999-08-04 03:33:22 +08:00
|
|
|
- config: when parsing prefix, check zero bits
|
1999-08-04 03:36:06 +08:00
|
|
|
- config: useless rules when protocols disabled
|
1999-12-16 21:51:43 +08:00
|
|
|
- config: better datetime format
|
1999-08-04 03:33:22 +08:00
|
|
|
|
|
|
|
- krt: rescan interfaces when route addition fails?
|
1999-08-04 03:35:01 +08:00
|
|
|
|
|
|
|
- tagging of external routes?
|
|
|
|
|
1999-12-16 21:51:43 +08:00
|
|
|
- io: use poll if available
|
|
|
|
|
1999-11-17 22:58:21 +08:00
|
|
|
Commands
|
|
|
|
~~~~~~~~
|
1999-12-16 21:51:43 +08:00
|
|
|
- showing of routing table as seen by given protocol
|
2000-01-17 00:44:50 +08:00
|
|
|
|
|
|
|
Roadmap
|
|
|
|
~~~~~~~
|
|
|
|
- Allocators and data structures
|
|
|
|
- Client
|
|
|
|
- Remaining bits of IPv6 support (radvd)
|
|
|
|
- RIPv6
|
|
|
|
- BGP?
|
1999-12-16 21:51:43 +08:00
|
|
|
|
|
|
|
Client
|
|
|
|
~~~~~~
|
|
|
|
- write it!
|
|
|
|
|
|
|
|
Documentation
|
|
|
|
~~~~~~~~~~~~~
|
|
|
|
- write doctool
|
|
|
|
- write documentation :|
|
1999-11-17 22:58:21 +08:00
|
|
|
|
2000-01-19 20:30:19 +08:00
|
|
|
Globals
|
1999-02-14 06:13:04 +08:00
|
|
|
~~~~~~~
|
|
|
|
- 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.
|
1999-03-30 04:46:00 +08:00
|
|
|
- replace all NUM, IPA and expr tokens by constant filter expressions
|
1999-03-02 06:31:27 +08:00
|
|
|
- try compiling with -Wunused
|
1999-04-12 22:57:46 +08:00
|
|
|
- does everybody test return value of sk_open?
|
2000-01-19 20:30:19 +08:00
|
|
|
- doc: references to RFC's we did follow
|
|
|
|
- protocols: implement CLI hooks and per-procotol CLI commands
|
2000-01-17 19:52:50 +08:00
|
|
|
- protocols: implement reconfigure hook
|
1999-12-16 20:18:33 +08:00
|
|
|
- protocols: use locking
|
1999-02-14 06:13:04 +08:00
|
|
|
|
|
|
|
Various ideas
|
|
|
|
~~~~~~~~~~~~~
|
|
|
|
- real multipath (doesn't seem to be simple at all :()
|
|
|
|
- fake multipath (even less simple)
|
1999-03-02 01:51:29 +08:00
|
|
|
- route recalculation timing and flap dampening [see RFC2439 for algorithms]
|
1999-08-04 03:36:06 +08:00
|
|
|
- aggregate engine: standard route aggregation and summarization [RFC2519]
|
1999-02-14 06:13:04 +08:00
|
|
|
- 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?)
|
1999-08-04 03:36:06 +08:00
|
|
|
- look at RFC 2386 (QoS-based routing)
|
1998-04-22 20:58:34 +08:00
|
|
|
|
|
|
|
|
1998-05-04 00:43:39 +08:00
|
|
|
RIP
|
|
|
|
~~~
|
1998-04-22 20:58:34 +08:00
|
|
|
|
1998-05-04 00:43:39 +08:00
|
|
|
OSPF
|
|
|
|
~~~~
|
1999-12-16 21:06:13 +08:00
|
|
|
- refuse running on non-multicast devices
|
1998-05-04 00:43:39 +08:00
|
|
|
- importing of device routes for networks where we don't run OSPF
|
1999-03-02 01:51:29 +08:00
|
|
|
- check incoming packets using neighbor cache
|
|
|
|
- RFC2328 appendix E: Use a better algorithm
|
1998-05-04 00:43:39 +08:00
|
|
|
- automatic generation of external route tags (RFC1403)
|
1999-03-02 01:51:29 +08:00
|
|
|
- RFC1587 NSSA areas
|
|
|
|
- RFC2370 opaque LSA's
|
|
|
|
- respect interface MTU and try not to create larger packets unless unavoidable
|
1998-04-22 20:58:34 +08:00
|
|
|
|
|
|
|
BGP
|
|
|
|
~~~
|
|
|
|
- aggregation, ATOMIC_AGGREGATE
|
|
|
|
- communities
|
|
|
|
- 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)
|
2000-01-19 20:30:19 +08:00
|
|
|
- Use IP_RECVERR for BGP TCP sockets?
|