mirror of
				https://gitlab.labs.nic.cz/labs/bird.git
				synced 2024-05-11 16:54:54 +00:00 
			
		
		
		
	but the core routines are there and seem to be working.
   o  lib/ipv6.[ch] written
   o  Lexical analyser recognizes IPv6 addresses and when in IPv6
      mode, treats pure IPv4 addresses as router IDs.
   o  Router ID must be configured manually on IPv6 systems.
   o  Added SCOPE_ORGANIZATION for org-scoped IPv6 multicasts.
   o  Fixed few places where ipa_(hton|ntoh) was called as a function
      returning converted address.
		
	
		
			
				
	
	
		
			105 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Core
 | 
						|
~~~~
 | 
						|
* protocols: implement dumping of protocol-dependent rte attributes
 | 
						|
 | 
						|
- IPv6 support
 | 
						|
 | 
						|
- io.c: refuse old-style multicasts for unnumbered interfaces?
 | 
						|
 | 
						|
- counters (according to SNMP MIB?)
 | 
						|
- better memory allocators
 | 
						|
- real attribute cache
 | 
						|
- real neighbor cache
 | 
						|
 | 
						|
- default preferences of protocols: prefer BGP over OSPF/RIP external routes?
 | 
						|
 | 
						|
- static: check validity of route destination?
 | 
						|
- static: allow specifying a per-route filter program for setting route attributes?
 | 
						|
 | 
						|
- rte_update: check whether all bits not covered by masklen are zero
 | 
						|
- rte_update: debug mode
 | 
						|
 | 
						|
- 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: executable config files
 | 
						|
- config: when parsing prefix, check zero bits
 | 
						|
- config: reconfiguration
 | 
						|
- config: useless rules when protocols disabled
 | 
						|
 | 
						|
- krt: rescan interfaces when route addition fails?
 | 
						|
- krt: does PERSIST mode have any sense if kernel syncer is shut down as last?
 | 
						|
 | 
						|
- cmdline: implement
 | 
						|
- cmdline: echo of debug/log messages
 | 
						|
 | 
						|
- tagging of external routes?
 | 
						|
 | 
						|
- port to FreeBSD
 | 
						|
 | 
						|
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?
 | 
						|
- add references to RFC's we did follow
 | 
						|
 | 
						|
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 [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
 | 
						|
~~~
 | 
						|
	- export-only and import-only mode?
 | 
						|
	- drop RIPv1 (Historic protocol)?
 | 
						|
	- Route Tag
 | 
						|
	- limit routing table xfer (frequency, only to neighbors)
 | 
						|
 | 
						|
OSPF
 | 
						|
~~~~
 | 
						|
	- 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
 | 
						|
 | 
						|
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)
 |