#
# SCTP configuration
#

menuconfig IP_SCTP
	tristate "The SCTP Protocol (EXPERIMENTAL)"
	depends on INET && EXPERIMENTAL
	depends on IPV6 || IPV6=n
	select CRYPTO
	select CRYPTO_HMAC
	select CRYPTO_SHA1
	select CRYPTO_MD5 if SCTP_HMAC_MD5
	---help---
	  Stream Control Transmission Protocol

	  From RFC 2960 <http://www.ietf.org/rfc/rfc2960.txt>.

	  "SCTP is a reliable transport protocol operating on top of a
	  connectionless packet network such as IP.  It offers the following
	  services to its users:

	  -- acknowledged error-free non-duplicated transfer of user data,
	  -- data fragmentation to conform to discovered path MTU size,
	  -- sequenced delivery of user messages within multiple streams,
	  with an option for order-of-arrival delivery of individual user
	  messages,
	  -- optional bundling of multiple user messages into a single SCTP
	  packet, and
	  -- network-level fault tolerance through supporting of multi-
	  homing at either or both ends of an association."

	  To compile this protocol support as a module, choose M here: the
	  module will be called sctp.

	  If in doubt, say N.

if IP_SCTP

config SCTP_DBG_MSG
	bool "SCTP: Debug messages"
	help
	  If you say Y, this will enable verbose debugging messages. 

	  If unsure, say N.  However, if you are running into problems, use 
	  this option to gather detailed trace information

config SCTP_DBG_OBJCNT
	bool "SCTP: Debug object counts"
	help
	  If you say Y, this will enable debugging support for counting the 
	  type of objects that are currently allocated.  This is useful for 
	  identifying memory leaks.   If the /proc filesystem is enabled this 
	  debug information can be viewed by 
	  'cat /proc/net/sctp/sctp_dbg_objcnt'

	  If unsure, say N

choice
	prompt "SCTP: Cookie HMAC Algorithm"
	default SCTP_HMAC_MD5
	help
	  HMAC algorithm to be used during association initialization.  It
	  is strongly recommended to use HMAC-SHA1 or HMAC-MD5.  See 
	  configuration for Cryptographic API and enable those algorithms
          to make usable by SCTP. 

config SCTP_HMAC_NONE
	bool "None"
	help 
	  Choosing this disables the use of an HMAC during association 
	  establishment.  It is advised to use either HMAC-MD5 or HMAC-SHA1.

config SCTP_HMAC_SHA1
	bool "HMAC-SHA1"
	help 
	  Enable the use of HMAC-SHA1 during association establishment.  It 
	  is advised to use either HMAC-MD5 or HMAC-SHA1.

config SCTP_HMAC_MD5
	bool "HMAC-MD5"
	help
	  Enable the use of HMAC-MD5 during association establishment.  It is 
	  advised to use either HMAC-MD5 or HMAC-SHA1.

endchoice

endif # IP_SCTP
