Line data Source code
1 1 : /*
2 : * Copyright (c) 2017 Matthias Boesl
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 :
7 : /** @file
8 : * @brief IPv4 Autoconfiguration
9 : */
10 :
11 : #ifndef ZEPHYR_INCLUDE_NET_IPV4_AUTOCONF_H_
12 : #define ZEPHYR_INCLUDE_NET_IPV4_AUTOCONF_H_
13 :
14 : /** Current state of IPv4 Autoconfiguration */
15 1 : enum net_ipv4_autoconf_state {
16 : NET_IPV4_AUTOCONF_INIT, /**< Initialization state */
17 : NET_IPV4_AUTOCONF_ASSIGNED, /**< Assigned state */
18 : NET_IPV4_AUTOCONF_RENEW, /**< Renew state */
19 : };
20 :
21 : struct net_if;
22 :
23 : /**
24 : * @brief Start IPv4 autoconfiguration RFC 3927: IPv4 Link Local
25 : *
26 : * @details Start IPv4 IP autoconfiguration
27 : *
28 : * @param iface A valid pointer on an interface
29 : */
30 : #if defined(CONFIG_NET_IPV4_AUTO)
31 : void net_ipv4_autoconf_start(struct net_if *iface);
32 : #else
33 1 : static inline void net_ipv4_autoconf_start(struct net_if *iface)
34 : {
35 : ARG_UNUSED(iface);
36 : }
37 : #endif
38 :
39 : /**
40 : * @brief Reset autoconf process
41 : *
42 : * @details Reset IPv4 IP autoconfiguration
43 : *
44 : * @param iface A valid pointer on an interface
45 : */
46 : #if defined(CONFIG_NET_IPV4_AUTO)
47 : void net_ipv4_autoconf_reset(struct net_if *iface);
48 : #else
49 1 : static inline void net_ipv4_autoconf_reset(struct net_if *iface)
50 : {
51 : ARG_UNUSED(iface);
52 : }
53 : #endif
54 :
55 : /** @cond INTERNAL_HIDDEN */
56 :
57 : /**
58 : * @brief Initialize IPv4 auto configuration engine.
59 : */
60 : #if defined(CONFIG_NET_IPV4_AUTO)
61 : void net_ipv4_autoconf_init(void);
62 : #else
63 : static inline void net_ipv4_autoconf_init(void) { }
64 : #endif
65 :
66 : /** @endcond */
67 :
68 : #endif /* ZEPHYR_INCLUDE_NET_IPV4_AUTOCONF_H_ */
|