xref: /nrf52832-nimble/rt-thread/components/net/uip/apps/dhcpc/dhcpc.h (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero /*
2*10465441SEvalZero  * Copyright (c) 2005, Swedish Institute of Computer Science
3*10465441SEvalZero  * All rights reserved.
4*10465441SEvalZero  *
5*10465441SEvalZero  * Redistribution and use in source and binary forms, with or without
6*10465441SEvalZero  * modification, are permitted provided that the following conditions
7*10465441SEvalZero  * are met:
8*10465441SEvalZero  * 1. Redistributions of source code must retain the above copyright
9*10465441SEvalZero  *    notice, this list of conditions and the following disclaimer.
10*10465441SEvalZero  * 2. Redistributions in binary form must reproduce the above copyright
11*10465441SEvalZero  *    notice, this list of conditions and the following disclaimer in the
12*10465441SEvalZero  *    documentation and/or other materials provided with the distribution.
13*10465441SEvalZero  * 3. Neither the name of the Institute nor the names of its contributors
14*10465441SEvalZero  *    may be used to endorse or promote products derived from this software
15*10465441SEvalZero  *    without specific prior written permission.
16*10465441SEvalZero  *
17*10465441SEvalZero  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
18*10465441SEvalZero  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19*10465441SEvalZero  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20*10465441SEvalZero  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
21*10465441SEvalZero  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22*10465441SEvalZero  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23*10465441SEvalZero  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24*10465441SEvalZero  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25*10465441SEvalZero  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26*10465441SEvalZero  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27*10465441SEvalZero  * SUCH DAMAGE.
28*10465441SEvalZero  *
29*10465441SEvalZero  * This file is part of the uIP TCP/IP stack
30*10465441SEvalZero  *
31*10465441SEvalZero  * @(#)$Id: dhcpc.h,v 1.3 2006/06/11 21:46:37 adam Exp $
32*10465441SEvalZero  */
33*10465441SEvalZero #ifndef __DHCPC_H__
34*10465441SEvalZero #define __DHCPC_H__
35*10465441SEvalZero 
36*10465441SEvalZero #include "timer.h"
37*10465441SEvalZero #include "pt.h"
38*10465441SEvalZero 
39*10465441SEvalZero struct dhcpc_state {
40*10465441SEvalZero   struct pt pt;
41*10465441SEvalZero   char state;
42*10465441SEvalZero   struct uip_udp_conn *conn;
43*10465441SEvalZero   struct timer timer;
44*10465441SEvalZero   u16_t ticks;
45*10465441SEvalZero   const void *mac_addr;
46*10465441SEvalZero   int mac_len;
47*10465441SEvalZero 
48*10465441SEvalZero   u8_t serverid[4];
49*10465441SEvalZero 
50*10465441SEvalZero   u16_t lease_time[2];
51*10465441SEvalZero   u16_t ipaddr[2];
52*10465441SEvalZero   u16_t netmask[2];
53*10465441SEvalZero   u16_t dnsaddr[2];
54*10465441SEvalZero   u16_t default_router[2];
55*10465441SEvalZero };
56*10465441SEvalZero 
57*10465441SEvalZero void dhcpc_init(const void *mac_addr, int mac_len);
58*10465441SEvalZero void dhcpc_request(void);
59*10465441SEvalZero 
60*10465441SEvalZero void dhcpc_appcall(void);
61*10465441SEvalZero 
62*10465441SEvalZero void dhcpc_configured(const struct dhcpc_state *s);
63*10465441SEvalZero 
64*10465441SEvalZero typedef struct dhcpc_state uip_udp_appstate_t;
65*10465441SEvalZero #define UIP_UDP_APPCALL dhcpc_appcall
66*10465441SEvalZero 
67*10465441SEvalZero 
68*10465441SEvalZero #endif /* __DHCPC_H__ */
69