diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2009-08-19 15:32:00 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2009-10-13 11:02:15 +0200 |
commit | 4d0670f2271f162c4d36c156f16cc4b88a1e7ad7 (patch) | |
tree | 6d9276ed2e55d52965f7d8554ddb0f5b1dcae9b7 /net/dhcp.c | |
parent | 87048e4a66cc250d859c0274b162c3975b4fe14a (diff) | |
download | barebox-4d0670f2271f162c4d36c156f16cc4b88a1e7ad7.tar.gz barebox-4d0670f2271f162c4d36c156f16cc4b88a1e7ad7.tar.xz |
net: cleanup header file
move contents of bootp.h to .c file and remove it.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'net/dhcp.c')
-rw-r--r-- | net/dhcp.c | 69 |
1 files changed, 68 insertions, 1 deletions
diff --git a/net/dhcp.c b/net/dhcp.c index ebbee81d2c..311e3a9dde 100644 --- a/net/dhcp.c +++ b/net/dhcp.c @@ -14,10 +14,77 @@ #include <clock.h> #include <net.h> #include <libbb.h> -#include "bootp.h" #include "tftp.h" #include "nfs.h" +#define OPT_SIZE 312 /* Minimum DHCP Options size per RFC2131 - results in 576 byte pkt */ + +typedef struct +{ + uchar bp_op; /* Operation */ +# define OP_BOOTREQUEST 1 +# define OP_BOOTREPLY 2 + uchar bp_htype; /* Hardware type */ +# define HWT_ETHER 1 + uchar bp_hlen; /* Hardware address length */ +# define HWL_ETHER 6 + uchar bp_hops; /* Hop count (gateway thing) */ + ulong bp_id; /* Transaction ID */ + ushort bp_secs; /* Seconds since boot */ + ushort bp_spare1; /* Alignment */ + IPaddr_t bp_ciaddr; /* Client IP address */ + IPaddr_t bp_yiaddr; /* Your (client) IP address */ + IPaddr_t bp_siaddr; /* Server IP address */ + IPaddr_t bp_giaddr; /* Gateway IP address */ + uchar bp_chaddr[16]; /* Client hardware address */ + char bp_sname[64]; /* Server host name */ + char bp_file[128]; /* Boot file name */ + char bp_vend[OPT_SIZE]; /* Vendor information */ +} Bootp_t; + +#define BOOTP_HDR_SIZE sizeof (Bootp_t) +#define BOOTP_SIZE (ETHER_HDR_SIZE + IP_HDR_SIZE + BOOTP_HDR_SIZE) + +/**********************************************************************/ +/* + * Global functions and variables. + */ + +/* bootp.c */ +extern ulong BootpID; /* ID of cur BOOTP request */ +extern char BootFile[128]; /* Boot file name */ +#ifdef CONFIG_BOOTP_RANDOM_DELAY +ulong seed1, seed2; /* seed for random BOOTP delay */ +#endif + + +/* Send a BOOTP request */ +extern void BootpRequest (void); + +/****************** DHCP Support *********************/ + +/* DHCP States */ +typedef enum { INIT, + INIT_REBOOT, + REBOOTING, + SELECTING, + REQUESTING, + REBINDING, + BOUND, + RENEWING } dhcp_state_t; + +#define DHCP_DISCOVER 1 +#define DHCP_OFFER 2 +#define DHCP_REQUEST 3 +#define DHCP_DECLINE 4 +#define DHCP_ACK 5 +#define DHCP_NAK 6 +#define DHCP_RELEASE 7 + +#define SELECT_TIMEOUT 3 /* Seconds to wait for offers */ + +/**********************************************************************/ + #define BOOTP_VENDOR_MAGIC 0x63825363 /* RFC1048 Magic Cookie */ #define TIMEOUT 5 /* Seconds before trying BOOTP again */ |