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