]>
Commit | Line | Data |
---|---|---|
58ef912c MM |
1 | Core |
2 | ~~~~ | |
69ec9087 MM |
3 | * protocols: implement dumping of protocol-dependent rte attributes |
4 | ||
707ef833 | 5 | - IPv6 support |
ec8b579e | 6 | |
707ef833 | 7 | - io.c: refuse old-style multicasts for unnumbered interfaces? |
16a8ba30 | 8 | |
58ef912c | 9 | - counters (according to SNMP MIB?) |
18c8241a | 10 | - better memory allocators |
707ef833 MM |
11 | - real attribute cache |
12 | - real neighbor cache | |
13 | ||
18c8241a | 14 | - default preferences of protocols: prefer BGP over OSPF/RIP external routes? |
8e66a0eb | 15 | |
f6bd2066 | 16 | - static: check validity of route destination? |
dce26783 | 17 | - static: allow specifying a per-route filter program for setting route attributes? |
98e87c86 | 18 | |
707ef833 MM |
19 | - rte_update: check whether all bits not covered by masklen are zero |
20 | - rte_update: debug mode | |
58ef912c | 21 | |
bdb95a21 MM |
22 | - netlink: import Linux route attributes to our rta's, so that they can be filtered? |
23 | ||
a2697f02 | 24 | - iface: SIOCGIFINDEX exists on glibc systems, but it doesn't work on 2.0.x kernels! |
7972248d | 25 | |
9a158361 MM |
26 | - socket: Use IP_RECVERR for BGP TCP sockets? |
27 | ||
a07e9d82 MM |
28 | - OSPF: refuse running on non-multicast devices |
29 | ||
707ef833 | 30 | - config: executable config files |
7de45ba4 | 31 | - config: when parsing prefix, check zero bits |
707ef833 | 32 | - config: reconfiguration |
dce26783 | 33 | - config: useless rules when protocols disabled |
7de45ba4 MM |
34 | |
35 | - krt: rescan interfaces when route addition fails? | |
707ef833 MM |
36 | - krt: does PERSIST mode have any sense if kernel syncer is shut down as last? |
37 | ||
38 | - cmdline: implement | |
39 | - cmdline: echo of debug/log messages | |
40 | ||
41 | - tagging of external routes? | |
42 | ||
43 | - port to FreeBSD | |
7de45ba4 | 44 | |
bff1db76 MM |
45 | Commands |
46 | ~~~~~~~~ | |
99bbd23b | 47 | shutdown # order system shutdown |
bff1db76 | 48 | configure [<file>] |
99bbd23b | 49 | debug <what> # dump debugging information to log |
1d2664a4 | 50 | show <name> # show everything you know about symbol <name> |
730f2e2c | 51 | route [<route>] [table <name>] [filter (<name> | { <inline> })] [where <condition>] [all] <-- WHERE |
bff1db76 MM |
52 | rip ??? [<name>] |
53 | ospf ??? [<name>] | |
54 | static ??? [<name>] | |
99bbd23b MM |
55 | filters [<name>] |
56 | (disable|enable|restart) <protocol> # or ALL? | |
bff1db76 | 57 | |
b5fe3dc2 MM |
58 | Cleanup |
59 | ~~~~~~~ | |
60 | - right usage of DBG vs. debug | |
61 | - cleanup debugging calls | |
62 | - logging and tracing; use appropriate log levels | |
63 | - check incoming packets and log errors!! | |
64 | - check log calls for trailing newlines | |
65 | - check if all protocols set proper packet priorities and TTL's. | |
6accdf4f | 66 | - replace all NUM, IPA and expr tokens by constant filter expressions |
b982b6db | 67 | - try compiling with -Wunused |
5a99ade4 | 68 | - does everybody test return value of sk_open? |
dce26783 | 69 | - add references to RFC's we did follow |
b5fe3dc2 MM |
70 | |
71 | Various ideas | |
72 | ~~~~~~~~~~~~~ | |
73 | - real multipath (doesn't seem to be simple at all :() | |
74 | - fake multipath (even less simple) | |
12be9b8c | 75 | - route recalculation timing and flap dampening [see RFC2439 for algorithms] |
dce26783 | 76 | - aggregate engine: standard route aggregation and summarization [RFC2519] |
b5fe3dc2 MM |
77 | - aggregate engine: injection of manually configured pseudo-static routes |
78 | - generate default route if any working BGP connection exists (aggregate engine again?) | |
79 | - generate default route to IGP's (aggregate engine yet another time?) | |
dce26783 | 80 | - look at RFC 2386 (QoS-based routing) |
58ef912c | 81 | |
58ef912c | 82 | |
18c8241a MM |
83 | RIP |
84 | ~~~ | |
dce26783 | 85 | - export-only and import-only mode? |
18c8241a MM |
86 | - drop RIPv1 (Historic protocol)? |
87 | - Route Tag | |
88 | - limit routing table xfer (frequency, only to neighbors) | |
58ef912c | 89 | |
18c8241a MM |
90 | OSPF |
91 | ~~~~ | |
18c8241a | 92 | - importing of device routes for networks where we don't run OSPF |
12be9b8c | 93 | - check incoming packets using neighbor cache |
12be9b8c | 94 | - RFC2328 appendix E: Use a better algorithm |
18c8241a | 95 | - automatic generation of external route tags (RFC1403) |
12be9b8c MM |
96 | - RFC1587 NSSA areas |
97 | - RFC2370 opaque LSA's | |
12be9b8c | 98 | - respect interface MTU and try not to create larger packets unless unavoidable |
58ef912c | 99 | |
58ef912c MM |
100 | BGP |
101 | ~~~ | |
58ef912c MM |
102 | - aggregation, ATOMIC_AGGREGATE |
103 | - communities | |
58ef912c MM |
104 | - attributes must be sorted! |
105 | - re-export of NEXT_HOP attribute | |
106 | - BGP session over currently down interface | |
58ef912c MM |
107 | - LOCAL_PREF attribute |
108 | - error notification received -> log error | |
109 | - set TTL to 1 (configurable?) | |
110 | - consulting IGP for next-hop information? (what if it changes?) | |
111 | - inter-advertisement delay???! | |
112 | - normalize (sort) incoming AS-SET's | |
113 | - maximum length of AS paths | |
58ef912c MM |
114 | - expected neighbor AS |
115 | - hold time | |
116 | - idle timer after error: initial value, exponential growth, maximum value | |
58ef912c | 117 | - import of IGP routes (use external route tags from OSPF) |