#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#

menu "Socket Support"

config NSOCKET_DESCRIPTORS
	int "Number of socket descriptors"
	default 8
	range 1 99999
	---help---
		Maximum number of socket descriptors per task/thread.

config NET_NACTIVESOCKETS
	int "Max socket operations"
	default 16
	---help---
		Maximum number of concurrent socket operations (recv, send,
		connection monitoring, etc.). Default: 16

config NET_SOCKOPTS
	bool "Socket options"
	default n
	---help---
		Enable or disable support for socket options

config NET_TCPPROTO_OPTIONS
	bool
	default n
	---help---
		Enable or disable support for TCP protocol level socket options.

config NET_UDPPROTO_OPTIONS
	bool
	default n
	---help---
		Enable or disable support for UDP protocol level socket options.

config NET_CANPROTO_OPTIONS
	bool
	default n
	---help---
		Enable or disable support for CAN protocol level socket option

if NET_SOCKOPTS

config NET_SOLINGER
	bool "SO_LINGER socket option"
	default n
	depends on NET_TCP_WRITE_BUFFERS || NET_UDP_WRITE_BUFFERS
	select NET_TCP_NOTIFIER if NET_TCP
	select NET_UDP_NOTIFIER if NET_UDP
	---help---
		Enable or disable support for the SO_LINGER socket option.  Requires
		write buffer support.

config NET_TIMESTAMP
	bool "SO_TIMESTAMP socket option"
	default n
	depends on NET_CAN
	select NET_CMSG
	---help---
		Enable or disable support for the SO_TIMESTAMP socket option. Currently only tested & implemented in SocketCAN but should work on all sockets

endif # NET_SOCKOPTS

config NET_CMSG
	bool "Control messages (CMSG) support"
	default n
	---help---
		Enable or disable support for control messages in the recvmsg() and
		sendmsg() function. Control messages (also defined in POSIX 1003.1g 
		as ancillary data object information). Includes additional 
		information on the packet received or to be transmitted.

endmenu # Socket Support
