Annotation of embedaddon/dnsmasq/src/dhcp-protocol.h, revision 1.1
1.1 ! misho 1: /* dnsmasq is Copyright (c) 2000-2013 Simon Kelley
! 2:
! 3: This program is free software; you can redistribute it and/or modify
! 4: it under the terms of the GNU General Public License as published by
! 5: the Free Software Foundation; version 2 dated June, 1991, or
! 6: (at your option) version 3 dated 29 June, 2007.
! 7:
! 8: This program is distributed in the hope that it will be useful,
! 9: but WITHOUT ANY WARRANTY; without even the implied warranty of
! 10: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! 11: GNU General Public License for more details.
! 12:
! 13: You should have received a copy of the GNU General Public License
! 14: along with this program. If not, see <http://www.gnu.org/licenses/>.
! 15: */
! 16: #define DHCP_SERVER_PORT 67
! 17: #define DHCP_CLIENT_PORT 68
! 18: #define DHCP_SERVER_ALTPORT 1067
! 19: #define DHCP_CLIENT_ALTPORT 1068
! 20: #define PXE_PORT 4011
! 21:
! 22: #define BOOTREQUEST 1
! 23: #define BOOTREPLY 2
! 24: #define DHCP_COOKIE 0x63825363
! 25:
! 26: /* The Linux in-kernel DHCP client silently ignores any packet
! 27: smaller than this. Sigh........... */
! 28: #define MIN_PACKETSZ 300
! 29:
! 30: #define OPTION_PAD 0
! 31: #define OPTION_NETMASK 1
! 32: #define OPTION_ROUTER 3
! 33: #define OPTION_DNSSERVER 6
! 34: #define OPTION_HOSTNAME 12
! 35: #define OPTION_DOMAINNAME 15
! 36: #define OPTION_BROADCAST 28
! 37: #define OPTION_VENDOR_CLASS_OPT 43
! 38: #define OPTION_REQUESTED_IP 50
! 39: #define OPTION_LEASE_TIME 51
! 40: #define OPTION_OVERLOAD 52
! 41: #define OPTION_MESSAGE_TYPE 53
! 42: #define OPTION_SERVER_IDENTIFIER 54
! 43: #define OPTION_REQUESTED_OPTIONS 55
! 44: #define OPTION_MESSAGE 56
! 45: #define OPTION_MAXMESSAGE 57
! 46: #define OPTION_T1 58
! 47: #define OPTION_T2 59
! 48: #define OPTION_VENDOR_ID 60
! 49: #define OPTION_CLIENT_ID 61
! 50: #define OPTION_SNAME 66
! 51: #define OPTION_FILENAME 67
! 52: #define OPTION_USER_CLASS 77
! 53: #define OPTION_CLIENT_FQDN 81
! 54: #define OPTION_AGENT_ID 82
! 55: #define OPTION_ARCH 93
! 56: #define OPTION_PXE_UUID 97
! 57: #define OPTION_SUBNET_SELECT 118
! 58: #define OPTION_DOMAIN_SEARCH 119
! 59: #define OPTION_SIP_SERVER 120
! 60: #define OPTION_VENDOR_IDENT 124
! 61: #define OPTION_VENDOR_IDENT_OPT 125
! 62: #define OPTION_END 255
! 63:
! 64: #define SUBOPT_CIRCUIT_ID 1
! 65: #define SUBOPT_REMOTE_ID 2
! 66: #define SUBOPT_SUBNET_SELECT 5 /* RFC 3527 */
! 67: #define SUBOPT_SUBSCR_ID 6 /* RFC 3393 */
! 68: #define SUBOPT_SERVER_OR 11 /* RFC 5107 */
! 69:
! 70: #define SUBOPT_PXE_BOOT_ITEM 71 /* PXE standard */
! 71: #define SUBOPT_PXE_DISCOVERY 6
! 72: #define SUBOPT_PXE_SERVERS 8
! 73: #define SUBOPT_PXE_MENU 9
! 74: #define SUBOPT_PXE_MENU_PROMPT 10
! 75:
! 76: #define DHCPDISCOVER 1
! 77: #define DHCPOFFER 2
! 78: #define DHCPREQUEST 3
! 79: #define DHCPDECLINE 4
! 80: #define DHCPACK 5
! 81: #define DHCPNAK 6
! 82: #define DHCPRELEASE 7
! 83: #define DHCPINFORM 8
! 84:
! 85: #define BRDBAND_FORUM_IANA 3561 /* Broadband forum IANA enterprise */
! 86:
! 87: #define DHCP_CHADDR_MAX 16
! 88:
! 89: struct dhcp_packet {
! 90: u8 op, htype, hlen, hops;
! 91: u32 xid;
! 92: u16 secs, flags;
! 93: struct in_addr ciaddr, yiaddr, siaddr, giaddr;
! 94: u8 chaddr[DHCP_CHADDR_MAX], sname[64], file[128];
! 95: u8 options[312];
! 96: };
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>