Free (GPLv2) TCP/IP stack developed by TASS Belgium

Fork of PicoTCP by Daniele Lacamera

Committer:
daniele
Date:
Sat Aug 03 08:50:27 2013 +0000
Revision:
51:18637a3d071f
Parent:
3:b4047e8a0123
Branch for CDC-ECM: Work in progress

Who changed what in which revision?

UserRevisionLine numberNew contents of line
daniele 3:b4047e8a0123 1 /*********************************************************************
daniele 3:b4047e8a0123 2 PicoTCP. Copyright (c) 2012 TASS Belgium NV. Some rights reserved.
daniele 3:b4047e8a0123 3 See LICENSE and COPYING for usage.
daniele 3:b4047e8a0123 4
daniele 3:b4047e8a0123 5 *********************************************************************/
daniele 3:b4047e8a0123 6 #ifndef _INCLUDE_PICO_DHCP_SERVER
daniele 3:b4047e8a0123 7 #define _INCLUDE_PICO_DHCP_SERVER
daniele 3:b4047e8a0123 8
daniele 3:b4047e8a0123 9 #include "pico_dhcp_common.h"
daniele 3:b4047e8a0123 10 #include "pico_addressing.h"
daniele 3:b4047e8a0123 11
daniele 3:b4047e8a0123 12 /* default configuration */
daniele 3:b4047e8a0123 13 #define OPENDNS (long_be(0xd043dede)) /* OpenDNS DNS server 208.67.222.222 */
daniele 3:b4047e8a0123 14 #define POOL_START long_be(0x00000064)
daniele 3:b4047e8a0123 15 #define POOL_END long_be(0x000000fe)
daniele 3:b4047e8a0123 16 #define LEASE_TIME long_be(0x00000078)
daniele 3:b4047e8a0123 17
daniele 3:b4047e8a0123 18 struct pico_dhcpd_settings
daniele 3:b4047e8a0123 19 {
daniele 3:b4047e8a0123 20 struct pico_device *dev;
daniele 3:b4047e8a0123 21 struct pico_socket *s;
daniele 3:b4047e8a0123 22 struct pico_ip4 my_ip;
daniele 3:b4047e8a0123 23 struct pico_ip4 netmask;
daniele 3:b4047e8a0123 24 uint32_t pool_start;
daniele 3:b4047e8a0123 25 uint32_t pool_next;
daniele 3:b4047e8a0123 26 uint32_t pool_end;
daniele 3:b4047e8a0123 27 uint32_t lease_time;
daniele 3:b4047e8a0123 28 uint8_t flags; /* unused atm */
daniele 3:b4047e8a0123 29 };
daniele 3:b4047e8a0123 30
daniele 3:b4047e8a0123 31 struct pico_dhcp_negotiation {
daniele 3:b4047e8a0123 32 struct pico_dhcpd_settings *settings;
daniele 3:b4047e8a0123 33 struct pico_ip4 ipv4;
daniele 3:b4047e8a0123 34 struct pico_eth eth;
daniele 3:b4047e8a0123 35 enum dhcp_negotiation_state state;
daniele 3:b4047e8a0123 36 uint32_t xid;
daniele 3:b4047e8a0123 37 uint32_t assigned_address;
daniele 3:b4047e8a0123 38 };
daniele 3:b4047e8a0123 39
daniele 3:b4047e8a0123 40 /* required settings field: IP address of the interface to serve, only IPs of this network will be served. */
daniele 3:b4047e8a0123 41 int pico_dhcp_server_initiate(struct pico_dhcpd_settings *setting);
daniele 3:b4047e8a0123 42
daniele 3:b4047e8a0123 43 #endif /* _INCLUDE_PICO_DHCP_SERVER */