OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [trunk/] [bootloaders/] [orpmon/] [services/] [bootp.h] - Blame information for rev 248

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 marcus.erl
/*
2
 *      Copied from LiMon - BOOTP.
3
 *
4
 *      Copyright 1994, 1995, 2000 Neil Russell.
5
 *      (See License)
6
 *      Copyright 2000 Paolo Scaffardi
7
 */
8
 
9
#ifndef __BOOTP_H__
10
#define __BOOTP_H__
11
 
12
#ifndef __NET_H__
13
#include        "net.h"
14
#endif /* __NET_H__ */
15
 
16
/**********************************************************************/
17
 
18
/*
19
 *      BOOTP header.
20
 */
21
#if (CONFIG_COMMANDS & CFG_CMD_DHCP)
22
#define OPT_SIZE 312    /* Minimum DHCP Options size per RFC2131 - results in 576 byte pkt */
23
#else
24
#define OPT_SIZE 64
25
#endif
26
 
27
typedef struct
28
{
29
        unsigned char           bp_op;          /* Operation                            */
30
# define OP_BOOTREQUEST 1
31
# define OP_BOOTREPLY   2
32
        unsigned char           bp_htype;       /* Hardware type                        */
33
# define HWT_ETHER      1
34
        unsigned char           bp_hlen;        /* Hardware address length              */
35
# define HWL_ETHER      6
36
        unsigned char           bp_hops;        /* Hop count (gateway thing)            */
37
        unsigned long           bp_id;          /* Transaction ID                       */
38
        unsigned short          bp_secs;        /* Seconds since boot                   */
39
        unsigned short          bp_spare1;      /* Alignment                            */
40
        IPaddr_t        bp_ciaddr;      /* Client IP address                    */
41
        IPaddr_t        bp_yiaddr;      /* Your (client) IP address             */
42
        IPaddr_t        bp_siaddr;      /* Server IP address                    */
43
        IPaddr_t        bp_giaddr;      /* Gateway IP address                   */
44
        unsigned char           bp_chaddr[16];  /* Client hardware address              */
45
        char            bp_sname[64];   /* Server host name                     */
46
        char            bp_file[128];   /* Boot file name                       */
47
        char            bp_vend[OPT_SIZE];      /* Vendor information                   */
48
}       Bootp_t;
49
 
50
#define BOOTP_HDR_SIZE  sizeof (Bootp_t)
51
#define BOOTP_SIZE      (ETHER_HDR_SIZE + IP_HDR_SIZE + BOOTP_HDR_SIZE)
52
 
53
/**********************************************************************/
54
/*
55
 *      Global functions and variables.
56
 */
57
 
58
/* bootp.c */
59
extern unsigned long    BootpID;                /* ID of cur BOOTP request              */
60
extern char     BootFile[128];          /* Boot file name                       */
61
extern int      BootpTry;
62
#ifdef CONFIG_BOOTP_RANDOM_DELAY
63
unsigned long           seed1, seed2;           /* seed for random BOOTP delay          */
64
#endif
65
 
66
 
67
/* Send a BOOTP request */
68
extern void     BootpRequest (void);
69
 
70
/****************** DHCP Support *********************/
71
extern void DhcpRequest(void);
72
 
73
/* DHCP States */
74
typedef enum { INIT,
75
               INIT_REBOOT,
76
               REBOOTING,
77
               SELECTING,
78
               REQUESTING,
79
               REBINDING,
80
               BOUND,
81
               RENEWING } dhcp_state_t;
82
 
83
#define DHCP_DISCOVER 1
84
#define DHCP_OFFER    2
85
#define DHCP_REQUEST  3
86
#define DHCP_DECLINE  4
87
#define DHCP_ACK      5
88
#define DHCP_NAK      6
89
#define DHCP_RELEASE  7
90
 
91
#define SELECT_TIMEOUT 3        /* Seconds to wait for offers */
92
 
93
/**********************************************************************/
94
 
95
#endif /* __BOOTP_H__ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.