File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / dnsmasq / src / dhcp-protocol.h
Revision 1.1.1.3 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Nov 2 09:57:01 2016 UTC (7 years, 8 months ago) by misho
Branches: elwix, dnsmasq, MAIN
CVS tags: v2_76p1, HEAD
dnsmasq 2.76

    1: /* dnsmasq is Copyright (c) 2000-2016 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>