From 18c8241a91bd9208879666f1a1a13f454e66d75b Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Sun, 3 May 1998 16:43:39 +0000 Subject: BIRD library: The story continues. Complete resource manages and IP address handling. --- TODO | 145 +++++++++++++++++++++---------------------------------------------- 1 file changed, 44 insertions(+), 101 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index 10aeef91..a34feef4 100644 --- a/TODO +++ b/TODO @@ -1,58 +1,70 @@ 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? +- neighbor cache: local broadcast address? +- ipv4: recognize site scope addresses? +- ifdef out some debugging code? +- better memory allocators +- precedence of all packets (incl. TCP) +- default preferences of protocols: prefer BGP over OSPF/RIP external routes? +- all internal tables are in host order +- filter: logging of dropped routes (?) +- limitation of memory consumption: per-process and total (?) +- alloca +- adding of route: clear all bits not covered by masklen +- switch: generate default route only if at least one BGP connection exists -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 +- route recalculation timing + flap dampening +- reconfiguration without restart of all protocols? +- change of interface address: ??? (down and up?) +- "generate default route" switch for all IGP's -7.2.2.2 Specific Issues +- running protocol on an interface: + - interface is not required to exist + - can specify a wildcard pattern or an interface list - Virtual Links +- timers - one-shot and periodic, resolution 1 sec, randomized +- re-configuration: restart of routing protocols (shutdown mode) +- route: originating AS - There is a minor error in the specification that can cause - routing loops when all of the following conditions are - simultaneously true: +- Check incoming packets and log errors!! - (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 +RIP +~~~ + - RIP: export-only and import-only mode? + - drop RIPv1 (Historic protocol)? + - Route Tag + - limit routing table xfer (frequency, only to neighbors) + - multicast on/off + - remember routes for all neighbors? - (3) The latter path is part of the (underlying physical - representation of the) configured virtual link, - routing loops may occur. +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) - 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 + - detection of loops - aggregation, ATOMIC_AGGREGATE - communities - confederations @@ -71,73 +83,4 @@ BGP - 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!! -- cgit v1.2.3