#
# DECnet configuration
#
config DECNET_ROUTER
	bool "DECnet: router support (EXPERIMENTAL)"
	depends on DECNET && EXPERIMENTAL
	---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.

config DECNET_ROUTE_FWMARK
	bool "DECnet: use FWMARK value as routing key (EXPERIMENTAL)"
	depends on DECNET_ROUTER && NETFILTER
	help
	  If you say Y here, you will be able to specify different routes for
	  packets with different FWMARK ("firewalling mark") values
	  (see ipchains(8), "-m" argument).

