ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/slirp/bootp.h
Revision: 1.3
Committed: 2006-01-17T21:19:12Z (18 years, 10 months ago) by gbeauche
Content type: text/plain
Branch: MAIN
CVS Tags: nigel-build-19, HEAD
Changes since 1.2: +9 -1 lines
Log Message:
Packet headers can be examined through unaligned addresses. This patch
fixes this, especially for MIPS & SPARC platforms. [Initial patch from
Brian J. Johnson]

File Contents

# User Rev Content
1 gbeauche 1.1 /* bootp/dhcp defines */
2    
3     #define BOOTP_SERVER 67
4     #define BOOTP_CLIENT 68
5    
6     #define BOOTP_REQUEST 1
7     #define BOOTP_REPLY 2
8    
9     #define RFC1533_COOKIE 99, 130, 83, 99
10     #define RFC1533_PAD 0
11     #define RFC1533_NETMASK 1
12     #define RFC1533_TIMEOFFSET 2
13     #define RFC1533_GATEWAY 3
14     #define RFC1533_TIMESERVER 4
15     #define RFC1533_IEN116NS 5
16     #define RFC1533_DNS 6
17     #define RFC1533_LOGSERVER 7
18     #define RFC1533_COOKIESERVER 8
19     #define RFC1533_LPRSERVER 9
20     #define RFC1533_IMPRESSSERVER 10
21     #define RFC1533_RESOURCESERVER 11
22     #define RFC1533_HOSTNAME 12
23     #define RFC1533_BOOTFILESIZE 13
24     #define RFC1533_MERITDUMPFILE 14
25     #define RFC1533_DOMAINNAME 15
26     #define RFC1533_SWAPSERVER 16
27     #define RFC1533_ROOTPATH 17
28     #define RFC1533_EXTENSIONPATH 18
29     #define RFC1533_IPFORWARDING 19
30     #define RFC1533_IPSOURCEROUTING 20
31     #define RFC1533_IPPOLICYFILTER 21
32     #define RFC1533_IPMAXREASSEMBLY 22
33     #define RFC1533_IPTTL 23
34     #define RFC1533_IPMTU 24
35     #define RFC1533_IPMTUPLATEAU 25
36     #define RFC1533_INTMTU 26
37     #define RFC1533_INTLOCALSUBNETS 27
38     #define RFC1533_INTBROADCAST 28
39     #define RFC1533_INTICMPDISCOVER 29
40     #define RFC1533_INTICMPRESPOND 30
41     #define RFC1533_INTROUTEDISCOVER 31
42     #define RFC1533_INTROUTESOLICIT 32
43     #define RFC1533_INTSTATICROUTES 33
44     #define RFC1533_LLTRAILERENCAP 34
45     #define RFC1533_LLARPCACHETMO 35
46     #define RFC1533_LLETHERNETENCAP 36
47     #define RFC1533_TCPTTL 37
48     #define RFC1533_TCPKEEPALIVETMO 38
49     #define RFC1533_TCPKEEPALIVEGB 39
50     #define RFC1533_NISDOMAIN 40
51     #define RFC1533_NISSERVER 41
52     #define RFC1533_NTPSERVER 42
53     #define RFC1533_VENDOR 43
54     #define RFC1533_NBNS 44
55     #define RFC1533_NBDD 45
56     #define RFC1533_NBNT 46
57     #define RFC1533_NBSCOPE 47
58     #define RFC1533_XFS 48
59     #define RFC1533_XDM 49
60    
61     #define RFC2132_REQ_ADDR 50
62     #define RFC2132_LEASE_TIME 51
63     #define RFC2132_MSG_TYPE 53
64     #define RFC2132_SRV_ID 54
65     #define RFC2132_PARAM_LIST 55
66     #define RFC2132_MAX_SIZE 57
67     #define RFC2132_RENEWAL_TIME 58
68     #define RFC2132_REBIND_TIME 59
69    
70     #define DHCPDISCOVER 1
71     #define DHCPOFFER 2
72     #define DHCPREQUEST 3
73     #define DHCPACK 5
74    
75     #define RFC1533_VENDOR_MAJOR 0
76     #define RFC1533_VENDOR_MINOR 0
77    
78     #define RFC1533_VENDOR_MAGIC 128
79     #define RFC1533_VENDOR_ADDPARM 129
80     #define RFC1533_VENDOR_ETHDEV 130
81     #define RFC1533_VENDOR_HOWTO 132
82     #define RFC1533_VENDOR_MNUOPTS 160
83     #define RFC1533_VENDOR_SELECTION 176
84     #define RFC1533_VENDOR_MOTD 184
85     #define RFC1533_VENDOR_NUMOFMOTD 8
86     #define RFC1533_VENDOR_IMG 192
87     #define RFC1533_VENDOR_NUMOFIMG 16
88    
89     #define RFC1533_END 255
90     #define BOOTP_VENDOR_LEN 64
91     #define DHCP_OPT_LEN 312
92    
93 gbeauche 1.3 #ifdef PRAGMA_PACK_SUPPORTED
94     #pragma pack(1)
95     #endif
96    
97 gbeauche 1.1 struct bootp_t {
98     struct ip ip;
99     struct udphdr udp;
100     uint8_t bp_op;
101     uint8_t bp_htype;
102     uint8_t bp_hlen;
103     uint8_t bp_hops;
104 gbeauche 1.2 uint32_t bp_xid;
105     uint16_t bp_secs;
106     uint16_t unused;
107 gbeauche 1.1 struct in_addr bp_ciaddr;
108     struct in_addr bp_yiaddr;
109     struct in_addr bp_siaddr;
110     struct in_addr bp_giaddr;
111     uint8_t bp_hwaddr[16];
112     uint8_t bp_sname[64];
113     uint8_t bp_file[128];
114     uint8_t bp_vend[DHCP_OPT_LEN];
115 gbeauche 1.3 } PACKED__;
116    
117     #ifdef PRAGMA_PACK_SUPPORTED
118     #pragma pack(0)
119     #endif
120 gbeauche 1.1
121     void bootp_input(struct mbuf *m);