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>