📄 dhcpmsg.h
字号:
/* * Copyright 2008, 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. */#ifndef _WIFI_DHCP_H_#define _WIFI_DHCP_H_#include <sys/types.h>#define PORT_BOOTP_SERVER 67#define PORT_BOOTP_CLIENT 68/* RFC 2131 p 9 */typedef struct dhcp_msg dhcp_msg;#define OP_BOOTREQUEST 1#define OP_BOOTREPLY 2#define FLAGS_BROADCAST 0x8000#define HTYPE_ETHER 1struct dhcp_msg{ uint8_t op; /* BOOTREQUEST / BOOTREPLY */ uint8_t htype; /* hw addr type */ uint8_t hlen; /* hw addr len */ uint8_t hops; /* client set to 0 */ uint32_t xid; /* transaction id */ uint16_t secs; /* seconds since start of acq */ uint16_t flags; uint32_t ciaddr; /* client IP addr */ uint32_t yiaddr; /* your (client) IP addr */ uint32_t siaddr; /* ip addr of next server */ /* (DHCPOFFER and DHCPACK) */ uint32_t giaddr; /* relay agent IP addr */ uint8_t chaddr[16]; /* client hw addr */ char sname[64]; /* asciiz server hostname */ char file[128]; /* asciiz boot file name */ uint8_t options[1024]; /* optional parameters */};#define DHCP_MSG_FIXED_SIZE 236/* 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_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_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 8int init_dhcp_discover_msg(dhcp_msg *msg, void *hwaddr, uint32_t xid);int init_dhcp_request_msg(dhcp_msg *msg, void *hwaddr, uint32_t xid, uint32_t ipaddr, uint32_t serveraddr);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -