bootp.h revision 1.1 1 1.1 brezak /* @(#) $Header: /tank/opengrok/rsync2/NetBSD/src/sys/lib/libsa/bootp.h,v 1.1 1994/05/08 16:11:18 brezak Exp $ (LBL) */
2 1.1 brezak /*
3 1.1 brezak * Bootstrap Protocol (BOOTP). RFC951 and RFC1048.
4 1.1 brezak *
5 1.1 brezak * This file specifies the "implementation-independent" BOOTP protocol
6 1.1 brezak * information which is common to both client and server.
7 1.1 brezak *
8 1.1 brezak * Copyright 1988 by Carnegie Mellon.
9 1.1 brezak *
10 1.1 brezak * Permission to use, copy, modify, and distribute this program for any
11 1.1 brezak * purpose and without fee is hereby granted, provided that this copyright
12 1.1 brezak * and permission notice appear on all copies and supporting documentation,
13 1.1 brezak * the name of Carnegie Mellon not be used in advertising or publicity
14 1.1 brezak * pertaining to distribution of the program without specific prior
15 1.1 brezak * permission, and notice be given in supporting documentation that copying
16 1.1 brezak * and distribution is by permission of Carnegie Mellon and Stanford
17 1.1 brezak * University. Carnegie Mellon makes no representations about the
18 1.1 brezak * suitability of this software for any purpose. It is provided "as is"
19 1.1 brezak * without express or implied warranty.
20 1.1 brezak */
21 1.1 brezak
22 1.1 brezak
23 1.1 brezak struct bootp {
24 1.1 brezak unsigned char bp_op; /* packet opcode type */
25 1.1 brezak unsigned char bp_htype; /* hardware addr type */
26 1.1 brezak unsigned char bp_hlen; /* hardware addr length */
27 1.1 brezak unsigned char bp_hops; /* gateway hops */
28 1.1 brezak unsigned long bp_xid; /* transaction ID */
29 1.1 brezak unsigned short bp_secs; /* seconds since boot began */
30 1.1 brezak unsigned short bp_unused;
31 1.1 brezak struct in_addr bp_ciaddr; /* client IP address */
32 1.1 brezak struct in_addr bp_yiaddr; /* 'your' IP address */
33 1.1 brezak struct in_addr bp_siaddr; /* server IP address */
34 1.1 brezak struct in_addr bp_giaddr; /* gateway IP address */
35 1.1 brezak unsigned char bp_chaddr[16]; /* client hardware address */
36 1.1 brezak unsigned char bp_sname[64]; /* server host name */
37 1.1 brezak unsigned char bp_file[128]; /* boot file name */
38 1.1 brezak unsigned char bp_vend[64]; /* vendor-specific area */
39 1.1 brezak };
40 1.1 brezak
41 1.1 brezak /*
42 1.1 brezak * UDP port numbers, server and client.
43 1.1 brezak */
44 1.1 brezak #define IPPORT_BOOTPS 67
45 1.1 brezak #define IPPORT_BOOTPC 68
46 1.1 brezak
47 1.1 brezak #define BOOTREPLY 2
48 1.1 brezak #define BOOTREQUEST 1
49 1.1 brezak
50 1.1 brezak
51 1.1 brezak /*
52 1.1 brezak * Vendor magic cookie (v_magic) for CMU
53 1.1 brezak */
54 1.1 brezak #define VM_CMU "CMU"
55 1.1 brezak
56 1.1 brezak /*
57 1.1 brezak * Vendor magic cookie (v_magic) for RFC1048
58 1.1 brezak */
59 1.1 brezak #define VM_RFC1048 { 99, 130, 83, 99 }
60 1.1 brezak
61 1.1 brezak
62 1.1 brezak
64 1.1 brezak /*
65 1.1 brezak * RFC1048 tag values used to specify what information is being supplied in
66 1.1 brezak * the vendor field of the packet.
67 1.1 brezak */
68 1.1 brezak
69 1.1 brezak #define TAG_PAD ((unsigned char) 0)
70 1.1 brezak #define TAG_SUBNET_MASK ((unsigned char) 1)
71 1.1 brezak #define TAG_TIME_OFFSET ((unsigned char) 2)
72 1.1 brezak #define TAG_GATEWAY ((unsigned char) 3)
73 1.1 brezak #define TAG_TIME_SERVER ((unsigned char) 4)
74 1.1 brezak #define TAG_NAME_SERVER ((unsigned char) 5)
75 1.1 brezak #define TAG_DOMAIN_SERVER ((unsigned char) 6)
76 1.1 brezak #define TAG_LOG_SERVER ((unsigned char) 7)
77 1.1 brezak #define TAG_COOKIE_SERVER ((unsigned char) 8)
78 1.1 brezak #define TAG_LPR_SERVER ((unsigned char) 9)
79 1.1 brezak #define TAG_IMPRESS_SERVER ((unsigned char) 10)
80 1.1 brezak #define TAG_RLP_SERVER ((unsigned char) 11)
81 1.1 brezak #define TAG_HOSTNAME ((unsigned char) 12)
82 1.1 brezak #define TAG_BOOTSIZE ((unsigned char) 13)
83 1.1 brezak #define TAG_DUMPFILE ((unsigned char) 14)
84 1.1 brezak #define TAG_DOMAINNAME ((unsigned char) 15)
85 1.1 brezak #define TAG_SWAPSERVER ((unsigned char) 16)
86 1.1 brezak #define TAG_ROOTPATH ((unsigned char) 17)
87 1.1 brezak #define TAG_END ((unsigned char) 255)
88 1.1 brezak
89 1.1 brezak
90 1.1 brezak
91 1.1 brezak /*
92 1.1 brezak * "vendor" data permitted for CMU bootp clients.
93 1.1 brezak */
94 1.1 brezak
95 1.1 brezak struct cmu_vend {
96 1.1 brezak unsigned char v_magic[4]; /* magic number */
97 1.1 brezak unsigned long v_flags; /* flags/opcodes, etc. */
98 1.1 brezak struct in_addr v_smask; /* Subnet mask */
99 1.1 brezak struct in_addr v_dgate; /* Default gateway */
100 1.1 brezak struct in_addr v_dns1, v_dns2; /* Domain name servers */
101 1.1 brezak struct in_addr v_ins1, v_ins2; /* IEN-116 name servers */
102 1.1 brezak struct in_addr v_ts1, v_ts2; /* Time servers */
103 1.1 brezak unsigned char v_unused[25]; /* currently unused */
104 1.1 brezak };
105 1.1 brezak
106 1.1 brezak
107 1.1 brezak /* v_flags values */
108 #define VF_SMASK 1 /* Subnet mask field contains valid data */
109