127 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C
		
	
	
	
| /* bootp/dhcp defines */
 | |
| #ifndef SLIRP_BOOTP_H
 | |
| #define SLIRP_BOOTP_H 1
 | |
| 
 | |
| #define BOOTP_SERVER	67
 | |
| #define BOOTP_CLIENT	68
 | |
| 
 | |
| #define BOOTP_REQUEST	1
 | |
| #define BOOTP_REPLY	2
 | |
| 
 | |
| #define RFC1533_COOKIE		99, 130, 83, 99
 | |
| #define RFC1533_PAD		0
 | |
| #define RFC1533_NETMASK		1
 | |
| #define RFC1533_TIMEOFFSET	2
 | |
| #define RFC1533_GATEWAY		3
 | |
| #define RFC1533_TIMESERVER	4
 | |
| #define RFC1533_IEN116NS	5
 | |
| #define RFC1533_DNS		6
 | |
| #define RFC1533_LOGSERVER	7
 | |
| #define RFC1533_COOKIESERVER	8
 | |
| #define RFC1533_LPRSERVER	9
 | |
| #define RFC1533_IMPRESSSERVER	10
 | |
| #define RFC1533_RESOURCESERVER	11
 | |
| #define RFC1533_HOSTNAME	12
 | |
| #define RFC1533_BOOTFILESIZE	13
 | |
| #define RFC1533_MERITDUMPFILE	14
 | |
| #define RFC1533_DOMAINNAME	15
 | |
| #define RFC1533_SWAPSERVER	16
 | |
| #define RFC1533_ROOTPATH	17
 | |
| #define RFC1533_EXTENSIONPATH	18
 | |
| #define RFC1533_IPFORWARDING	19
 | |
| #define RFC1533_IPSOURCEROUTING	20
 | |
| #define RFC1533_IPPOLICYFILTER	21
 | |
| #define RFC1533_IPMAXREASSEMBLY	22
 | |
| #define RFC1533_IPTTL		23
 | |
| #define RFC1533_IPMTU		24
 | |
| #define RFC1533_IPMTUPLATEAU	25
 | |
| #define RFC1533_INTMTU		26
 | |
| #define RFC1533_INTLOCALSUBNETS	27
 | |
| #define RFC1533_INTBROADCAST	28
 | |
| #define RFC1533_INTICMPDISCOVER	29
 | |
| #define RFC1533_INTICMPRESPOND	30
 | |
| #define RFC1533_INTROUTEDISCOVER 31
 | |
| #define RFC1533_INTROUTESOLICIT	32
 | |
| #define RFC1533_INTSTATICROUTES	33
 | |
| #define RFC1533_LLTRAILERENCAP	34
 | |
| #define RFC1533_LLARPCACHETMO	35
 | |
| #define RFC1533_LLETHERNETENCAP	36
 | |
| #define RFC1533_TCPTTL		37
 | |
| #define RFC1533_TCPKEEPALIVETMO	38
 | |
| #define RFC1533_TCPKEEPALIVEGB	39
 | |
| #define RFC1533_NISDOMAIN	40
 | |
| #define RFC1533_NISSERVER	41
 | |
| #define RFC1533_NTPSERVER	42
 | |
| #define RFC1533_VENDOR		43
 | |
| #define RFC1533_NBNS		44
 | |
| #define RFC1533_NBDD		45
 | |
| #define RFC1533_NBNT		46
 | |
| #define RFC1533_NBSCOPE		47
 | |
| #define RFC1533_XFS		48
 | |
| #define RFC1533_XDM		49
 | |
| 
 | |
| #define RFC2132_REQ_ADDR	50
 | |
| #define RFC2132_LEASE_TIME      51
 | |
| #define RFC2132_MSG_TYPE	53
 | |
| #define RFC2132_SRV_ID		54
 | |
| #define RFC2132_PARAM_LIST	55
 | |
| #define RFC2132_MESSAGE		56
 | |
| #define RFC2132_MAX_SIZE	57
 | |
| #define RFC2132_RENEWAL_TIME    58
 | |
| #define RFC2132_REBIND_TIME     59
 | |
| 
 | |
| #define DHCPDISCOVER		1
 | |
| #define DHCPOFFER		2
 | |
| #define DHCPREQUEST		3
 | |
| #define DHCPACK			5
 | |
| #define DHCPNAK			6
 | |
| 
 | |
| #define RFC1533_VENDOR_MAJOR	0
 | |
| #define RFC1533_VENDOR_MINOR	0
 | |
| 
 | |
| #define RFC1533_VENDOR_MAGIC	128
 | |
| #define RFC1533_VENDOR_ADDPARM	129
 | |
| #define	RFC1533_VENDOR_ETHDEV	130
 | |
| #define RFC1533_VENDOR_HOWTO    132
 | |
| #define RFC1533_VENDOR_MNUOPTS	160
 | |
| #define RFC1533_VENDOR_SELECTION 176
 | |
| #define RFC1533_VENDOR_MOTD	184
 | |
| #define RFC1533_VENDOR_NUMOFMOTD 8
 | |
| #define RFC1533_VENDOR_IMG	192
 | |
| #define RFC1533_VENDOR_NUMOFIMG	16
 | |
| 
 | |
| #define RFC1533_END		255
 | |
| #define BOOTP_VENDOR_LEN	64
 | |
| #define DHCP_OPT_LEN		312
 | |
| 
 | |
| struct bootp_t {
 | |
|     struct ip ip;
 | |
|     struct udphdr udp;
 | |
|     uint8_t bp_op;
 | |
|     uint8_t bp_htype;
 | |
|     uint8_t bp_hlen;
 | |
|     uint8_t bp_hops;
 | |
|     uint32_t bp_xid;
 | |
|     uint16_t bp_secs;
 | |
|     uint16_t unused;
 | |
|     struct in_addr bp_ciaddr;
 | |
|     struct in_addr bp_yiaddr;
 | |
|     struct in_addr bp_siaddr;
 | |
|     struct in_addr bp_giaddr;
 | |
|     uint8_t bp_hwaddr[16];
 | |
|     uint8_t bp_sname[64];
 | |
|     uint8_t bp_file[128];
 | |
|     uint8_t bp_vend[DHCP_OPT_LEN];
 | |
| };
 | |
| 
 | |
| typedef struct {
 | |
|     uint16_t allocated;
 | |
|     uint8_t macaddr[6];
 | |
| } BOOTPClient;
 | |
| 
 | |
| #define NB_BOOTP_CLIENTS 16
 | |
| 
 | |
| void bootp_input(struct mbuf *m);
 | |
| 
 | |
| #endif
 |