Loading...
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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 | # Kconfig - IP stack config # # Copyright (c) 2016 Intel Corporation. # # SPDX-License-Identifier: Apache-2.0 # menu "IP stack" depends on NETWORKING # Hidden option config NET_L2_RAW_CHANNEL bool default n if !NET_L2_RAW_CHANNEL config NET_INIT_PRIO int default 90 help Network initialization priority level. This number tells how early in the boot the network stack is initialized. source "subsys/net/ip/Kconfig.debug" source "subsys/net/ip/Kconfig.ipv6" source "subsys/net/ip/Kconfig.ipv4" config NET_SHELL bool "Enable network shell utilities" default n select CONSOLE_SHELL help Activate shell module that provides network commands like ping to the console. config NET_IP_ADDR_CHECK bool "Check IP address validity before sending IP packet" default y help Check that either the source or destination address is correct before sending either IPv4 or IPv6 network packet. config NET_MAX_ROUTERS int "How many routers are supported" default 2 if NET_IPV4 && NET_IPV6 default 1 if NET_IPV4 && !NET_IPV6 default 1 if !NET_IPV4 && NET_IPV6 range 1 254 help The value depends on your network needs. # Normally the route support is enabled by RPL or similar technology # that needs to use the routing infrastructure. config NET_ROUTE bool depends on NET_IPV6_NBR_CACHE default n default y if NET_IPV6_NBR_CACHE config NET_MAX_ROUTES int "Max number of routing entries stored." default NET_IPV6_MAX_NEIGHBORS depends on NET_ROUTE help This determines how many entries can be stored in routing table. config NET_MAX_NEXTHOPS int "Max number of next hop entries stored." default NET_MAX_ROUTES depends on NET_ROUTE help This determines how many entries can be stored in nexthop table. config NET_ROUTE_MCAST bool depends on NET_ROUTE default n config NET_MAX_MCAST_ROUTES int "Max number of multicast routing entries stored." default 1 depends on NET_ROUTE_MCAST help This determines how many entries can be stored in multicast routing table. config NET_TCP bool "Enable TCP" default n help The value depends on your network needs. config NET_TCP_CHECKSUM bool "Check TCP checksum" default y depends on NET_TCP help Enables TCP handler to check TCP checksum. If the checksum is invalid, then the packet is discarded. config NET_DEBUG_TCP bool "Debug TCP" default n depends on NET_TCP && NET_LOG help Enables TCP handler output debug messages config NET_TCP_TIME_WAIT bool "Enable TCP TIME_WAIT timeouts" depends on NET_TCP default n help Officially, the TCP standard requires a 4 minute timeout on connection close before that particular port pair can be used again. This requires that the net_context and net_tcp structs persist for the full duration, so has non-trivial memory costs and is optional. Modern systems with well-randomized sequence numbers don't need this, but it is present for specification compliance where needed. config NET_TCP_2MSL_TIME int "How long to wait in TIME_WAIT (in seconds)" depends on NET_TCP_TIME_WAIT default 240 help The value is in seconds. config NET_TCP_ACK_TIMEOUT int "How long to wait for ACK (in milliseconds)" depends on NET_TCP default 1000 range 1 2147483647 help This value affects the timeout when waiting ACK to arrive in various TCP states. The value is in milliseconds. Note that having a very low value here could prevent connectivity. config NET_TCP_RETRY_COUNT int "Maximum number of TCP segment retransmissions" depends on NET_TCP default 9 help The following formula can be used to determine the time (in ms) that a segment will be be buffered awaiting retransmission: n=NET_TCP_RETRY_COUNT ∑((1<<n) * 200) n=0 With the default value of 9, the IP stack will try to retransmit for up to 1:42 minutes. This is as close as possible to the minimum value recommended by RFC1122 (1:40 minutes). Only 5 bits are dedicated for the retransmission count, so accepted values are in the 0-31 range. It's highly recommended to not go below 9, though. Should a retransmission timeout occur, the receive callback is called with -ECONNRESET error code and the context is dereferenced. config NET_UDP bool "Enable UDP" default y help The value depends on your network needs. config NET_UDP_CHECKSUM bool "Check UDP checksum" default y depends on NET_UDP help Enables UDP handler to check UDP checksum. If the checksum is invalid, then the packet is discarded. config NET_DEBUG_UDP bool "Debug UDP" default n depends on NET_UDP && NET_LOG help Enables UDP handler output debug messages config NET_MAX_CONN int "How many network connections are supported" depends on NET_UDP || NET_TCP default 4 default 8 if NET_IPV6 && NET_IPV4 help The value depends on your network needs. The value should include both UDP and TCP connections. config NET_CONN_CACHE bool "Cache network connections" depends on NET_UDP || NET_TCP default n help Caching takes slight more memory but will speedup connection handling of UDP and TCP connections. config NET_MAX_CONTEXTS int "Number of network contexts to allocate" default 6 help Each network context is used to describe a network 5-tuple that is used when listening or sending network traffic. This is very similar as one could call a network socket in some other systems. config NET_CONTEXT_NET_PKT_POOL bool "Enable net_buf TX pool / context" default n default y if NET_TCP && NET_6LO help If enabled, then it is possible to fine-tune network packet pool for each context when sending network data. If this setting is enabled, then you should define the context pools in your application using NET_PKT_TX_POOL_DEFINE() and NET_PKT_DATA_POOL_DEFINE() macros and tie these pools to desired context using the net_context_setup_pools() function. config NET_CONTEXT_SYNC_RECV bool "Support synchronous functionality in net_context_recv() API" default y help You can disable sync support to save some memory if you are calling net_context_recv() in async way only when timeout is set to 0. config NET_CONTEXT_CHECK bool "Check options when calling various net_context functions" default y help If you know that the options passed to net_context...() functions are ok, then you can disable the checks to save some memory. choice prompt "Use SLIP connectivity with QEMU" optional default NET_SLIP_TUN help The SLIP support is only used when the application is run inside QEMU and the network peer is run in your host. The SLIP support is only used when the application is run inside QEMU and the network peer is run in your host. The host needs to have tunslip running in order to receive and send network packets via the SLIP driver. The SLIP driver Kconfig options can be tweaked in drivers section. Options are provided to communicate with QEMU via a TUN driver, the default, as it requires less configuration in the host side, or via a TAP driver. config NET_SLIP_TUN bool "TUN SLIP driver" select SLIP select UART_PIPE select UART_INTERRUPT_DRIVEN select NET_L2_DUMMY help The host needs to have tunslip running in order to receive and send network packets via the SLIP driver. Choose this if unsure. config NET_SLIP_TAP bool "TAP SLIP driver" select SLIP select UART_PIPE select UART_INTERRUPT_DRIVEN select SLIP_TAP help SLIP TAP support is necessary when testing IPv4/ARP. The host needs to have tunslip with TAP support running in order to communicate via the SLIP driver. endchoice config NET_TRICKLE bool "Enable Trickle library" default n help Normally this is enabled automatically if needed, so say 'n' if unsure. config NET_DEBUG_TRICKLE bool "Debug Trickle algorithm" default n depends on NET_TRICKLE && NET_LOG help Enables Trickle library output debug messages endif # NET_L2_RAW_CHANNEL config NET_PKT_RX_COUNT int "How many packet receives can be pending at the same time" default 4 help Each RX buffer will occupy smallish amount of memory. See include/net/net_pkt.h and the sizeof(struct net_pkt) config NET_PKT_TX_COUNT int "How many packet sends can be pending at the same time" default 2 help Each TX buffer will occupy smallish amount of memory. See include/net/net_pkt.h and the sizeof(struct net_pkt) config NET_BUF_RX_COUNT int "How many network buffers are allocated for receiving data" default 16 help Each data buffer will occupy CONFIG_NET_BUF_DATA_SIZE + smallish header (sizeof(struct net_buf)) amount of data. config NET_BUF_TX_COUNT int "How many network buffers are allocated for sending data" default 16 help Each data buffer will occupy CONFIG_NET_BUF_DATA_SIZE + smallish header (sizeof(struct net_buf)) amount of data. config NET_BUF_DATA_SIZE int "Size of each network data fragment" default 128 default 125 if NET_L2_IEEE802154 help This value tells what is the size of the data fragment that is received from the network. Example: For IEEE 802.15.4, the network packet is 127 bytes long, which leaves in worst case 81 bytes for user data (MTU). In order to be able to receive at least full IPv6 packet which has a size of 1280 bytes, the one should allocate 16 fragments here. config NET_BUF_USER_DATA_SIZE int "Size of user_data reserved" default 0 default 4 if NET_L2_BLUETOOTH help This is for drivers to set how much user_data shall be included in each network data fragment. Example: For Bluetooth, the user_data shall be at least 4 bytes as that is used for identifying the type of data they are carrying. source "subsys/net/ip/Kconfig.stack" source "subsys/net/ip/l2/Kconfig" source "subsys/net/ip/Kconfig.mgmt" source "subsys/net/ip/Kconfig.rpl" source "subsys/net/ip/Kconfig.stats" source "subsys/net/ip/Kconfig.app" endmenu |