#
# DECnet configuration
#
config DECNET
	tristate "DECnet Support"
	---help---
	  The DECnet networking protocol was used in many products made by
	  Digital (now Compaq).  It provides reliable stream and sequenced
	  packet communications over which run a variety of services similar
	  to those which run over TCP/IP.

	  To find some tools to use with the kernel layer support, please
	  look at Patrick Caulfield's web site:
	  <http://linux-decnet.sourceforge.net/>.

	  More detailed documentation is available in
	  <file:Documentation/networking/decnet.txt>.

	  Be sure to say Y to "/proc file system support" and "Sysctl support"
	  below when using DECnet, since you will need sysctl support to aid
	  in configuration at run time.

	  The DECnet code is also available as a module ( = code which can be
	  inserted in and removed from the running kernel whenever you want).
	  The module is called decnet.

config DECNET_ROUTER
	bool "DECnet: router support"
	depends on DECNET
	select FIB_RULES
	---help---
	  Add support for turning your DECnet Endnode into a level 1 or 2
	  router.  This is an experimental, but functional option.  If you
	  do say Y here, then make sure that you also say Y to "Kernel/User
	  network link driver", "Routing messages" and "Network packet
	  filtering".  The first two are required to allow configuration via
	  rtnetlink (you will need Alexey Kuznetsov's iproute2 package
	  from <ftp://ftp.tux.org/pub/net/ip-routing/>). The "Network packet
	  filtering" option will be required for the forthcoming routing daemon
	  to work.

	  See <file:Documentation/networking/decnet.txt> for more information.

