Free (GPLv2) TCP/IP stack developed by TASS Belgium
Fork of PicoTCP by
modules/pico_dhcp_server.h@1:cfe8984a32b4, 2013-05-17 (annotated)
- Committer:
- tass
- Date:
- Fri May 17 12:09:59 2013 +0000
- Revision:
- 1:cfe8984a32b4
- Parent:
- libraries/picotcp/modules/pico_dhcp_server.h@0:d7f2341ab245
Update for smaller SOCKETQ
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
daniele | 0:d7f2341ab245 | 1 | /********************************************************************* |
daniele | 0:d7f2341ab245 | 2 | PicoTCP. Copyright (c) 2012 TASS Belgium NV. Some rights reserved. |
daniele | 0:d7f2341ab245 | 3 | See LICENSE and COPYING for usage. |
daniele | 0:d7f2341ab245 | 4 | |
daniele | 0:d7f2341ab245 | 5 | *********************************************************************/ |
daniele | 0:d7f2341ab245 | 6 | #ifndef _INCLUDE_PICO_DHCP_SERVER |
daniele | 0:d7f2341ab245 | 7 | #define _INCLUDE_PICO_DHCP_SERVER |
daniele | 0:d7f2341ab245 | 8 | |
daniele | 0:d7f2341ab245 | 9 | #include "pico_dhcp_common.h" |
daniele | 0:d7f2341ab245 | 10 | #include "pico_addressing.h" |
daniele | 0:d7f2341ab245 | 11 | |
daniele | 0:d7f2341ab245 | 12 | /* default configuration */ |
daniele | 0:d7f2341ab245 | 13 | #define OPENDNS (long_be(0xd043dede)) /* OpenDNS DNS server 208.67.222.222 */ |
daniele | 0:d7f2341ab245 | 14 | #define POOL_START long_be(0x00000064) |
daniele | 0:d7f2341ab245 | 15 | #define POOL_END long_be(0x000000fe) |
daniele | 0:d7f2341ab245 | 16 | #define LEASE_TIME long_be(0x00000078) |
daniele | 0:d7f2341ab245 | 17 | |
daniele | 0:d7f2341ab245 | 18 | struct pico_dhcpd_settings |
daniele | 0:d7f2341ab245 | 19 | { |
daniele | 0:d7f2341ab245 | 20 | struct pico_device *dev; |
daniele | 0:d7f2341ab245 | 21 | struct pico_socket *s; |
daniele | 0:d7f2341ab245 | 22 | struct pico_ip4 my_ip; |
daniele | 0:d7f2341ab245 | 23 | struct pico_ip4 netmask; |
daniele | 0:d7f2341ab245 | 24 | uint32_t pool_start; |
daniele | 0:d7f2341ab245 | 25 | uint32_t pool_next; |
daniele | 0:d7f2341ab245 | 26 | uint32_t pool_end; |
daniele | 0:d7f2341ab245 | 27 | uint32_t lease_time; |
daniele | 0:d7f2341ab245 | 28 | uint8_t flags; /* unused atm */ |
daniele | 0:d7f2341ab245 | 29 | }; |
daniele | 0:d7f2341ab245 | 30 | |
daniele | 0:d7f2341ab245 | 31 | struct pico_dhcp_negotiation { |
daniele | 0:d7f2341ab245 | 32 | struct pico_dhcpd_settings *settings; |
daniele | 0:d7f2341ab245 | 33 | struct pico_ip4 ipv4; |
daniele | 0:d7f2341ab245 | 34 | struct pico_eth eth; |
daniele | 0:d7f2341ab245 | 35 | enum dhcp_negotiation_state state; |
daniele | 0:d7f2341ab245 | 36 | uint32_t xid; |
daniele | 0:d7f2341ab245 | 37 | uint32_t assigned_address; |
daniele | 0:d7f2341ab245 | 38 | }; |
daniele | 0:d7f2341ab245 | 39 | |
daniele | 0:d7f2341ab245 | 40 | /* required settings field: IP address of the interface to serve, only IPs of this network will be served. */ |
daniele | 0:d7f2341ab245 | 41 | int pico_dhcp_server_initiate(struct pico_dhcpd_settings *setting); |
daniele | 0:d7f2341ab245 | 42 | |
daniele | 0:d7f2341ab245 | 43 | #endif /* _INCLUDE_PICO_DHCP_SERVER */ |