Annotation of embedaddon/dnsmasq/src/dhcp-protocol.h, revision 1.1.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>