⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dhcp.h

📁 vxworks 6.x 的全部头文件
💻 H
字号:
/* dhcp.h - Common DHCP include file for server, relay agent, and client *//* Copyright 1984 - 2001 Wind River Systems, Inc. *//*modification history---------------------01n,04nov03,rlm  Ran batch header path update for header re-org.01m,03nov03,rlm  Removed wrn/coreip/ prefix from #includes for header re-org.01l,23oct03,rlm  updated #includes for header re-org01k,22aug02,wap  merge from T2.201j,23apr02,wap  Add prototype for dhcpTime() (SPR #68900)01i,27jun01,ppp  removed MIN LEASE since it is not supported any more (SPR                 #34799)01h,07sep00,spm  moved client-specific transmit routine to private module01g,05apr00,spm  added entries for boot-time client shared code01f,24nov99,spm  upgraded to RFC 2131 and removed direct link-level access01e,04dec97,spm  added code review modifications01d,06aug97,spm  added definitions for C++ compilation01c,02jun97,spm  changed DHCP option tags to prevent name conflicts (SPR #8667)01b,29jan97,spm  added little-endian support and additional DHCP defines.01a,03oct96,spm  created by modifying WIDE project DHCP Implementation.*/#ifndef __INCdhcph#define __INCdhcph#ifdef __cplusplusextern "C" {#endif/* * WIDE Project DHCP Implementation * Copyright (c) 1995 Akihiro Tominaga * Copyright (c) 1995 WIDE Project * All rights reserved. * * Permission to use, copy, modify and distribute this software and its * documentation is hereby granted, provided only with the following * conditions are satisfied: * * 1. Both the copyright notice and this permission notice appear in *    all copies of the software, derivative works or modified versions, *    and any portions thereof, and that both notices appear in *    supporting documentation. * 2. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *      This product includes software developed by WIDE Project and *      its contributors. * 3. Neither the name of WIDE Project nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE DEVELOPER ``AS IS'' AND WIDE * PROJECT DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES * WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ALSO, THERE * IS NO WARRANTY IMPLIED OR OTHERWISE, NOR IS SUPPORT PROVIDED. * * Feedback of the results generated from any improvements or * extensions made to this software would be much appreciated. * Any such feedback should be sent to: *  *  Akihiro Tominaga *  WIDE Project *  Keio University, Endo 5322, Kanagawa, Japan *  (E-mail: dhcp-dist@wide.ad.jp) * * WIDE project has the rights to redistribute these changes. */#include <netinet/in.h>/* Tag values for DHCP options. */#define _DHCP_PAD_TAG 			((char)   0)#define _DHCP_SUBNET_MASK_TAG 		((char)   1)#define _DHCP_TIME_OFFSET_TAG 		((char)   2)#define _DHCP_ROUTER_TAG 		((char)   3)#define _DHCP_TIME_SERVER_TAG 		((char)   4)#define _DHCP_NAME_SERVER_TAG 		((char)   5)#define _DHCP_DNS_SERVER_TAG 		((char)   6)#define _DHCP_LOG_SERVER_TAG 		((char)   7)#define _DHCP_COOKIE_SERVER_TAG 	((char)   8)#define _DHCP_LPR_SERVER_TAG		((char)   9)#define _DHCP_IMPRESS_SERVER_TAG 	((char)  10)#define _DHCP_RLS_SERVER_TAG 		((char)  11)#define _DHCP_HOSTNAME_TAG              ((char)  12)#define _DHCP_BOOTSIZE_TAG 		((char)  13)#define _DHCP_MERIT_DUMP_TAG 		((char)  14)#define _DHCP_DNS_DOMAIN_TAG 		((char)  15)#define _DHCP_SWAP_SERVER_TAG 		((char)  16)#define _DHCP_ROOT_PATH_TAG 		((char)  17)#define _DHCP_EXTENSIONS_PATH_TAG 	((char)  18)#define _DHCP_IP_FORWARD_TAG 		((char)  19)#define _DHCP_NONLOCAL_SRCROUTE_TAG 	((char)  20)#define _DHCP_POLICY_FILTER_TAG 	((char)  21)#define _DHCP_MAX_DGRAM_SIZE_TAG 	((char)  22)#define _DHCP_DEFAULT_IP_TTL_TAG 	((char)  23)#define _DHCP_MTU_AGING_TIMEOUT_TAG 	((char)  24)#define _DHCP_MTU_PLATEAU_TABLE_TAG 	((char)  25)#define _DHCP_IF_MTU_TAG 		((char)  26)#define _DHCP_ALL_SUBNET_LOCAL_TAG 	((char)  27)#define _DHCP_BRDCAST_ADDR_TAG 		((char)  28)#define _DHCP_MASK_DISCOVER_TAG 	((char)  29)#define _DHCP_MASK_SUPPLIER_TAG 	((char)  30)#define _DHCP_ROUTER_DISCOVER_TAG 	((char)  31)#define _DHCP_ROUTER_SOLICIT_TAG 	((char)  32)#define _DHCP_STATIC_ROUTE_TAG 		((char)  33)#define _DHCP_TRAILER_TAG 		((char)  34)#define _DHCP_ARP_CACHE_TIMEOUT_TAG 	((char)  35)#define _DHCP_ETHER_ENCAP_TAG 		((char)  36)#define _DHCP_DEFAULT_TCP_TTL_TAG 	((char)  37)#define _DHCP_KEEPALIVE_INTERVAL_TAG 	((char)  38)#define _DHCP_KEEPALIVE_GARBAGE_TAG 	((char)  39)#define _DHCP_NIS_DOMAIN_TAG 		((char)  40)#define _DHCP_NIS_SERVER_TAG 		((char)  41)#define _DHCP_NTP_SERVER_TAG 		((char)  42)#define _DHCP_VENDOR_SPEC_TAG 		((char)  43)#define _DHCP_NBN_SERVER_TAG 		((char)  44)#define _DHCP_NBDD_SERVER_TAG 		((char)  45)#define _DHCP_NB_NODETYPE_TAG 		((char)  46)#define _DHCP_NB_SCOPE_TAG 		((char)  47)#define _DHCP_XFONT_SERVER_TAG 		((char)  48)#define _DHCP_XDISPLAY_MANAGER_TAG 	((char)  49)#define _DHCP_REQUEST_IPADDR_TAG 	((char)  50)#define _DHCP_LEASE_TIME_TAG 		((char)  51)#define _DHCP_OPT_OVERLOAD_TAG 		((char)  52)#define _DHCP_MSGTYPE_TAG 		((char)  53)#define _DHCP_SERVER_ID_TAG 		((char)  54)#define _DHCP_REQ_LIST_TAG 		((char)  55)#define _DHCP_ERRMSG_TAG 		((char)  56)#define _DHCP_MAXMSGSIZE_TAG 		((char)  57)#define _DHCP_T1_TAG 			((char)  58) #define _DHCP_T2_TAG 			((char)  59)#define _DHCP_CLASS_ID_TAG 		((char)  60)#define _DHCP_CLIENT_ID_TAG 		((char)  61)#define _DHCP_NISP_DOMAIN_TAG 		((char)  64)#define _DHCP_NISP_SERVER_TAG 		((char)  65)#define _DHCP_TFTP_SERVERNAME_TAG 	((char)  66)#define _DHCP_BOOTFILE_TAG 		((char)  67)#define _DHCP_MOBILEIP_HA_TAG 		((char)  68)#define _DHCP_SMTP_SERVER_TAG 		((char)  69)#define _DHCP_POP3_SERVER_TAG 		((char)  70)#define _DHCP_NNTP_SERVER_TAG 		((char)  71)#define _DHCP_DFLT_WWW_SERVER_TAG 	((char)  72)#define _DHCP_DFLT_FINGER_SERVER_TAG 	((char)  73)#define _DHCP_DFLT_IRC_SERVER_TAG 	((char)  74)#define _DHCP_STREETTALK_SERVER_TAG 	((char)  75)#define _DHCP_STDA_SERVER_TAG 		((char)  76)#define _DHCP_END_TAG 			((char) 255)#define _DHCP_LAST_OPTION 		_DHCP_STDA_SERVER_TAG#define _DHCP_MAX_OPTLEN 		255/*  * Hardware type values from the arp section of the assigned numbers RFC.  * (Frequently used as client identifier types). */#define ETHER           1       /* Ethernet (10Mb) */#define EXPETHER        2       /* Experimental Ethernet (3Mb) */#define AX25            3       /* Amateur Radio AX.25 */#define PRONET          4       /* Proteon ProNET Token Ring */#define CHAOS           5       /* Chaos */#define IEEE802         6       /* IEEE 802 Networks */#define ARCNET          7       /* ARCNET */#define HYPERCH         8       /* Hyperchannel */#define LANSTAR         9       /* Lanstar */#define AUTONET         10      /* Autonet Short Address */#define LOCALTALK       11      /* LocalTalk */#define LOCALNET        12      /* LocalNet */#define ULTRALINK 	13 	/* Ultra link */#define FRAMERELAY 	15 	/* Frame Relay */#define SERIAL 		20 	/* Serial Line */#define DNS_NAME        128     /* DNS name *//* Definitions for DHCP message format. */#define MAX_HLEN      16    /* maximum length of haddr field */#define MAX_SNAME     64#define MAX_FILE     128#define DFLTOPTLEN   312#define BOOTPOPTLEN   64#define MAXOPT      0xff#define INFINITY    0xffffffff/* Definitions for ARP messages. */#define MAX_ARPLEN    (sizeof (struct arphdr) + 2 * (MAX_HLEN + 4))#define ARPHL    (sizeof (struct arphdr))#if CPU_FAMILY==I960#pragma align 1                 /* tell gcc960 not to optimize alignments */#endif  /* CPU_FAMILY==I960 *//* DHCP message format */struct dhcp    {    unsigned char       op;             /* packet type */    unsigned char       htype;          /* Link-level interface address type */    unsigned char       hlen;   /* Link-level interface address length */    unsigned char       hops;           /* Hops through DHCP relay agents */    unsigned long       xid;            /* transaction ID */    unsigned short      secs;   /* seconds since lease negotiation started */    unsigned short      flags;    struct in_addr      ciaddr;         /* Client's current IP address */    struct in_addr      yiaddr;         /* Client's assigned IP address */    struct in_addr      siaddr;         /* Address of (tftp) server */    struct in_addr      giaddr;         /* Address of relay agent */    char                chaddr [MAX_HLEN];      /* Client's hardware address */    char                sname [MAX_SNAME];      /* Host name of DHCP server */    char                file [MAX_FILE];        /* File name of boot image */    char                options [DFLTOPTLEN];   /* DHCP message options */    };struct ps_udph          /* pseudo udp header for checksum */    {    struct in_addr      srcip;    struct in_addr      dstip;    char                zero;    char                prto;    short               ulen;    };#if CPU_FAMILY==I960#pragma align 0                 /* turn off alignment requirement */#endif  /* CPU_FAMILY==I960 *//* Definitions for processing incoming DHCP messages */#define DHCP_MSG_SIZE (DFLTDHCPLEN + UDPHL + IPHL)#define MESSAGE_RING_SIZE (10 * DHCP_MSG_SIZE)#define DFLTDHCPLEN   sizeof (struct dhcp)   /* default DHCP message size */#define DFLTBOOTPLEN  (DFLTDHCPLEN - DFLTOPTLEN + BOOTPOPTLEN)#define DHCPLEN(UDP)  (ntohs(UDP->uh_ulen) - UDPHL)  /* get DHCP msg size */                                                     /* from UDP header */#define OPTBODY(TAGP)  ( ( (char *)TAGP) + 2)   /* get DHCP option contents */#define DHCPOPTLEN(TAGP) ((UINT8) * ( ((char *)TAGP) + 1)) /* option length *//* handle the word alignment */#define   GETHS(PTR)  (*((u_char *)PTR)*256 + *(((u_char *)PTR)+1))#define   GETHL(PTR)  (*((u_char *)PTR)*256*256*256 + *(((u_char *)PTR)+1)*256*256 +\                       *(((u_char *)PTR)+2)*256 + *(((u_char *)PTR)+3))/* Bit operators for options flags. */#define SETBIT(a,i)   ((a)[(i) / 8] |= (1 << (7 - (i) % 8)))#define CLRBIT(a,i)   ((a)[(i) / 8] &= ~(1 << (7 - (i) % 8)))#define ISSET(a,i)    ((a)[(i) / 8] & (1 << (7 - (i) % 8)))#define ISCLR(a,i)    (((a)[(i) / 8] & (1 << (7 - (i) % 8))) == 0)#define BOOTREQUEST		1#define BOOTREPLY		2/* * DHCP/BOOTP magic cookie defined in RFC 1048 */#define RFC1048_MAGIC { 99, 130, 83, 99 }#define MAGIC_LEN  4/* 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#define BOOTP                  0/* Classification of DHCP message fields */#define FILE_ISOPT             1#define SNAME_ISOPT            2#define BOTH_AREOPT            FILE_ISOPT + SNAME_ISOPT/* Common routines for all DHCP components */IMPORT int dhcpConvert (int);IMPORT char * pickup_opt (struct dhcp *, int, char);IMPORT u_short udp_cksum (struct ps_udph *, char *, int);IMPORT time_t dhcpTime (time_t *);#ifdef __cplusplus}#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -