📄 bootp.h
字号:
/* @(#) $Header: /tcpdump/master/tcpdump/bootp.h,v 1.8 1999/10/17 23:35:46 mcr Exp $ (LBL) */
/*
* Bootstrap Protocol (BOOTP). RFC951 and RFC1048.
*
* This file specifies the "implementation-independent" BOOTP protocol
* information which is common to both client and server.
*
* Copyright 1988 by Carnegie Mellon.
*
* Permission to use, copy, modify, and distribute this program for any
* purpose and without fee is hereby granted, provided that this copyright
* and permission notice appear on all copies and supporting documentation,
* the name of Carnegie Mellon not be used in advertising or publicity
* pertaining to distribution of the program without specific prior
* permission, and notice be given in supporting documentation that copying
* and distribution is by permission of Carnegie Mellon and Stanford
* University. Carnegie Mellon makes no representations about the
* suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*/
struct bootp {
u_char bp_op; /* packet opcode type */
u_char bp_htype; /* hardware addr type */
u_char bp_hlen; /* hardware addr length */
u_char bp_hops; /* gateway hops */
u_int32_t bp_xid; /* transaction ID */
u_short bp_secs; /* seconds since boot began */
u_short bp_flags; /* flags: 0x8000 is broadcast */
struct in_addr bp_ciaddr; /* client IP address */
struct in_addr bp_yiaddr; /* 'your' IP address */
struct in_addr bp_siaddr; /* server IP address */
struct in_addr bp_giaddr; /* gateway IP address */
u_char bp_chaddr[16]; /* client hardware address */
u_char bp_sname[64]; /* server host name */
u_char bp_file[128]; /* boot file name */
u_char bp_vend[64]; /* vendor-specific area */
};
/*
* UDP port numbers, server and client.
*/
#define IPPORT_BOOTPS 67
#define IPPORT_BOOTPC 68
#define BOOTREPLY 2
#define BOOTREQUEST 1
/*
* Vendor magic cookie (v_magic) for CMU
*/
#define VM_CMU "CMU"
/*
* Vendor magic cookie (v_magic) for RFC1048
*/
#define VM_RFC1048 { 99, 130, 83, 99 }
/*
* RFC1048 tag values used to specify what information is being supplied in
* the vendor field of the packet.
*/
#define TAG_PAD ((u_char)0)
#define TAG_SUBNET_MASK ((u_char)1)
#define TAG_TIME_OFFSET ((u_char)2)
#define TAG_GATEWAY ((u_char)3)
#define TAG_TIME_SERVER ((u_char)4)
#define TAG_NAME_SERVER ((u_char)5)
#define TAG_DOMAIN_SERVER ((u_char)6)
#define TAG_LOG_SERVER ((u_char)7)
#define TAG_COOKIE_SERVER ((u_char)8)
#define TAG_LPR_SERVER ((u_char)9)
#define TAG_IMPRESS_SERVER ((u_char)10)
#define TAG_RLP_SERVER ((u_char)11)
#define TAG_HOSTNAME ((u_char)12)
#define TAG_BOOTSIZE ((u_char)13)
#define TAG_END ((u_char)255)
/* RFC1497 tags
*/
#define TAG_DUMPPATH ((u_char)14)
#define TAG_DOMAINNAME ((u_char)15)
#define TAG_SWAP_SERVER ((u_char)16)
#define TAG_ROOTPATH ((u_char)17)
#define TAG_EXTPATH ((u_char)18)
/* RFC2132
*/
#define TAG_IP_FORWARD ((u_char)19)
#define TAG_NL_SRCRT ((u_char)20)
#define TAG_PFILTERS ((u_char)21)
#define TAG_REASS_SIZE ((u_char)22)
#define TAG_DEF_TTL ((u_char)23)
#define TAG_MTU_TIMEOUT ((u_char)24)
#define TAG_MTU_TABLE ((u_char)25)
#define TAG_INT_MTU ((u_char)26)
#define TAG_LOCAL_SUBNETS ((u_char)27)
#define TAG_BROAD_ADDR ((u_char)28)
#define TAG_DO_MASK_DISC ((u_char)29)
#define TAG_SUPPLY_MASK ((u_char)30)
#define TAG_DO_RDISC ((u_char)31)
#define TAG_RTR_SOL_ADDR ((u_char)32)
#define TAG_STATIC_ROUTE ((u_char)33)
#define TAG_USE_TRAILERS ((u_char)34)
#define TAG_ARP_TIMEOUT ((u_char)35)
#define TAG_ETH_ENCAP ((u_char)36)
#define TAG_TCP_TTL ((u_char)37)
#define TAG_TCP_KEEPALIVE ((u_char)38)
#define TAG_KEEPALIVE_GO ((u_char)39)
#define TAG_NIS_DOMAIN ((u_char)40)
#define TAG_NIS_SERVERS ((u_char)41)
#define TAG_NTP_SERVERS ((u_char)42)
#define TAG_VENDOR_OPTS ((u_char)43)
#define TAG_NETBIOS_NS ((u_char)44)
#define TAG_NETBIOS_DDS ((u_char)45)
#define TAG_NETBIOS_NODE ((u_char)46)
#define TAG_NETBIOS_SCOPE ((u_char)47)
#define TAG_XWIN_FS ((u_char)48)
#define TAG_XWIN_DM ((u_char)49)
#define TAG_NIS_P_DOMAIN ((u_char)64)
#define TAG_NIS_P_SERVERS ((u_char)65)
#define TAG_MOBILE_HOME ((u_char)68)
#define TAG_SMPT_SERVER ((u_char)69)
#define TAG_POP3_SERVER ((u_char)70)
#define TAG_NNTP_SERVER ((u_char)71)
#define TAG_WWW_SERVER ((u_char)72)
#define TAG_FINGER_SERVER ((u_char)73)
#define TAG_IRC_SERVER ((u_char)74)
#define TAG_STREETTALK_SRVR ((u_char)75)
#define TAG_STREETTALK_STDA ((u_char)76)
/* DHCP options
*/
#define TAG_REQUESTED_IP ((u_char)50)
#define TAG_IP_LEASE ((u_char)51)
#define TAG_OPT_OVERLOAD ((u_char)52)
#define TAG_TFTP_SERVER ((u_char)66)
#define TAG_BOOTFILENAME ((u_char)67)
#define TAG_DHCP_MESSAGE ((u_char)53)
#define TAG_SERVER_ID ((u_char)54)
#define TAG_PARM_REQUEST ((u_char)55)
#define TAG_MESSAGE ((u_char)56)
#define TAG_MAX_MSG_SIZE ((u_char)57)
#define TAG_RENEWAL_TIME ((u_char)58)
#define TAG_REBIND_TIME ((u_char)59)
#define TAG_VENDOR_CLASS ((u_char)60)
#define TAG_CLIENT_ID ((u_char)61)
/* DHCP Message types (values for TAG_DHCP_MESSAGE option)
*/
#define DHCPDISCOVER 1
#define DHCPOFFER 2
#define DHCPREQUEST 3
#define DHCPDECLINE 4
#define DHCPACK 5
#define DHCPNAK 6
#define DHCPRELEASE 7
#define DHCPINFORM 8
/*
* "vendor" data permitted for CMU bootp clients.
*/
struct cmu_vend {
u_char v_magic[4]; /* magic number */
u_int32_t v_flags; /* flags/opcodes, etc. */
struct in_addr v_smask; /* Subnet mask */
struct in_addr v_dgate; /* Default gateway */
struct in_addr v_dns1, v_dns2; /* Domain name servers */
struct in_addr v_ins1, v_ins2; /* IEN-116 name servers */
struct in_addr v_ts1, v_ts2; /* Time servers */
u_char v_unused[24]; /* currently unused */
};
/* v_flags values
*/
#define VF_SMASK 1 /* Subnet mask field contains valid data */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -