#
#	TODO,v 1.14 1993/03/17 22:13:55 jch Exp
#
# Gated Release 3.0
# Copyright (c) 1990,1991,1992,1993 by Cornell University. All rights reserved.
# Refer to Particulars and other Copyright notices at the end of this file.
#

		Things to do.


Compilation:
	
	Change PROTOTYPE() and _PROTOTYPE() to only apply to arguments
	(so tags and stuff will work).  Use on all function
	definitions so ANSI prototypes are used.

	Better specification of makefile configuration and
	interdependencies. 

Configuration:

	Redo configuration/protocol initialization to be more general
	and less confusing.

Interfaces:

	If task_send() and MSG_DONTROUTE and E*UNREACH, call if_check()?

	All protocols should do the right thing if the receiving
	interface is down.

	Flag an interface as "ignore" so gated will totally ignore it.

Kernel:

	The kernel should use the rth_changes stuff to avoid wasting memory
	by keeping a sockaddr_un pointer in TSI.  Flags should only be set
	during flash update.  Need to figure out which routes are installed
	already and just set their bit on.

	krt_recv() needs to be cleaned up, both in it's handling of
	routing table changes and the addition of interface status
	changes. 

	Set route MTU, use generally good default (subnets are local).
	What does MK have to say?


Other:
	Try to make sockbuild_in, sock2gated, sock2unix macros.

	Some way to specify that a route should point to whatever
	gateway is at the end of a P2P link.

Policy:	

	Should the protocol be optional for policy based on tag and/or AS
	path?

	What metric translation (if any) whould be allowed?  Need to figure
	out reasonable default metrics and importation types.

Routing table:

	Keep martians and other bad routes, but flag with RTS_BOGUS.  Make
	sure that all protocols check for RTS_BOGUS as well as
	RTS_NOADVISE.  Or use just RTS_NOADVISE.  For either one, set flag
	in rth_state to avoid extra search for bogus network.

	Rt_add should allow off-net gateways if RTS_NOADVISE and
	RTS_NOTINSTALL are set.  Several places need tests for null
	ifps.

	Increase preference to 64 bits.  Make preference zero a route
	that will be ignored.

	Add another linked list through rt_entry`s rooted off the gw_entry
	which installed them.  Use this list instead of rtlist_*() when
	re-evaluating policy, interface status changes, going away.

Tasks:

	Should we renice?

	Is there a way for protocols not to send packets before policy is run?

	Have a no-send flag per task.


Tracing:

	Redo tracing with flags per task.


AS paths:

	AS path patten matching needs more extensive testing.

	AS path patterns should have an ID number which is printed in
	gated_dump.  Complete list of AS path patterns should be dumped
	from the ASPath task in a readable form.

BGP:

	Update documentation for BGP and tags.  And IGP/EGP interaction.

	BGP read/write/listen/accept need intefaces in task.c for
	portability.

EGP:
	
	Should EGP use tag information to set interior/exterior?

OSPF:

	Allow OSPF to compile without AS paths?  Allow any tag?

	OSPF ASE, when importing from EGP, should use a preference higher than EGP.

	Parser defaults and specification of OSPF tags.

	Network summaries should be part of gated aggregation rules
	(with reject routes).  Until that is done, add reject routes
	for summaries.

	Allow areas to be specified in any order and resolve virtual
	links later.

	Defer startup if RouterID is not present.
	
RIP:

	RIP and HELLO do not send host routes when subsumer is not being announced.

	RIP/HELLO should maintain a structure of linked lists indicating
	which routes they annouce to peers.  This should be used when
	sending updates instead of scanning the whole table.  Could be
	rooted in the target list.  Needed to set router in v2 packets.

	When interface status changes to ignore an interface
	previously heard from, RIP & HELLO should delete the routes
	via that interface?

	RIP and HELLO should put all routes to a target in holddown
	when it is deleted?  This includes all targets when
	nobroadcast is turned on.


ISO:
	If an ISO address is specified without a mask and the number
	of nibbles is odd, generate a mask with an odd number of
	nibbles.

	Handle ifa_systemid as an if_addr_entry.
	
#
# ------------------------------------------------------------------------
# 
# 	GateD, Release 3
# 
# 	Copyright (c) 1990,1991,1992,1993 by Cornell University
# 	    All rights reserved.
# 
# 	THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY
# 	EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
# 	LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY
# 	AND FITNESS FOR A PARTICULAR PURPOSE.
# 
# 	Royalty-free licenses to redistribute GateD Release
# 	3 in whole or in part may be obtained by writing to:
# 
# 	    GateDaemon Project
# 	    Information Technologies/Network Resources
# 	    200 CCC, Garden Avenue
# 	    Cornell University
# 	    Ithaca, NY  14853-2601  USA
# 
# 	GateD is based on Kirton's EGP, UC Berkeley's routing
# 	daemon	 (routed), and DCN's HELLO routing Protocol.
# 	Development of GateD has been supported in part by the
# 	National Science Foundation.
# 
# 	Please forward bug fixes, enhancements and questions to the
# 	gated mailing list: gated-people@gated.cornell.edu.
# 
# 	Authors:
# 
# 		Jeffrey C Honig <jch@gated.cornell.edu>
# 		Scott W Brim <swb@gated.cornell.edu>
# 
# ------------------------------------------------------------------------
# 
#       Portions of this software may fall under the following
#       copyrights:
# 
# 	Copyright (c) 1988 Regents of the University of California.
# 	All rights reserved.
# 
# 	Redistribution and use in source and binary forms are
# 	permitted provided that the above copyright notice and
# 	this paragraph are duplicated in all such forms and that
# 	any documentation, advertising materials, and other
# 	materials related to such distribution and use
# 	acknowledge that the software was developed by the
# 	University of California, Berkeley.  The name of the
# 	University may not be used to endorse or promote
# 	products derived from this software without specific
# 	prior written permission.  THIS SOFTWARE IS PROVIDED
# 	``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES,
# 	INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
# 	MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
