summaryrefslogtreecommitdiff
path: root/nuttx/net/iob/Kconfig
blob: 7b34185abc91790461539d4b627f11b8f1690019 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#

menu "Network I/O Buffer Support"

config NET_IOB
	bool "Enable generic network I/O buffer support"
	default n
	---help---
		This setting will build the networking I/O buffer (IOB) support
		library.

if NET_IOB

config IOB_NBUFFERS
	int "Number of pre-allocated network I/O buffers"
	default 24 if (NET_TCP_WRITE_BUFFERS && !NET_TCP_READAHEAD) || (!NET_TCP_WRITE_BUFFERS && NET_TCP_READAHEAD)
	default 36 if NET_TCP_WRITE_BUFFERS && NET_TCP_READAHEAD
	default 8 if !NET_TCP_WRITE_BUFFERS && !NET_TCP_READAHEAD
	---help---
		Each packet is represented by a series of small I/O buffers in a
		chain.  This setting determines the number of preallocated I/O
		buffers available for packet data.

config IOB_BUFSIZE
	int "Payload size of one network I/O buffer"
	default 196
	---help---
		Each packet is represented by a series of small I/O buffers in a
		chain.  This setting determines the data payload each preallocated
		I/O buffer.

config IOB_NCHAINS
	int "Number of pre-allocated I/O buffer chain heads"
	default 0 if !NET_TCP_READAHEAD && !NET_UDP_READAHEAD
	default 8 if NET_TCP_READAHEAD || NET_UDP_READAHEAD
	---help---
		These tiny nodes are used as "containers" to support queueing of
		I/O buffer chains.  This will limit the number of I/O transactions
		that can be "in-flight" at any give time.  The default value of
		zero disables this features.

		These generic I/O buffer chain containers are not currently used
		by any logic in NuttX.  That is because their other other specialized
		I/O buffer chain containers that also carry a payload of usage
		specific information.

config IOB_THROTTLE
	int "I/O buffer throttle value"
	default 0 if !NET_TCP_WRITE_BUFFERS || !NET_TCP_READAHEAD
	default 8 if NET_TCP_WRITE_BUFFERS && NET_TCP_READAHEAD
	depends on NET_TCP_WRITE_BUFFERS && NET_TCP_READAHEAD
	---help---
		TCP write buffering and read-ahead buffer use the same pool of free
		I/O buffers.  In order to prevent uncontrolled incoming TCP packets
		from hogging all of the available, pre-allocated I/O buffers, a
		throttling value is required.  This throttle value assures that
		I/O buffers will be denied to the read-ahead logic before TCP writes
		are halted.

config IOB_DEBUG
	bool "Force I/O buffer debug"
	default n
	depends on DEBUG
	---help---
		This option will force debug output from I/O buffer logic,
		even without network debug output.  This is not normally something
		that would want to do but is convenient if you are debugging the
		I/O buffer logic and do not want to get overloaded with other
		network-related debug output.

endif # NET_IOB
endmenu # Network I/O buffer support