Statistics
| Branch: | Revision:

iof-bird-daemon / TODO @ a2697f02

History | View | Annotate | Download (3.23 KB)

1
Core
2
~~~~
3
* protocols: implement dumping of protocol-dependent rte attributes
4

    
5
- io.c: refuse old-style multicasts for unnumbered interfaces?
6

    
7
- prefer loopback addresses as router IDs (dummy interface?)
8

    
9
- config: executable config files
10

    
11
- do we really need preconfig?
12

    
13
- counters (according to SNMP MIB?)
14
- better memory allocators
15
- default preferences of protocols: prefer BGP over OSPF/RIP external routes?
16
- secondary addresses -> subinterfaces or ignore
17

    
18
- static: check validity of route destination?
19

    
20
- device: configuration of interface patterns
21

    
22
- adding of route: check whether all bits not covered by masklen are zero
23

    
24
- netlink: import Linux route attributes to our rta's, so that they can be filtered?
25

    
26
- iface: when seen an invalid broadcast, fix it up or at least report
27
- iface: we always need ifindex at least for PtP links (OSPF)
28
- iface: interface filters should support filtering by IP address as well
29
- iface: SIOCGIFINDEX exists on glibc systems, but it doesn't work on 2.0.x kernels!
30

    
31
- socket: Use IP_RECVERR for BGP TCP sockets?
32

    
33
Cleanup
34
~~~~~~~
35
- right usage of DBG vs. debug
36
- cleanup debugging calls
37
- logging and tracing; use appropriate log levels
38
- check incoming packets and log errors!!
39
- check log calls for trailing newlines
40
- check if all protocols set proper packet priorities and TTL's.
41
- replace all NUM, IPA and expr tokens by constant filter expressions
42
- try compiling with -Wunused
43
- does everybody test return value of sk_open?
44

    
45
Various ideas
46
~~~~~~~~~~~~~
47
- real multipath (doesn't seem to be simple at all :()
48
- fake multipath (even less simple)
49
- route recalculation timing and flap dampening [see RFC2439 for algorithms]
50
- aggregate engine: standard route aggregation and summarization
51
- aggregate engine: injection of manually configured pseudo-static routes
52
- generate default route if any working BGP connection exists (aggregate engine again?)
53
- generate default route to IGP's (aggregate engine yet another time?)
54

    
55

    
56
RIP
57
~~~
58
	- RIP: export-only and import-only mode?
59
	- drop RIPv1 (Historic protocol)?
60
	- Route Tag
61
	- limit routing table xfer (frequency, only to neighbors)
62
	- multicast on/off (per interface)
63

    
64
OSPF
65
~~~~
66
	- importing of device routes for networks where we don't run OSPF
67
	- check incoming packets using neighbor cache
68
	- stub area: either no external routes or only default route
69
	- RFC2328 appendix E: Use a better algorithm
70
	- automatic generation of external route tags (RFC1403)
71
	- RFC1587 NSSA areas
72
	- RFC2370 opaque LSA's
73
	- RFC1793 Demand Circuit Support ??
74
	- respect interface MTU and try not to create larger packets unless unavoidable
75

    
76

    
77
BGP
78
~~~
79
	- in, local, out RIB
80
	- maxsize=4096
81
	- detection of loops
82
	- aggregation, ATOMIC_AGGREGATE
83
	- communities
84
	- confederations
85
	- attributes must be sorted!
86
	- re-export of NEXT_HOP attribute
87
	- BGP session over currently down interface
88
	- LOCAL_PREF attribute
89
	- error notification received -> log error
90
	- set TTL to 1 (configurable?)
91
	- consulting IGP for next-hop information? (what if it changes?)
92
	- inter-advertisement delay???!
93
	- normalize (sort) incoming AS-SET's
94
	- maximum length of AS paths
95

    
96
	- expected neighbor AS
97
	- hold time
98
	- idle timer after error: initial value, exponential growth, maximum value
99
	- import of IGP routes (use external route tags from OSPF)