#
# $XORP: xorp/bgp/TODO,v 1.20 2007/03/20 21:58:36 atanu Exp $
#

------------------------------ TODO -----------------------------

4) Make test packet code check more things, for example go through and
check the results of the decoding against what was encoded.

18) Check the validity of the withdrawn routes field in
check_update_packet (peer.cc) and the validity of network reachability
field.

---added 2002-09-24 by mjh---

22) Why is the BGPPeer stopped timer 10 seconds?

26) Encode method in BGPAuthParameter

--added 2002-10-21 by APG---

28) In FanoutTable's queue, we skip entries if they have the same
origin peer as the output branch calling get_next_message.  If the
queued origin peer is NULL, we use this to indicate it should go to
all peers.  However, the RIB peerhandle is also NULL, so routes that
come from the rib would then be sent back to the RIB, which is bad.
Rewrite this code so it doesn't overload the NULL value.

30) When a next hop changes for a particular address family both the
unicast and multicast decision tables will be notified. This is not a
big deal.

-- added 2003-10-13 by AG

35) BGP makes its own TCP connections it should be changed to make its
connections through the FEA. It should be noted that BGP is using the
asyncio library not the buffered asyncio library this will be
adversely affecting performance.

-- added 2005-03-10 by AG

36) BGP has a state of our own invention STOPPED that is used to wait
for a notify message to be sent. When it is necessary to send a notify
the socket could be switched to AcceptSession and the STOPPED state
will no longer be required.

-- added 2005-09-23 by AG

38) The way we create ChainedSubnetRoutes is inefficient - we create a
subnet route, then clone it into a chained subnet route.  Should add a
new constructor for chained subnet route to avoid this extra copy.

-- added 2008-07-04 by mjh

39) The changed flag on an InternalMessage seems to be superfluous,
except for the isolation tests.  Once everything is stable again, it
should be removed.  The same may be true of the copied flag, though
this is more important for memory management.

-- added 2008-07-16 by mjh

40) OriginateRouteFilter is broken (always passes).  Figure out what
it is for and fix it or remove it.

-- added 2008-08-13 by mjh

------------------------------ TESTING --------------------------

1) Memory exhaustion.
2) IGP Metrics.
3) Filters.
4) Route flat damping.
5) Bad updates.
6) Capability mismatches.
7) Peer up/down.
8) SAFI.
9) Synchronisation.
10) Loop detection.
11) EBGP vs IBGP.
12) Route reflector.
13) Confederations.
14) IPv6
15) Test FSM with inappropriate packets.
16) IGP i.e. RIB interactions.
17) Comparison against ideal.

