BadVPN – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 /**
2 * @file
3 * netif API (to be used from non-TCPIP threads)
4 */
5  
6 /*
7 * Redistribution and use in source and binary forms, with or without modification,
8 * are permitted provided that the following conditions are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright notice,
11 * this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright notice,
13 * this list of conditions and the following disclaimer in the documentation
14 * and/or other materials provided with the distribution.
15 * 3. The name of the author may not be used to endorse or promote products
16 * derived from this software without specific prior written permission.
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
19 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
20 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
21 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
26 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
27 * OF SUCH DAMAGE.
28 *
29 * This file is part of the lwIP TCP/IP stack.
30 *
31 */
32 #ifndef LWIP_HDR_NETIFAPI_H
33 #define LWIP_HDR_NETIFAPI_H
34  
35 #include "lwip/opt.h"
36  
37 #if LWIP_NETIF_API /* don't build if not configured for use in lwipopts.h */
38  
39 #include "lwip/sys.h"
40 #include "lwip/netif.h"
41 #include "lwip/dhcp.h"
42 #include "lwip/autoip.h"
43 #include "lwip/priv/tcpip_priv.h"
44 #include "lwip/priv/api_msg.h"
45  
46 #ifdef __cplusplus
47 extern "C" {
48 #endif
49  
50 /* API for application */
51 err_t netifapi_netif_add(struct netif *netif,
52 #if LWIP_IPV4
53 const ip4_addr_t *ipaddr, const ip4_addr_t *netmask, const ip4_addr_t *gw,
54 #endif /* LWIP_IPV4 */
55 void *state, netif_init_fn init, netif_input_fn input);
56  
57 #if LWIP_IPV4
58 err_t netifapi_netif_set_addr(struct netif *netif, const ip4_addr_t *ipaddr,
59 const ip4_addr_t *netmask, const ip4_addr_t *gw);
60 #endif /* LWIP_IPV4*/
61  
62 err_t netifapi_netif_common(struct netif *netif, netifapi_void_fn voidfunc,
63 netifapi_errt_fn errtfunc);
64  
65 /** @ingroup netifapi_netif */
66 err_t netifapi_netif_name_to_index(const char *name, u8_t *index);
67 /** @ingroup netifapi_netif */
68 err_t netifapi_netif_index_to_name(u8_t index, char *name);
69  
70 /** @ingroup netifapi_netif
71 * @see netif_remove()
72 */
73 #define netifapi_netif_remove(n) netifapi_netif_common(n, netif_remove, NULL)
74 /** @ingroup netifapi_netif
75 * @see netif_set_up()
76 */
77 #define netifapi_netif_set_up(n) netifapi_netif_common(n, netif_set_up, NULL)
78 /** @ingroup netifapi_netif
79 * @see netif_set_down()
80 */
81 #define netifapi_netif_set_down(n) netifapi_netif_common(n, netif_set_down, NULL)
82 /** @ingroup netifapi_netif
83 * @see netif_set_default()
84 */
85 #define netifapi_netif_set_default(n) netifapi_netif_common(n, netif_set_default, NULL)
86 /** @ingroup netifapi_netif
87 * @see netif_set_link_up()
88 */
89 #define netifapi_netif_set_link_up(n) netifapi_netif_common(n, netif_set_link_up, NULL)
90 /** @ingroup netifapi_netif
91 * @see netif_set_link_down()
92 */
93 #define netifapi_netif_set_link_down(n) netifapi_netif_common(n, netif_set_link_down, NULL)
94  
95 /**
96 * @defgroup netifapi_dhcp4 DHCPv4
97 * @ingroup netifapi
98 * To be called from non-TCPIP threads
99 */
100 /** @ingroup netifapi_dhcp4
101 * @see dhcp_start()
102 */
103 #define netifapi_dhcp_start(n) netifapi_netif_common(n, NULL, dhcp_start)
104 /**
105 * @ingroup netifapi_dhcp4
106 * @deprecated Use netifapi_dhcp_release_and_stop() instead.
107 */
108 #define netifapi_dhcp_stop(n) netifapi_netif_common(n, dhcp_stop, NULL)
109 /** @ingroup netifapi_dhcp4
110 * @see dhcp_inform()
111 */
112 #define netifapi_dhcp_inform(n) netifapi_netif_common(n, dhcp_inform, NULL)
113 /** @ingroup netifapi_dhcp4
114 * @see dhcp_renew()
115 */
116 #define netifapi_dhcp_renew(n) netifapi_netif_common(n, NULL, dhcp_renew)
117 /**
118 * @ingroup netifapi_dhcp4
119 * @deprecated Use netifapi_dhcp_release_and_stop() instead.
120 */
121 #define netifapi_dhcp_release(n) netifapi_netif_common(n, NULL, dhcp_release)
122 /** @ingroup netifapi_dhcp4
123 * @see dhcp_release_and_stop()
124 */
125 #define netifapi_dhcp_release_and_stop(n) netifapi_netif_common(n, dhcp_release_and_stop, NULL)
126  
127 /**
128 * @defgroup netifapi_autoip AUTOIP
129 * @ingroup netifapi
130 * To be called from non-TCPIP threads
131 */
132 /** @ingroup netifapi_autoip
133 * @see autoip_start()
134 */
135 #define netifapi_autoip_start(n) netifapi_netif_common(n, NULL, autoip_start)
136 /** @ingroup netifapi_autoip
137 * @see autoip_stop()
138 */
139 #define netifapi_autoip_stop(n) netifapi_netif_common(n, NULL, autoip_stop)
140  
141 #ifdef __cplusplus
142 }
143 #endif
144  
145 #endif /* LWIP_NETIF_API */
146  
147 #endif /* LWIP_HDR_NETIFAPI_H */