f1f6d16b7b4d7198d78a4543ad1c2a5b1cc87d47
[barrelfish] / include / net / dhcp.h
1 /**
2  * @brief
3  *  net.h
4  */
5
6 /*
7  * Copyright (c) 2017, ETH Zurich.
8  * All rights reserved.
9  *
10  * This file is distributed under the terms in the attached LICENSE file.
11  * If you do not find this file, copies can be found by writing to:
12  * ETH Zurich D-INFK, Universitaetsstrasse 6, CH-8092 Zurich. Attn: Systems Group.
13  */
14
15
16 #ifndef LIB_NET_INCLUDE_NETWORKING_DHCP_H_
17 #define LIB_NET_INCLUDE_NETWORKING_DHCP_H_
18
19 #include <net/net.h>
20 #include <lwip/ip_addr.h>
21
22 /**
23  * @brief starts the dhcpd service on the interface
24  *
25  * @param flags flags to provide
26  *
27  * @return SYS_ERR_OK on success, errval on failure
28  */
29 errval_t dhcpd_start(net_flags_t flags);
30
31
32 /**
33  * @brief stops the dhcpd service
34  */
35 errval_t dhcpd_stop(void);
36
37
38 /* functions for querying the current settings */
39
40 /**
41  * @brief queries the DHCPD settings of the machine
42  *
43  * @param flags flags to provide
44  *
45  * @return SYS_ERR_OK on success, errval on failure
46  */
47 errval_t dhcpd_query(net_flags_t flags);
48
49
50 /**
51  * @brief returns the IP configuration
52  *
53  * @param ip    return the IP address
54  * @param gw    returns the gateway
55  * @param nm    returns the netmask
56  *
57  * @return
58  */
59 errval_t dhcpd_get_ipconfig(struct in_addr *ip, struct in_addr *gw, struct in_addr *nm);
60
61 /**
62  * @brief sets the IP configuration
63  *
64  * @param ip    the IP address
65  * @param gw    the Gateway
66  * @param nm    the Netmask
67  *
68  * @return SYS_ERR_OK on success, errval on failure
69  */
70 errval_t dhcpd_set_ipconfig(struct in_addr *ip, struct in_addr *gw, struct in_addr *nm);
71
72 #endif /* LIB_NET_INCLUDE_NETWORKING_DHCP_H_ */