summaryrefslogtreecommitdiffstats
path: root/TODO
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>1998-04-22 14:58:34 +0200
committerMartin Mares <mj@ucw.cz>1998-04-22 14:58:34 +0200
commit58ef912c6babf1866193ab04674a5866dd761f13 (patch)
tree244af1a4acb9feac08b45800587a06653a6ff264 /TODO
parentb60f7489148d021cb541414b8788f795ec4378fa (diff)
downloadbird-58ef912c6babf1866193ab04674a5866dd761f13.tar
bird-58ef912c6babf1866193ab04674a5866dd761f13.zip
First look at data structures. More to come tomorrow...
Diffstat (limited to 'TODO')
-rw-r--r--TODO143
1 files changed, 143 insertions, 0 deletions
diff --git a/TODO b/TODO
new file mode 100644
index 0000000..10aeef9
--- /dev/null
+++ b/TODO
@@ -0,0 +1,143 @@
+Core
+~~~~
+- route validation
+- fake multipath?
+- config file: symbolic constants?
+- counters (according to SNMP MIB?)
+- generation of subnet mask ICMP's for v6?
+- debugging dumps and protocol tracing!
+- unaligned accesses?
+
+
+RIP
+~~~
+- RIP: export-only and import-only mode?
+- drop RIPv1 (Historic protocol)?
+
+OSPF
+~~~~
+
+Almquist & Kastenholz [Page 111]
+RFC 1716 Towards Requirements for IP Routers November 1994
+
+
+7.2.2.2 Specific Issues
+
+ Virtual Links
+
+ There is a minor error in the specification that can cause
+ routing loops when all of the following conditions are
+ simultaneously true:
+
+ (1) A virtual link is configured through a transit area,
+
+ (2) Two separate paths exist, each having the same
+ endpoints, but one utilizing only non-virtual
+ backbone links, and the other using links in the
+ transit area, and
+
+ (3) The latter path is part of the (underlying physical
+ representation of the) configured virtual link,
+ routing loops may occur.
+
+ To prevent this, an implementation of OSPF SHOULD invoke
+ the calculation in Section 16.3 of [ROUTE:1] whenever any
+ part of the path to the destination is a virtual link (the
+ specification only says this is necessary when the first
+ hop is a virtual link).
+
+BGP
+~~~
+- BGP:
+ - in, local, out RIB
+ - maxsize=4096
+ - BGP identifier aka router id
+ - removal of loops
+ - aggregation, ATOMIC_AGGREGATE
+ - communities
+ - confederations
+ - attributes must be sorted!
+ - re-export of NEXT_HOP attribute
+ - BGP session over currently down interface
+ - route flap dampening?
+ - 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
+
+- address testing macros (ALL_ZEROS)
+- all internal tables are in network order (?)
+- logging of errors and debug dumps
+- filter: logging of dropped routes (?)
+- limitation of memory consumption: per-process and total
+- alloca
+- precedence of all packets (incl. TCP)
+- adding of route: clear all bits not covered by masklen
+- switch: generate default route only if at least one BGP connection exists
+
+- route update: new, change, remove
+- route recalculation timing
+
+- CONFIG_TOS
+- CONFIG_MULTIPATH
+
+- reconfiguration without restart of all protocols?
+- change of interface address: ??? (down and up?)
+- "generate default route" switch for all IGP's
+
+- RIPv2:
+ - Route Tag
+ - limit routing table xfer (frequency, only to neighbors)
+ - multicast on/off
+ - remember routes for all neighbors?
+
+- BGP:
+ - import of IGP routes (use external route tags from OSPF)
+
+- Interface:
+ - RIP metric
+ - multicast capability flag
+ - MTU
+ - OSPF metrics (per-TOS)
+
+- running protocol on an interface:
+ - interface is not required to exist
+ - can specify a wildcard pattern or an interface list
+
+- preferences:
+ - directly connected
+ - static
+ - OSPF internal, OSPF ext type 1 (comparable metrics), OSPF inter-area
+ - RIP
+ - BGP
+ - OSPF ext type 2
+ - sink
+
+- lib:
+ - MD5
+
+- OSPF:
+ - Dijkstra: use Fibonacci heaps?
+ - point-to-point interface with address: advertise as stub network
+ - static routes: stub networks?
+ - modes: PtP, PtP-unnumbered, Broadcast, NBMA, point-to-multipoint
+ - importing of device routes for networks where we don't run OSPF
+ - tie breaking for equal type 2 ext metrics by using internal (type 1) metric
+ - SPF tree recalc timing (per-area timers?)
+ - aggregation: specify network list for each area
+ - stub area: either no external routes or only default route
+ - automatic generation of external route tags (RFC1403) -- what about
+ using the same rule for RIPv2? [shared code?]
+
+- timers - one-shot and periodic, resolution 1 sec, randomized
+- re-configuration: restart of routing protocols (shutdown mode)
+- route: originating AS
+
+- Check incoming packets and log errors!!