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