1# Copyright (c) 2016 Intel Corporation
2# SPDX-License-Identifier: Apache-2.0
3
4config DNS_RESOLVER
5	bool "DNS resolver"
6	depends on NET_NATIVE
7	select CRC
8	help
9	  This option enables the DNS client side support for Zephyr
10
11if DNS_RESOLVER
12
13config DNS_RESOLVER_AUTO_INIT
14	bool "Automatically initialize the default DNS context"
15	default y
16	help
17	  Automatically initialize the default DNS context so dns_resolve_init
18	  does not need to be manually called.
19
20config MDNS_RESOLVER
21	bool "MDNS support"
22	help
23	  This option enables multicast DNS client side support.
24	  See RFC 6762 for details.
25
26config LLMNR_RESOLVER
27	bool "LLMNR support"
28	help
29	  This option enables link local multicast name resolution client side
30	  support. See RFC 4795 for details. LLMNR is typically used by Windows
31	  hosts. If you enable this option, then the DNS requests are ONLY sent
32	  to LLMNR well known multicast address 224.0.0.252:5355 or
33	  [ff02::1:3]:5355 and other DNS server addresses are ignored.
34
35
36config DNS_RESOLVER_ADDITIONAL_BUF_CTR
37	int "Additional DNS buffers"
38	default 0
39	help
40	  Number of additional buffers available for the DNS resolver.
41	  The DNS resolver requires at least one buffer. This option
42	  enables additional buffers required for multiple concurrent
43	  DNS connections.
44
45config DNS_RESOLVER_ADDITIONAL_QUERIES
46	int "Additional DNS queries"
47	range 0 2
48	default 1
49	help
50	  Number of additional DNS queries that the DNS resolver may
51	  generate when the RR ANSWER only contains CNAME(s).
52	  The maximum value of this variable is constrained to avoid
53	  'alias loops'.
54
55config DNS_RESOLVER_AI_MAX_ENTRIES
56	int "Maximum number of IP addresses for DNS name"
57	default 2
58	help
59	  Defines the max number of IP addresses per domain name
60	  resolution the DNS resolver can handle.
61
62
63config DNS_RESOLVER_MAX_SERVERS
64	int "Number of DNS server addresses"
65	range 1 NET_MAX_CONTEXTS
66	default 1
67	help
68	  Max number of DNS servers that we can connect to. Normally one
69	  DNS server is enough. Each connection to DNS server will use one
70	  network context.
71
72menuconfig DNS_SERVER_IP_ADDRESSES
73	bool "Set DNS server IP addresses"
74	help
75	  Allow DNS IP addresses to be set in config file for
76	  networking applications.
77
78if DNS_SERVER_IP_ADDRESSES
79
80config DNS_SERVER1
81	string "DNS server 1"
82	help
83	  DNS server IP address 1. The address can be either IPv4 or IPv6
84	  address. An optional port number can be given.
85	  Following syntax is supported:
86	  192.0.2.1
87	  192.0.2.1:5353
88	  2001:db8::1
89	  [2001:db8::1]:5353
90	  It is not mandatory to use this Kconfig option at all.
91	  The one calling dns_resolve_init() can use this option or not
92	  to populate the server list. If the DNS server addresses are
93	  set here, then we automatically create default DNS context
94	  for the user.
95
96config DNS_SERVER2
97	string "DNS server 2"
98	help
99	  See help in "DNS server 1" option.
100
101config DNS_SERVER3
102	string "DNS server 3"
103	help
104	  See help in "DNS server 1" option.
105
106config DNS_SERVER4
107	string "DNS server 4"
108	help
109	  See help in "DNS server 1" option.
110
111config DNS_SERVER5
112	string "DNS server 5"
113	help
114	  See help in "DNS server 1" option.
115
116endif # DNS_SERVER_IP_ADDRESSES
117
118config DNS_NUM_CONCUR_QUERIES
119	int "Number of simultaneous DNS queries per one DNS context"
120	default 1
121	help
122	  This defines how many concurrent DNS queries can be generated using
123	  same DNS context. Normally 1 is a good default value.
124
125module = DNS_RESOLVER
126module-dep = NET_LOG
127module-str = Log level for DNS resolver
128module-help = Enables DNS resolver code to output debug messages.
129source "subsys/net/Kconfig.template.log_config.net"
130
131endif # DNS_RESOLVER
132
133config MDNS_RESPONDER
134	bool "mDNS responder"
135	select NET_IPV4_IGMP if NET_IPV4
136	select NET_IPV6_MLD if NET_IPV6
137	select NET_MGMT
138	select NET_MGMT_EVENT
139	depends on NET_HOSTNAME_ENABLE
140	help
141	  This option enables the mDNS responder support for Zephyr.
142	  It will listen well-known address ff02::fb and 224.0.0.251.
143	  Currently this only returns IP address information.
144	  You must set CONFIG_NET_HOSTNAME to some meaningful value and
145	  then mDNS will start to respond to <hostname>.local mDNS queries.
146	  See RFC 6762 for more details about mDNS.
147
148if MDNS_RESPONDER
149
150config MDNS_RESPONDER_TTL
151	int "Time-to-Live of returned DNS name"
152	default 600
153	help
154	  DNS answers will use the TTL (in seconds).
155
156config MDNS_RESPONDER_INIT_PRIO
157	int "Startup priority for the mDNS responder init"
158	default 96
159	help
160	  Note that if NET_CONFIG_AUTO_INIT is enabled, then this value
161	  should be bigger than its value.
162
163config MDNS_RESPONDER_DNS_SD
164	bool "DNS Service Discovery via mDNS"
165	default y
166	depends on DNS_SD
167	help
168	  Selecting this option ensures that the MDNS Responder
169	  processes PTR, SRV, and TXT records according to RFC 6763.
170	  By doing so, Zephyr network services are discoverable
171	  using e.g. 'avahi-browse -t -r _greybus._tcp'.
172
173if MDNS_RESPONDER_DNS_SD
174config MDNS_RESPONDER_DNS_SD_SERVICE_TYPE_ENUMERATION
175	bool "DNS SD Service Type Enumeration"
176	default y
177	help
178	  Selecting this option ensures that the MDNS Responder
179	  performs DNS-SD Service Type Enumeration according to RFC 6763,
180	  Chapter 9. By doing so, Zephyr network services are discoverable
181	  using e.g. 'avahi-browse -t -r _services._dns-sd._udp.local'.
182endif # MDNS_RESPONDER_DNS_SD
183
184module = MDNS_RESPONDER
185module-dep = NET_LOG
186module-str = Log level for mDNS responder
187module-help = Enables mDNS responder code to output debug messages.
188source "subsys/net/Kconfig.template.log_config.net"
189
190config MDNS_RESOLVER_ADDITIONAL_BUF_CTR
191	int "Additional DNS buffers"
192	default 0
193	help
194	  Number of additional buffers available for the mDNS responder.
195
196endif # MDNS_RESPONDER
197
198config LLMNR_RESPONDER
199	bool "LLMNR responder"
200	select NET_IPV4_IGMP if NET_IPV4
201	select NET_IPV6_MLD if NET_IPV6
202	select NET_MGMT
203	select NET_MGMT_EVENT
204	depends on NET_HOSTNAME_ENABLE
205	help
206	  This option enables the LLMNR responder support for Zephyr.
207	  It will listen well-known address ff02::1:3 and 224.0.0.252.
208	  Currently this only returns IP address information.
209	  You must set CONFIG_NET_HOSTNAME to some meaningful value and
210	  then LLMNR will start to respond to <hostname> LLMNR queries.
211	  Note that LLMNR queries should only contain single-label names
212	  so there should be NO dot (".") in the name (RFC 4795 ch 3).
213	  Current implementation does not support TCP.
214	  See RFC 4795 for more details about LLMNR.
215
216if LLMNR_RESPONDER
217
218config LLMNR_RESPONDER_TTL
219	int "Time-to-Live of returned DNS name"
220	default 30
221	help
222	  DNS answers will use the TTL (in seconds). A default value is 30
223	  seconds as recommended by RFC 4795 chapter 2.8
224
225config LLMNR_RESPONDER_INIT_PRIO
226	int "Startup priority for the LLMNR responder init"
227	default 96
228	help
229	  Note that if NET_CONFIG_AUTO_INIT is enabled, then this value
230	  should be bigger than its value.
231
232module = LLMNR_RESPONDER
233module-dep = NET_LOG
234module-str = Log level for LLMNR responder
235module-help = Enables LLMNR responder code to output debug messages.
236source "subsys/net/Kconfig.template.log_config.net"
237
238config LLMNR_RESOLVER_ADDITIONAL_BUF_CTR
239	int "Additional DNS buffers"
240	default 0
241	help
242	  Number of additional buffers available for the LLMNR responder.
243
244endif # LLMNR_RESPONDER
245
246config DNS_SD
247	bool "DNS Service Discovery"
248	help
249	  This option enables DNS Service Discovery for Zephyr. It can
250	  be enabled for virtually any network service with only a few
251	  lines of code and works for both Unicast and Multicast DNS.
252	  See RFC 6763 for more details about DNS-SD.
253
254if DNS_SD
255
256module = DNS_SD
257module-dep = NET_LOG
258module-str = Log level for DNS-SD
259module-help = Enables DNS Service Discovery code to output debug messages.
260source "subsys/net/Kconfig.template.log_config.net"
261
262endif # DNS_SD
263