dhcv4 server was not providing the dns server details to the client because dns option was handled. Added the dns server option to be send to the client as response form dhcpv4 server Signed-off-by: Muhammad Haziq <muhammad.haziq@zintechnologies.com>
177 lines
5.9 KiB
Plaintext
177 lines
5.9 KiB
Plaintext
# DHCPv4 implementation for Zephyr
|
|
|
|
# Copyright (c) 2016 Intel Corporation.
|
|
# Copyright (c) 2024 Nordic Semiconductor ASA
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
config NET_DHCPV4
|
|
bool "DHCPv4 client"
|
|
select NET_MGMT
|
|
select NET_MGMT_EVENT
|
|
select NET_MGMT_EVENT_INFO if NET_IPV4_ACD
|
|
depends on NET_IPV4 && NET_UDP
|
|
|
|
if NET_DHCPV4
|
|
|
|
module = NET_DHCPV4
|
|
module-dep = NET_LOG
|
|
module-str = Log level for DHCPv4 client
|
|
module-help = Enable debug diagnostic from DHCPV4 client.
|
|
source "subsys/net/Kconfig.template.log_config.net"
|
|
|
|
config NET_DHCPV4_INITIAL_DELAY_MAX
|
|
int "Maximum time out for initial discover request"
|
|
depends on NET_DHCPV4
|
|
default 10
|
|
range 2 10
|
|
help
|
|
As per RFC2131 4.1.1, we wait a random period between
|
|
1 and 10 seconds before sending the initial discover.
|
|
|
|
config NET_DHCPV4_OPTION_CALLBACKS
|
|
bool "Option callbacks"
|
|
depends on NET_DHCPV4
|
|
help
|
|
If set, custom callbacks for arbitrary DHCP options
|
|
can be added. These can be used to support otherwise
|
|
DHCP options not used by the rest of the system.
|
|
|
|
config NET_DHCPV4_MAX_REQUESTED_OPTIONS
|
|
int "Maximum number of requested options"
|
|
depends on NET_DHCPV4 && NET_DHCPV4_OPTION_CALLBACKS
|
|
default 10
|
|
range 3 $(UINT8_MAX)
|
|
help
|
|
Maximum number of requested options that can be added to the
|
|
DHCPv4 request message. The options are added using the
|
|
net_dhcpv4_add_option_callback() API.
|
|
|
|
config NET_DHCPV4_OPTION_CALLBACKS_VENDOR_SPECIFIC
|
|
bool "Encapsulated vendor specific option callbacks"
|
|
depends on NET_DHCPV4
|
|
select NET_DHCPV4_OPTION_CALLBACKS
|
|
help
|
|
If set, custom callbacks for encapsulated vendor-specific
|
|
information in DHCP option 43 can be added.
|
|
|
|
config NET_DHCPV4_ACCEPT_UNICAST
|
|
bool "Accept unicast DHCPv4 traffic"
|
|
depends on NET_DHCPV4
|
|
default y
|
|
help
|
|
If set, the network stack will accept unicast DHCPv4 responses from
|
|
servers, before the assigned address is configured on the interface.
|
|
|
|
config NET_DHCPV4_VENDOR_CLASS_IDENTIFIER
|
|
bool "Send vendor class identifier in DHCPv4 request"
|
|
depends on NET_DHCPV4
|
|
help
|
|
If set, the network stack will include the specified string in the
|
|
DHCPv4 vendor class identifier option in the DHCPv4 request.
|
|
|
|
config NET_DHCPV4_VENDOR_CLASS_IDENTIFIER_STRING
|
|
string "Vendor class identifier"
|
|
depends on NET_DHCPV4_VENDOR_CLASS_IDENTIFIER
|
|
default ""
|
|
help
|
|
The string to include in the DHCPv4 vendor class identifier option
|
|
in the DHCPv4 request.
|
|
|
|
config NET_DHCPV4_OPTION_NTP_SERVER
|
|
bool "Use NTP server from DHCPv4 option and save it in the net_if"
|
|
default y
|
|
depends on SNTP
|
|
help
|
|
If this option is set, then the NTP server can be set from the
|
|
DHCPv4 option.
|
|
|
|
endif # NET_DHCPV4
|
|
|
|
config NET_DHCPV4_SERVER
|
|
bool "DHCPv4 server"
|
|
depends on NET_IPV4 && NET_UDP
|
|
select NET_SOCKETS
|
|
select NET_SOCKETS_SERVICE
|
|
|
|
if NET_DHCPV4_SERVER
|
|
|
|
module = NET_DHCPV4_SERVER
|
|
module-dep = NET_LOG
|
|
module-str = Log level for DHCPv4 server
|
|
module-help = Enables DHCPv4 server output debug messages
|
|
source "subsys/net/Kconfig.template.log_config.net"
|
|
|
|
config NET_DHCPV4_SERVER_INSTANCES
|
|
int "Maximum number of DHCPv4 server instances"
|
|
default 1
|
|
help
|
|
Maximum number of DHCPv4 server instances supported by the system.
|
|
Each network interface that wants to act as a DHCPv4 server requires
|
|
a separate instance.
|
|
|
|
config NET_DHCPV4_SERVER_ADDR_COUNT
|
|
int "Number of IPv4 addresses that can be assigned by the server"
|
|
default 4
|
|
help
|
|
Maximum number of IPv4 addresses that can be assigned by the DHCPv4
|
|
server instance. The base IPv4 address in the address pool is provided
|
|
at runtime, during server initialization. Consecutive addresses in the
|
|
pool have the lowest address octet incremented.
|
|
|
|
config NET_DHCPV4_SERVER_ADDR_LEASE_TIME
|
|
int "Lease time for IPv4 addresses assigned by the server (seconds)"
|
|
range 0 $(UINT32_MAX)
|
|
default 86400
|
|
help
|
|
Lease time in seconds for IPv4 addresses assigned by the server.
|
|
The lease time determines when the IPv4 address lease expires if the
|
|
client does not renew it.
|
|
|
|
config NET_DHCPV4_SERVER_ADDR_DECLINE_TIME
|
|
int "The time IPv4 addresses remains blocked after conflict detection (seconds)"
|
|
range 0 $(UINT32_MAX)
|
|
default 86400
|
|
help
|
|
In case IPv4 address becomes blocked (either because of receiving
|
|
Decline message or due to ICMP probe detecting conflict), the address
|
|
can no longer be assigned. This timeout specifies how long the address
|
|
remains in the Declined state.
|
|
Note, that the server may try to reuse the oldest declined address in
|
|
case it runs out of free addresses to assign.
|
|
|
|
config NET_DHCPV4_SERVER_ICMP_PROBE_TIMEOUT
|
|
int "Timeout for ICMP probes sent by the server (milliseconds)"
|
|
range 0 60000
|
|
default 1000
|
|
help
|
|
DHCPv4 server will probe the offered IP address (send ICMP echo
|
|
request) and wait for the time specific by this config before offering
|
|
the address. If set to 0, ICMP probing will be disabled.
|
|
|
|
config NET_DHCPV4_SERVER_NAK_UNRECOGNIZED_REQUESTS
|
|
bool "Reply with NAK for DHCP Requests from clients we do not recognize"
|
|
default y
|
|
help
|
|
Zephyr's DHCPv4 server does not implement persistent storage of address
|
|
leases. As a result, all leases are lost on reboot, which can cause
|
|
delays with clients starting in INIT-REBOOT state and thus sending
|
|
(potentially several) Requests before attempting full Discover-Request
|
|
procedure. Enabling this config will violate the RFC in this regard, as
|
|
instead of staying silent for unrecognized Request messages, the server
|
|
will send a NAK, informing the client it should proceed with a full
|
|
procedure.
|
|
|
|
config NET_DHCPV4_SERVER_OPTION_DNS_ADDRESS
|
|
string "DNS Server address"
|
|
default DNS_SERVER1 if DNS_SERVER_IP_ADDRESSES
|
|
default ""
|
|
help
|
|
This configuration option specifies the DNS server address that the DHCPv4
|
|
server should provide to clients when they request an IP address. The
|
|
DHCPv4 server adds this DNS server address in the DHCP offer and
|
|
acknowledgment messages sent to the clients, allowing them to use the
|
|
specified DNS server for name resolution.
|
|
|
|
endif # NET_DHCPV4_SERVER
|