X-Git-Url: http://git.linex4red.de/pub/lufa.git/blobdiff_plain/a960e4b3b2ae72c6c3573fb690a1b9cde1642bc0..cec699ac591a679010e07431dfb17823a79856df:/Projects/Webserver/Lib/DHCPApp.h diff --git a/Projects/Webserver/Lib/DHCPApp.h b/Projects/Webserver/Lib/DHCPApp.h index 9e9faaa36..5d11d8236 100644 --- a/Projects/Webserver/Lib/DHCPApp.h +++ b/Projects/Webserver/Lib/DHCPApp.h @@ -44,36 +44,76 @@ #include "../Webserver.h" /* Macros: */ + /** UDP listen port for a BOOTP server */ #define DHCPC_SERVER_PORT 67 + + /** UDP listen port for a BOOTP client */ #define DHCPC_CLIENT_PORT 68 + /** BOOTP message type for a BOOTP REQUEST message */ #define DHCP_OP_BOOTREQUEST 0x01 + + /** BOOTP message type for a BOOTP REPLY message */ #define DHCP_OP_BOOTREPLY 0x02 + /** BOOTP flag for a BOOTP broadcast message */ #define BOOTP_BROADCAST 0x8000 + /** Magic DHCP cookie for a BOOTP message to identify it as a DHCP message */ #define DHCP_MAGIC_COOKIE 0x63538263 + /** Unique transaction ID used to identify DHCP responses to the client */ #define DHCP_TRANSACTION_ID 0x13245466 + /** DHCP message type for a DISCOVER message */ #define DHCP_DISCOVER 1 + + /** DHCP message type for an OFFER message */ #define DHCP_OFFER 2 + + /** DHCP message type for a REQUEST message */ #define DHCP_REQUEST 3 + + /** DHCP message type for a DECLINE message */ #define DHCP_DECLINE 4 + + /** DHCP message type for an ACK message */ #define DHCP_ACK 5 + + /** DHCP message type for a NAK message */ #define DHCP_NAK 6 + + /** DHCP message type for a RELEASE message */ #define DHCP_RELEASE 7 + /** DHCP medium type for standard Ethernet */ #define DHCP_HTYPE_ETHERNET 1 + /** DHCP message option for the network subnet mask */ #define DHCP_OPTION_SUBNET_MASK 1 + + /** DHCP message option for the network gateway IP */ #define DHCP_OPTION_ROUTER 3 + + /** DHCP message option for the network DNS server */ #define DHCP_OPTION_DNS_SERVER 6 + + /** DHCP message option for the requested client IP address */ #define DHCP_OPTION_REQ_IPADDR 50 + + /** DHCP message option for the IP address lease time */ #define DHCP_OPTION_LEASE_TIME 51 + + /** DHCP message option for the DHCP message type */ #define DHCP_OPTION_MSG_TYPE 53 + + /** DHCP message option for the DHCP server IP */ #define DHCP_OPTION_SERVER_ID 54 + + /** DHCP message option for the list of required options from the server */ #define DHCP_OPTION_REQ_LIST 55 + + /** DHCP message option for the options list terminator */ #define DHCP_OPTION_END 255 /* Type Defines: */ @@ -105,13 +145,14 @@ } DHCP_Header_t; /* Enums: */ + /** States for each DHCP connection to a DHCP client. */ enum DHCP_States_t { - DHCP_STATE_SendDiscover, - DHCP_STATE_WaitForResponse, - DHCP_STATE_SendRequest, - DHCP_STATE_WaitForACK, - DHCP_STATE_AddressLeased, + DHCP_STATE_SendDiscover, /**< Send DISCOVER packet to retrieve DHCP lease offers */ + DHCP_STATE_WaitForOffer, /**< Waiting for OFFER packet giving available DHCP leases */ + DHCP_STATE_SendRequest, /**< Send REQUEST packet to request a DHCP lease */ + DHCP_STATE_WaitForACK, /**< Wait for ACK packet to complete the DHCP lease */ + DHCP_STATE_AddressLeased, /**< DHCP address has been leased from a DHCP server */ }; /* Function Prototypes: */ @@ -119,7 +160,7 @@ void DHCPApp_Callback(void); uint16_t DHCPApp_FillDHCPHeader(DHCP_Header_t* DHCPHeader, uint8_t DHCPMessageType, uip_udp_appstate_t* AppState); - uint8_t DHCPApp_SetOption(uint8_t* DHCPOptionList, uint8_t Option, uint8_t DataLen, void* Source); + uint8_t DHCPApp_SetOption(uint8_t* DHCPOptionList, uint8_t Option, uint8_t DataLen, void* OptionData); bool DHCPApp_GetOption(uint8_t* DHCPOptionList, uint8_t Option, void* Destination); #endif