Statistics
| Branch: | Revision:

root / slirp / bootp.h @ 795ca114

History | View | Annotate | Download (3.1 kB)

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