Statistics
| Branch: | Revision:

root / slirp / bootp.h @ 460fec67

History | View | Annotate | Download (3.1 kB)

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_MESSAGE                56
67
#define RFC2132_MAX_SIZE        57
68
#define RFC2132_RENEWAL_TIME    58
69
#define RFC2132_REBIND_TIME     59
70

    
71
#define DHCPDISCOVER                1
72
#define DHCPOFFER                2
73
#define DHCPREQUEST                3
74
#define DHCPACK                        5
75
#define DHCPNAK                        6
76

    
77
#define RFC1533_VENDOR_MAJOR        0
78
#define RFC1533_VENDOR_MINOR        0
79

    
80
#define RFC1533_VENDOR_MAGIC        128
81
#define RFC1533_VENDOR_ADDPARM        129
82
#define        RFC1533_VENDOR_ETHDEV        130
83
#define RFC1533_VENDOR_HOWTO    132
84
#define RFC1533_VENDOR_MNUOPTS        160
85
#define RFC1533_VENDOR_SELECTION 176
86
#define RFC1533_VENDOR_MOTD        184
87
#define RFC1533_VENDOR_NUMOFMOTD 8
88
#define RFC1533_VENDOR_IMG        192
89
#define RFC1533_VENDOR_NUMOFIMG        16
90

    
91
#define RFC1533_END                255
92
#define BOOTP_VENDOR_LEN        64
93
#define DHCP_OPT_LEN                312
94

    
95
struct bootp_t {
96
    struct ip ip;
97
    struct udphdr udp;
98
    uint8_t bp_op;
99
    uint8_t bp_htype;
100
    uint8_t bp_hlen;
101
    uint8_t bp_hops;
102
    uint32_t bp_xid;
103
    uint16_t bp_secs;
104
    uint16_t unused;
105
    struct in_addr bp_ciaddr;
106
    struct in_addr bp_yiaddr;
107
    struct in_addr bp_siaddr;
108
    struct in_addr bp_giaddr;
109
    uint8_t bp_hwaddr[16];
110
    uint8_t bp_sname[64];
111
    uint8_t bp_file[128];
112
    uint8_t bp_vend[DHCP_OPT_LEN];
113
};
114

    
115
typedef struct {
116
    uint16_t allocated;
117
    uint8_t macaddr[6];
118
} BOOTPClient;
119

    
120
#define NB_BOOTP_CLIENTS 16
121

    
122
void bootp_input(struct mbuf *m);