config BR2_PACKAGE_IPSEC_TOOLS
	bool "ipsec-tools"
	depends on BR2_PACKAGE_OPENSSL && BR2_PACKAGE_FLEX && BR2_PACKAGE_FLEX_LIBFL
	help
	  This package is required to support IPSec for Linux 2.6+

comment "ipsec-tools	- disabled (requires openssl, flex and the flex library (libfl.a) )"
	depends on !BR2_PACKAGE_OPENSSL || !BR2_PACKAGE_FLEX

config BR2_PACKAGE_IPSEC_TOOLS_ADMINPORT
	default y
	depends on BR2_PACKAGE_IPSEC_TOOLS
	bool "Enable racoonctl(8)."
	help
		Lets racoon to listen to racoon admin port, which is to
	        be contacted by racoonctl(8).

config BR2_PACKAGE_IPSEC_TOOLS_NATT
	depends on BR2_PACKAGE_IPSEC_TOOLS
	bool "Enable NAT-Traversal"
	help
		This needs kernel support, which is available on Linux. On
		NetBSD, NAT-Traversal kernel support has not been integrated
		yet, you can get it from here:

		http://ipsec-tools.sourceforge.net/netbsd_nat-t.diff If you

		live in a country where software patents are legal, using
		NAT-Traversal might infringe a patent.


config BR2_PACKAGE_IPSEC_TOOLS_FRAG
	depends on BR2_PACKAGE_IPSEC_TOOLS
	bool "Enable IKE fragmentation."
	help
	        Enable IKE fragmentation, which is a workaround for
	        broken routers that drop fragmented packets

config BR2_PACKAGE_IPSEC_TOOLS_STATS
	default y
	depends on BR2_PACKAGE_IPSEC_TOOLS
	bool "Enable statistics logging function."

config BR2_PACKAGE_IPSEC_TOOLS_IPV6
	default y
	depends on BR2_PACKAGE_IPSEC_TOOLS && BR2_INET_IPV6
	bool "Enable IPv6 support"
	help
		This option has no effect if uClibc has been compiled without
		IPv6 support.

config BR2_PACKAGE_IPSEC_TOOLS_READLINE
	depends on BR2_PACKAGE_IPSEC_TOOLS
	select BR2_PACKAGE_READLINE
	bool "Enable readline input support if available."

config BR2_PACKAGE_IPSEC_TOOLS_LIBS
	bool "Install IPSec libraries under staging_dir/lib"
	default y
	depends on BR2_PACKAGE_IPSEC_TOOLS
	help
	  Install libipsec.a and libracoon.a under staging_dir/lib for further
	  development on a host machine.
