/* * Copyright 2017, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #pragma once // Ports #define PORT_BOOTP_SERVER 67 #define PORT_BOOTP_CLIENT 68 // Operations #define OP_BOOTREQUEST 1 #define OP_BOOTREPLY 2 // Flags #define FLAGS_BROADCAST 0x8000 // Hardware address types #define HTYPE_ETHER 1 // The first four bytes of options are a cookie to indicate that the payload are // DHCP options as opposed to some other BOOTP extension. #define OPT_COOKIE1 0x63 #define OPT_COOKIE2 0x82 #define OPT_COOKIE3 0x53 #define OPT_COOKIE4 0x63 // BOOTP/DHCP options - see RFC 2132 #define OPT_PAD 0 #define OPT_SUBNET_MASK 1 // 4 <ipaddr> #define OPT_TIME_OFFSET 2 // 4 <seconds> #define OPT_GATEWAY 3 // 4*n <ipaddr> * n #define OPT_DNS 6 // 4*n <ipaddr> * n #define OPT_DOMAIN_NAME 15 // n <domainnamestring> #define OPT_MTU 26 // 2 <mtu> #define OPT_BROADCAST_ADDR 28 // 4 <ipaddr> #define OPT_REQUESTED_IP 50 // 4 <ipaddr> #define OPT_LEASE_TIME 51 // 4 <seconds> #define OPT_MESSAGE_TYPE 53 // 1 <msgtype> #define OPT_SERVER_ID 54 // 4 <ipaddr> #define OPT_PARAMETER_LIST 55 // n <optcode> * n #define OPT_MESSAGE 56 // n <errorstring> #define OPT_T1 58 // 4 <renewal time value> #define OPT_T2 59 // 4 <rebinding time value> #define OPT_CLASS_ID 60 // n <opaque> #define OPT_CLIENT_ID 61 // n <opaque> #define OPT_END 255 // DHCP message types #define DHCPDISCOVER 1 #define DHCPOFFER 2 #define DHCPREQUEST 3 #define DHCPDECLINE 4 #define DHCPACK 5 #define DHCPNAK 6 #define DHCPRELEASE 7 #define DHCPINFORM 8