1# IPv4 Options
2
3# Copyright (c) 2016 Intel Corporation.
4# SPDX-License-Identifier: Apache-2.0
5
6menuconfig NET_IPV4
7	bool "IPv4"
8	help
9	  Enable IPv4 support. If this is enabled then the device is
10	  able to send and receive IPv4 network packets.
11
12if NET_IPV4
13
14config NET_INITIAL_TTL
15	int "Initial IPv4 time to live value for unicast packets"
16	default 64
17	range 0 $(UINT8_MAX)
18	help
19	  The value should normally be > 0. The device receiving the IPv4
20	  packet will decrement the value and will drop the packet if the TTL
21	  value is 0. When sending, the packet is dropped before transmitting
22	  to network if TTL is 0.
23
24config NET_INITIAL_MCAST_TTL
25	int "Initial IPv4 time to live value for multicast packets"
26	default 1
27	range 0 $(UINT8_MAX)
28	help
29	  The value should normally be > 0. The device receiving the IPv4
30	  packet will decrement the value and will drop the packet if the TTL
31	  value is 0. When sending, the packet is dropped before transmitting
32	  to network if TTL is 0.
33	  The default is 1 (same as in Linux) which means that multicast packets
34	  don't leave the local network unless the application explicitly
35	  requests it.
36
37config NET_IF_MAX_IPV4_COUNT
38	int "Max number of IPv4 network interfaces in the system"
39	default NET_VLAN_COUNT if NET_VLAN
40	default 2 if NET_LOOPBACK
41	default 1
42	help
43	  This tells how many network interfaces there will be in the system
44	  that will have IPv4 enabled.
45
46config NET_IF_UNICAST_IPV4_ADDR_COUNT
47	int "Max number of unicast IPv4 addresses per network interface"
48	default 2 if NET_IPV4_AUTO
49	default 2 if NET_LOOPBACK
50	default 1
51
52config NET_IF_MCAST_IPV4_ADDR_COUNT
53	int "Max number of multicast IPv4 addresses per network interface"
54	default 2 if NET_IPV4_IGMP
55	default 1
56
57config NET_IF_MCAST_IPV4_SOURCE_COUNT
58	int "Max number of IPv4 sources per mcast address to be included or excluded"
59	default 1
60
61config NET_ICMPV4_ACCEPT_BROADCAST
62	bool "Accept broadcast ICMPv4 echo-request"
63	help
64	  If set, then respond to ICMPv4 echo-request that is sent to
65	  broadcast address.
66
67config NET_IPV4_ACCEPT_ZERO_BROADCAST
68	bool "Accept 0.0.0.0 broadcast destination address"
69	help
70	  If set, then accept UDP packets destined to non-standard
71	  0.0.0.0 broadcast address as described in RFC 1122 ch. 3.3.6
72
73config NET_IPV4_IGMP
74	bool "Internet Group Management Protocol (IGMPv2) support"
75	select NET_IPV4_HDR_OPTIONS
76	help
77	  The value depends on your network needs. IGMP should normally be
78	  enabled if IPv4 multicast support is needed. Currently we support
79	  IGMPv2 and earlier versions. This requires IPv4 header support
80	  because IP Router Alert option must be sent.
81	  See RFC 2236 for details.
82
83config NET_IPV4_IGMPV3
84	bool "Internet Group Management Protocol version 3 (IGMPv3) support"
85	depends on NET_IPV4_IGMP
86	help
87	  Use IGMPv3 for managing the multicast groups.
88
89config NET_IPV4_ACD
90	bool "Activate IPv4 address conflict detection (RFC 5227)"
91	depends on NET_ARP
92	help
93	  Activate IPv4 address conflict detection specified in RFC 5227.
94	  The conflict detection is based on ARP probes/announcements.
95
96config NET_IPV4_AUTO
97	bool "IPv4 autoconfiguration [EXPERIMENTAL]"
98	depends on NET_ARP
99	select EXPERIMENTAL
100	select NET_IPV4_ACD
101	select NET_MGMT
102	select NET_MGMT_EVENT
103	select NET_MGMT_EVENT_INFO
104	help
105	  Enables IPv4 auto IP address configuration (see RFC 3927)
106
107config NET_IPV4_HDR_OPTIONS
108	bool "IPv4 Header options support"
109	help
110	  Enables IPv4 header options support. Current support for only
111	  ICMPv4 Echo request. Only RecordRoute and Timestamp are handled.
112
113config NET_IPV4_FRAGMENT
114	bool "Support IPv4 fragmentation"
115	help
116	  IPv4 fragmentation is disabled by default. This limits incoming and
117	  outgoing packets to the MTU (1500 bytes for Ethernet). If you enable
118	  fragmentation support, please increase amount of RX data buffers so
119	  that larger packets can be received.
120
121config NET_IPV4_FRAGMENT_MAX_COUNT
122	int "How many packets to reassemble at a time"
123	range 1 16
124	default 1
125	depends on NET_IPV4_FRAGMENT
126	help
127	  How many fragmented IPv4 packets can be waiting reassembly
128	  simultaneously. You may need to increase the network buffer
129	  count.
130
131config NET_IPV4_FRAGMENT_MAX_PKT
132	int "How many fragments can be handled to reassemble a packet"
133	default 2
134	depends on NET_IPV4_FRAGMENT
135	help
136	  Incoming fragments are stored in per-packet queue before being
137	  reassembled. This value defines the number of fragments that
138	  can be handled at the same time to reassemble a single packet.
139
140	  You can increase this value if you expect packets with more
141	  than two fragments.
142
143config NET_IPV4_FRAGMENT_TIMEOUT
144	int "How long to wait for fragments to be received"
145	range 1 60
146	default 5
147	depends on NET_IPV4_FRAGMENT
148	help
149	  How long to wait for IPv4 fragment to arrive before the reassembly
150	  will timeout. This value is in seconds.
151
152module = NET_IPV4
153module-dep = NET_LOG
154module-str = Log level for core IPv4
155module-help = Enables core IPv4 code to output debug messages.
156source "subsys/net/Kconfig.template.log_config.net"
157
158module = NET_ICMPV4
159module-dep = NET_LOG
160module-str = Log level for ICMPv4
161module-help = Enables ICMPv4 code to output debug messages.
162source "subsys/net/Kconfig.template.log_config.net"
163
164#if NET_IPV4_ACD
165module = NET_IPV4_ACD
166module-dep = NET_LOG
167module-str = Log level for IPv4 address conflict detection
168module-help = Enables IPv4 address conflict detection debug messages.
169source "subsys/net/Kconfig.template.log_config.net"
170#endif
171
172if NET_IPV4_AUTO
173module = NET_IPV4_AUTO
174module-dep = NET_LOG
175module-str = Log level for IPv4 autoconf client
176module-help = Enable debug diagnostic from IPv4 autoconf client.
177source "subsys/net/Kconfig.template.log_config.net"
178endif # NET_IPV4_AUTO
179
180endif # NET_IPV4
181