|  | /** @file | 
|  | *  @brief DHCPv4 Client Handler | 
|  | */ | 
|  |  | 
|  | /* | 
|  | * Copyright (c) 2016 Intel Corporation | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | #ifndef ZEPHYR_INCLUDE_NET_DHCPV4_H_ | 
|  | #define ZEPHYR_INCLUDE_NET_DHCPV4_H_ | 
|  |  | 
|  | #include <sys/slist.h> | 
|  | #include <zephyr/types.h> | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | /** | 
|  | * @brief DHCPv4 | 
|  | * @defgroup dhcpv4 DHCPv4 | 
|  | * @ingroup networking | 
|  | * @{ | 
|  | */ | 
|  |  | 
|  | /** @cond INTERNAL_HIDDEN */ | 
|  |  | 
|  | /** Current state of DHCPv4 client address negotiation. | 
|  | * | 
|  | * Additions removals and reorders in this definition must be | 
|  | * reflected within corresponding changes to net_dhcpv4_state_name. | 
|  | */ | 
|  | enum net_dhcpv4_state { | 
|  | NET_DHCPV4_DISABLED, | 
|  | NET_DHCPV4_INIT, | 
|  | NET_DHCPV4_SELECTING, | 
|  | NET_DHCPV4_REQUESTING, | 
|  | NET_DHCPV4_RENEWING, | 
|  | NET_DHCPV4_REBINDING, | 
|  | NET_DHCPV4_BOUND, | 
|  | } __packed; | 
|  |  | 
|  | /** @endcond */ | 
|  |  | 
|  | /** | 
|  | *  @brief Start DHCPv4 client on an iface | 
|  | * | 
|  | *  @details Start DHCPv4 client on a given interface. DHCPv4 client | 
|  | *  will start negotiation for IPv4 address. Once the negotiation is | 
|  | *  success IPv4 address details will be added to interface. | 
|  | * | 
|  | *  @param iface A valid pointer on an interface | 
|  | */ | 
|  | void net_dhcpv4_start(struct net_if *iface); | 
|  |  | 
|  | /** | 
|  | *  @brief Stop DHCPv4 client on an iface | 
|  | * | 
|  | *  @details Stop DHCPv4 client on a given interface. DHCPv4 client | 
|  | *  will remove all configuration obtained from a DHCP server from the | 
|  | *  interface and stop any further negotiation with the server. | 
|  | * | 
|  | *  @param iface A valid pointer on an interface | 
|  | */ | 
|  | void net_dhcpv4_stop(struct net_if *iface); | 
|  |  | 
|  | /** @cond INTERNAL_HIDDEN */ | 
|  |  | 
|  | /** | 
|  | *  @brief DHCPv4 state name | 
|  | * | 
|  | *  @internal | 
|  | */ | 
|  | const char *net_dhcpv4_state_name(enum net_dhcpv4_state state); | 
|  |  | 
|  | /** @endcond */ | 
|  |  | 
|  | /** | 
|  | * @} | 
|  | */ | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif /* ZEPHYR_INCLUDE_NET_DHCPV4_H_ */ |