| /* |
| * Copyright (c) 2017 Matthias Boesl |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| /** @file |
| * @brief IPv4 Autoconfiguration |
| */ |
| |
| #ifndef ZEPHYR_INCLUDE_NET_IPV4_AUTOCONF_H_ |
| #define ZEPHYR_INCLUDE_NET_IPV4_AUTOCONF_H_ |
| |
| /** Current state of IPv4 Autoconfiguration */ |
| enum net_ipv4_autoconf_state { |
| NET_IPV4_AUTOCONF_INIT, /**< Initialization state */ |
| NET_IPV4_AUTOCONF_ASSIGNED, /**< Assigned state */ |
| NET_IPV4_AUTOCONF_RENEW, /**< Renew state */ |
| }; |
| |
| struct net_if; |
| |
| /** |
| * @brief Start IPv4 autoconfiguration RFC 3927: IPv4 Link Local |
| * |
| * @details Start IPv4 IP autoconfiguration |
| * |
| * @param iface A valid pointer on an interface |
| */ |
| #if defined(CONFIG_NET_IPV4_AUTO) |
| void net_ipv4_autoconf_start(struct net_if *iface); |
| #else |
| static inline void net_ipv4_autoconf_start(struct net_if *iface) |
| { |
| ARG_UNUSED(iface); |
| } |
| #endif |
| |
| /** |
| * @brief Reset autoconf process |
| * |
| * @details Reset IPv4 IP autoconfiguration |
| * |
| * @param iface A valid pointer on an interface |
| */ |
| #if defined(CONFIG_NET_IPV4_AUTO) |
| void net_ipv4_autoconf_reset(struct net_if *iface); |
| #else |
| static inline void net_ipv4_autoconf_reset(struct net_if *iface) |
| { |
| ARG_UNUSED(iface); |
| } |
| #endif |
| |
| /** @cond INTERNAL_HIDDEN */ |
| |
| /** |
| * @brief Initialize IPv4 auto configuration engine. |
| */ |
| #if defined(CONFIG_NET_IPV4_AUTO) |
| void net_ipv4_autoconf_init(void); |
| #else |
| static inline void net_ipv4_autoconf_init(void) { } |
| #endif |
| |
| /** @endcond */ |
| |
| #endif /* ZEPHYR_INCLUDE_NET_IPV4_AUTOCONF_H_ */ |