File:  [Qemu by Fabrice Bellard] / qemu / slirp / bootp.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:25:35 2018 UTC (3 years, 1 month ago) by root
Branches: qemu, MAIN
CVS tags: qemu1101, qemu1001, qemu1000, qemu0151, qemu0150, qemu0141, qemu0140, qemu0130, qemu0125, qemu0124, qemu0123, qemu0122, qemu0121, qemu0120, qemu0111, qemu0110, HEAD
qemu 0.11.0

    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);

unix.superglobalmegacorp.com