OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [bootloaders/] [orpmon/] [services/] [bootp.h] - Diff between revs 175 and 406

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 175 Rev 406
/*
/*
 *      Copied from LiMon - BOOTP.
 *      Copied from LiMon - BOOTP.
 *
 *
 *      Copyright 1994, 1995, 2000 Neil Russell.
 *      Copyright 1994, 1995, 2000 Neil Russell.
 *      (See License)
 *      (See License)
 *      Copyright 2000 Paolo Scaffardi
 *      Copyright 2000 Paolo Scaffardi
 */
 */
 
 
#ifndef __BOOTP_H__
#ifndef __BOOTP_H__
#define __BOOTP_H__
#define __BOOTP_H__
 
 
#ifndef __NET_H__
#ifndef __NET_H__
#include        "net.h"
#include        "net.h"
#endif /* __NET_H__ */
#endif /* __NET_H__ */
 
 
/**********************************************************************/
/**********************************************************************/
 
 
/*
/*
 *      BOOTP header.
 *      BOOTP header.
 */
 */
#if (CONFIG_COMMANDS & CFG_CMD_DHCP)
#if (CONFIG_COMMANDS & CFG_CMD_DHCP)
#define OPT_SIZE 312    /* Minimum DHCP Options size per RFC2131 - results in 576 byte pkt */
#define OPT_SIZE 312            /* Minimum DHCP Options size per RFC2131 - results in 576 byte pkt */
#else
#else
#define OPT_SIZE 64
#define OPT_SIZE 64
#endif
#endif
 
 
typedef struct
typedef struct {
{
 
        unsigned char           bp_op;          /* Operation                            */
        unsigned char           bp_op;          /* Operation                            */
# define OP_BOOTREQUEST 1
# define OP_BOOTREQUEST 1
# define OP_BOOTREPLY   2
# define OP_BOOTREPLY   2
        unsigned char           bp_htype;       /* Hardware type                        */
        unsigned char bp_htype; /* Hardware type                        */
# define HWT_ETHER      1
# define HWT_ETHER      1
        unsigned char           bp_hlen;        /* Hardware address length              */
        unsigned char bp_hlen;  /* Hardware address length              */
# define HWL_ETHER      6
# define HWL_ETHER      6
        unsigned char           bp_hops;        /* Hop count (gateway thing)            */
        unsigned char bp_hops;  /* Hop count (gateway thing)            */
        unsigned long           bp_id;          /* Transaction ID                       */
        unsigned long bp_id;    /* Transaction ID                       */
        unsigned short          bp_secs;        /* Seconds since boot                   */
        unsigned short bp_secs; /* Seconds since boot                   */
        unsigned short          bp_spare1;      /* Alignment                            */
        unsigned short bp_spare1;       /* Alignment                            */
        IPaddr_t        bp_ciaddr;      /* Client IP address                    */
        IPaddr_t bp_ciaddr;     /* Client IP address                    */
        IPaddr_t        bp_yiaddr;      /* Your (client) IP address             */
        IPaddr_t bp_yiaddr;     /* Your (client) IP address             */
        IPaddr_t        bp_siaddr;      /* Server IP address                    */
        IPaddr_t bp_siaddr;     /* Server IP address                    */
        IPaddr_t        bp_giaddr;      /* Gateway IP address                   */
        IPaddr_t bp_giaddr;     /* Gateway IP address                   */
        unsigned char           bp_chaddr[16];  /* Client hardware address              */
        unsigned char bp_chaddr[16];    /* Client hardware address              */
        char            bp_sname[64];   /* Server host name                     */
        char bp_sname[64];      /* Server host name                     */
        char            bp_file[128];   /* Boot file name                       */
        char bp_file[128];      /* Boot file name                       */
        char            bp_vend[OPT_SIZE];      /* Vendor information                   */
        char bp_vend[OPT_SIZE]; /* Vendor information                   */
}       Bootp_t;
} Bootp_t;
 
 
#define BOOTP_HDR_SIZE  sizeof (Bootp_t)
#define BOOTP_HDR_SIZE  sizeof (Bootp_t)
#define BOOTP_SIZE      (ETHER_HDR_SIZE + IP_HDR_SIZE + BOOTP_HDR_SIZE)
#define BOOTP_SIZE      (ETHER_HDR_SIZE + IP_HDR_SIZE + BOOTP_HDR_SIZE)
 
 
/**********************************************************************/
/**********************************************************************/
/*
/*
 *      Global functions and variables.
 *      Global functions and variables.
 */
 */
 
 
/* bootp.c */
/* bootp.c */
extern unsigned long    BootpID;                /* ID of cur BOOTP request              */
extern unsigned long BootpID;   /* ID of cur BOOTP request              */
extern char     BootFile[128];          /* Boot file name                       */
extern char BootFile[128];      /* Boot file name                       */
extern int      BootpTry;
extern int BootpTry;
#ifdef CONFIG_BOOTP_RANDOM_DELAY
#ifdef CONFIG_BOOTP_RANDOM_DELAY
unsigned long           seed1, seed2;           /* seed for random BOOTP delay          */
unsigned long seed1, seed2;     /* seed for random BOOTP delay          */
#endif
#endif
 
 
 
 
/* Send a BOOTP request */
/* Send a BOOTP request */
extern void     BootpRequest (void);
extern void BootpRequest(void);
 
 
/****************** DHCP Support *********************/
/****************** DHCP Support *********************/
extern void DhcpRequest(void);
extern void DhcpRequest(void);
 
 
/* DHCP States */
/* DHCP States */
typedef enum { INIT,
typedef enum { INIT,
               INIT_REBOOT,
        INIT_REBOOT,
               REBOOTING,
        REBOOTING,
               SELECTING,
        SELECTING,
               REQUESTING,
        REQUESTING,
               REBINDING,
        REBINDING,
               BOUND,
               BOUND,
               RENEWING } dhcp_state_t;
        RENEWING
 
} dhcp_state_t;
 
 
#define DHCP_DISCOVER 1
#define DHCP_DISCOVER 1
#define DHCP_OFFER    2
#define DHCP_OFFER    2
#define DHCP_REQUEST  3
#define DHCP_REQUEST  3
#define DHCP_DECLINE  4
#define DHCP_DECLINE  4
#define DHCP_ACK      5
#define DHCP_ACK      5
#define DHCP_NAK      6
#define DHCP_NAK      6
#define DHCP_RELEASE  7
#define DHCP_RELEASE  7
 
 
#define SELECT_TIMEOUT 3        /* Seconds to wait for offers */
#define SELECT_TIMEOUT 3        /* Seconds to wait for offers */
 
 
/**********************************************************************/
/**********************************************************************/
 
 
#endif /* __BOOTP_H__ */
#endif /* __BOOTP_H__ */
 
 

powered by: WebSVN 2.1.0

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