📄 dhcp.h
字号:
/* net/gen/dhcp.h - DHCP packet format Author: Kees J. Bot * 1 Dec 2000 */#ifndef __NET__GEN__DHCP_H__#define __NET__GEN__DHCP_H__typedef struct dhcp { u8_t op; /* Message opcode/type. */ u8_t htype; /* Hardware address type. */ u8_t hlen; /* Hardware address length. */ u8_t hops; /* Hop count when relaying. */ u32_t xid; /* Transaction ID. */ u16_t secs; /* Seconds past since client began. */ u16_t flags; /* Flags. */ ipaddr_t ciaddr; /* Client IP address. */ ipaddr_t yiaddr; /* "Your" IP address. */ ipaddr_t siaddr; /* Boot server IP address. */ ipaddr_t giaddr; /* Relay agent (gateway) IP address. */ u8_t chaddr[16]; /* Client hardware address. */ u8_t sname[64]; /* Server host name. */ u8_t file[128]; /* Boot file. */ u32_t magic; /* Magic number. */ u8_t options[308]; /* Optional parameters. */} dhcp_t;/* DHCP operations and stuff: */#define DHCP_BOOTREQUEST 1 /* Boot request message. */#define DHCP_BOOTREPLY 2 /* Boot reply message. */#define DHCP_HTYPE_ETH 1 /* Ethernet hardware type. */#define DHCP_HLEN_ETH 6 /* Ethernet hardware address length. */#define DHCP_FLAGS_BCAST 0x8000U /* Reply must be broadcast to client. */ /* "Magic" first four option bytes. */#define DHCP_MAGIC HTONL(0x63825363UL)/* DHCP common tags: */#define DHCP_TAG_NETMASK 1 /* Netmask. */#define DHCP_TAG_GATEWAY 3 /* Gateway list. */#define DHCP_TAG_DNS 6 /* DNS Nameserver list. */#define DHCP_TAG_HOSTNAME 12 /* Host name. */#define DHCP_TAG_DOMAIN 15 /* Domain. */#define DHCP_TAG_IPMTU 26 /* Interface MTU. *//* DHCP protocol tags: */#define DHCP_TAG_REQIP 50 /* Request this IP. */#define DHCP_TAG_LEASE 51 /* Lease time requested/offered. */#define DHCP_TAG_OVERLOAD 52 /* Options continued in file/sname. */#define DHCP_TAG_TYPE 53 /* DHCP message (values below). */#define DHCP_TAG_SERVERID 54 /* Server identifier. */#define DHCP_TAG_REQPAR 55 /* Parameters requested. */#define DHCP_TAG_MESSAGE 56 /* Error message. */#define DHCP_TAG_MAXDHCP 57 /* Max DHCP packet size. */#define DHCP_TAG_RENEWAL 58 /* Time to go into renewal state. */#define DHCP_TAG_REBINDING 59 /* Time to go into rebinding state. */#define DHCP_TAG_CLASSID 60 /* Class identifier. */#define DHCP_TAG_CLIENTID 61 /* Client identifier. *//* DHCP messages: */#define DHCP_DISCOVER 1 /* Locate available servers. */#define DHCP_OFFER 2 /* Parameters offered to client. */#define DHCP_REQUEST 3 /* (Re)request offered parameters. */#define DHCP_DECLINE 4 /* Client declines offer. */#define DHCP_ACK 5 /* Server acknowlegdes request. */#define DHCP_NAK 6 /* Server denies request. */#define DHCP_RELEASE 7 /* Client relinguishes address. */#define DHCP_INFORM 8 /* Client requests just local config. */void dhcp_init(dhcp_t *_dp);int dhcp_settag(dhcp_t *_dp, int _tag, void *_data, size_t _len);int dhcp_gettag(dhcp_t *_dp, int _searchtag, u8_t **_pdata, size_t *_plen);#endif /* __NET__GEN__DHCP_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -