Annotation of embedaddon/dnsmasq/src/dhcp-protocol.h, revision 1.1.1.5

1.1.1.5 ! misho       1: /* dnsmasq is Copyright (c) 2000-2022 Simon Kelley
1.1       misho       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: 
1.1.1.4   misho      22: /* These each hold a DHCP option max size 255
                     23:    and get a terminating zero added */
                     24: #define DHCP_BUFF_SZ 256
                     25: 
1.1       misho      26: #define BOOTREQUEST              1
                     27: #define BOOTREPLY                2
                     28: #define DHCP_COOKIE              0x63825363
                     29: 
                     30: /* The Linux in-kernel DHCP client silently ignores any packet 
                     31:    smaller than this. Sigh...........   */
                     32: #define MIN_PACKETSZ             300
                     33: 
                     34: #define OPTION_PAD               0
                     35: #define OPTION_NETMASK           1
                     36: #define OPTION_ROUTER            3
                     37: #define OPTION_DNSSERVER         6
                     38: #define OPTION_HOSTNAME          12
                     39: #define OPTION_DOMAINNAME        15
                     40: #define OPTION_BROADCAST         28
                     41: #define OPTION_VENDOR_CLASS_OPT  43
                     42: #define OPTION_REQUESTED_IP      50 
                     43: #define OPTION_LEASE_TIME        51
                     44: #define OPTION_OVERLOAD          52
                     45: #define OPTION_MESSAGE_TYPE      53
                     46: #define OPTION_SERVER_IDENTIFIER 54
                     47: #define OPTION_REQUESTED_OPTIONS 55
                     48: #define OPTION_MESSAGE           56
                     49: #define OPTION_MAXMESSAGE        57
                     50: #define OPTION_T1                58
                     51: #define OPTION_T2                59
                     52: #define OPTION_VENDOR_ID         60
                     53: #define OPTION_CLIENT_ID         61
                     54: #define OPTION_SNAME             66
                     55: #define OPTION_FILENAME          67
                     56: #define OPTION_USER_CLASS        77
1.1.1.4   misho      57: #define OPTION_RAPID_COMMIT      80
1.1       misho      58: #define OPTION_CLIENT_FQDN       81
                     59: #define OPTION_AGENT_ID          82
                     60: #define OPTION_ARCH              93
                     61: #define OPTION_PXE_UUID          97
                     62: #define OPTION_SUBNET_SELECT     118
                     63: #define OPTION_DOMAIN_SEARCH     119
                     64: #define OPTION_SIP_SERVER        120
                     65: #define OPTION_VENDOR_IDENT      124
                     66: #define OPTION_VENDOR_IDENT_OPT  125
1.1.1.5 ! misho      67: #define OPTION_MUD_URL_V4        161
1.1       misho      68: #define OPTION_END               255
                     69: 
                     70: #define SUBOPT_CIRCUIT_ID        1
                     71: #define SUBOPT_REMOTE_ID         2
                     72: #define SUBOPT_SUBNET_SELECT     5     /* RFC 3527 */
                     73: #define SUBOPT_SUBSCR_ID         6     /* RFC 3393 */
                     74: #define SUBOPT_SERVER_OR         11    /* RFC 5107 */
                     75: 
                     76: #define SUBOPT_PXE_BOOT_ITEM     71    /* PXE standard */
                     77: #define SUBOPT_PXE_DISCOVERY     6
                     78: #define SUBOPT_PXE_SERVERS       8
                     79: #define SUBOPT_PXE_MENU          9
                     80: #define SUBOPT_PXE_MENU_PROMPT   10
                     81: 
                     82: #define DHCPDISCOVER             1
                     83: #define DHCPOFFER                2
                     84: #define DHCPREQUEST              3
                     85: #define DHCPDECLINE              4
                     86: #define DHCPACK                  5
                     87: #define DHCPNAK                  6
                     88: #define DHCPRELEASE              7
                     89: #define DHCPINFORM               8
                     90: 
                     91: #define BRDBAND_FORUM_IANA       3561 /* Broadband forum IANA enterprise */
                     92: 
                     93: #define DHCP_CHADDR_MAX 16
                     94: 
                     95: struct dhcp_packet {
                     96:   u8 op, htype, hlen, hops;
                     97:   u32 xid;
                     98:   u16 secs, flags;
                     99:   struct in_addr ciaddr, yiaddr, siaddr, giaddr;
                    100:   u8 chaddr[DHCP_CHADDR_MAX], sname[64], file[128];
                    101:   u8 options[312];
                    102: };

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>