mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-09 12:48:43 +00:00
3991d84e8f
of calling the protocols manually. Implemented printing of dynamic attributes in `show route all'. Each protocol can now register its own attribute class (protocol->attr_class, set to EAP_xxx) and also a callback for naming and formatting of attributes. The callback can return one of the following results: GA_UNKNOWN Attribute not recognized. GA_NAME Attribute name recognized and put to the buffer, generic code should format the value. GA_FULL Both attribute name and value put to the buffer. Please update protocols generating dynamic attributes to provide the attr_class and formatting hook.
73 lines
2.3 KiB
Plaintext
73 lines
2.3 KiB
Plaintext
Core
|
|
~~~~
|
|
- config: when parsing prefix, check zero bits
|
|
|
|
- static: check validity of route destination?
|
|
- static: allow specifying a per-route filter program for setting route attributes?
|
|
|
|
- krt: rescan interfaces when route addition fails?
|
|
|
|
- tagging of external routes?
|
|
|
|
- when an identical route is received, don't trigger updates
|
|
|
|
Commands
|
|
~~~~~~~~
|
|
- showing of routing table as seen by given protocol
|
|
- printing of dynamic attributes
|
|
|
|
Documentation
|
|
~~~~~~~~~~~~~
|
|
- write doctool
|
|
- write documentation :|
|
|
|
|
Globals
|
|
~~~~~~~
|
|
- right usage of DBG vs. debug
|
|
- kill preconfigs?
|
|
- check dump functions
|
|
- cleanup debugging calls
|
|
- logging and tracing; use appropriate log levels
|
|
- check incoming packets and log errors!!
|
|
- check log calls for trailing newlines and log levels followed by comma
|
|
- 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?
|
|
- doc: references to RFC's we did follow
|
|
- protocols: implement CLI hooks and per-procotol CLI commands
|
|
- protocols: implement reconfigure hook
|
|
- protocols: use locking
|
|
- check use of system includes and sprintf()
|
|
|
|
Various ideas
|
|
~~~~~~~~~~~~~
|
|
- netlink: import Linux route attributes to our rta's, so that they can be filtered?
|
|
- config: executable config files
|
|
- client: access control
|
|
- io: use poll if available
|
|
- IPv6 router advertisements
|
|
- 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 [RFC2519]
|
|
- 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?)
|
|
- look at RFC 2386 (QoS-based routing)
|
|
|
|
|
|
RIP
|
|
~~~
|
|
|
|
OSPF
|
|
~~~~
|
|
- refuse running on non-multicast devices
|
|
- importing of device routes for networks where we don't run OSPF
|
|
- check incoming packets using neighbor cache
|
|
- RFC2328 appendix E: Use a better algorithm
|
|
- automatic generation of external route tags (RFC1403)
|
|
- RFC1587 NSSA areas
|
|
- RFC2370 opaque LSA's
|
|
- respect interface MTU and try not to create larger packets unless unavoidable
|