|
|
1.1 root 1: /******************************************************************************
2: * Copyright (c) 2004, 2008 IBM Corporation
3: * All rights reserved.
4: * This program and the accompanying materials
5: * are made available under the terms of the BSD License
6: * which accompanies this distribution, and is available at
7: * http://www.opensource.org/licenses/bsd-license.php
8: *
9: * Contributors:
10: * IBM Corporation - initial implementation
11: *****************************************************************************/
12:
13: #ifndef _DHCP_H_
14: #define _DHCP_H_
15:
16: #include <types.h>
17:
18: #ifdef USE_MTFTP
19: #include <netlib/mtftp.h>
20: #else
21: #include <netlib/tftp.h>
22: #endif
23:
24: /** \struct btphdr
25: * A header for BootP/DHCP-messages.
26: * For more information see RFC 951 / RFC 2131.
27: */
28: struct btphdr {
29: uint8_t op; /**< Identifies is it request (1) or reply (2) */
30: uint8_t htype; /**< HW address type (ethernet usually) */
31: uint8_t hlen; /**< HW address length */
32: uint8_t hops; /**< This info used by relay agents (not used) */
33: uint32_t xid; /**< This ID is used to match queries and replies */
34: uint16_t secs; /**< Unused */
35: uint16_t unused; /**< Unused */
36: uint32_t ciaddr; /**< Client IP address (if client knows it) */
37: uint32_t yiaddr; /**< "Your" (client) IP address */
38: uint32_t siaddr; /**< Next server IP address (TFTP server IP) */
39: uint32_t giaddr; /**< Gateway IP address (used by relay agents) */
40: uint8_t chaddr[16]; /**< Client HW address */
41: uint8_t sname[64]; /**< Server host name (TFTP server name) */
42: uint8_t file[128]; /**< Boot file name */
43: uint8_t vend[64]; /**< Optional parameters field (DHCP-options) */
44: };
45:
46: int bootp(char *ret_buffer, filename_ip_t *, unsigned int);
47: int dhcp(char *ret_buffer, filename_ip_t *, unsigned int);
48: void dhcp_send_release(void);
49:
50: /* Handles DHCP-packets, which are detected by receive_ether. */
51: extern int8_t handle_dhcp(uint8_t * packet, int32_t packetsize);
52:
53: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.