📄 ip.h
字号:
/*static char *sccsid = "@(#)ip.h 4.3 (ULTRIX) 11/9/90"; *//************************************************************************ * * * Copyright (c) 1985 by * * Digital Equipment Corporation, Maynard, MA * * All rights reserved. * * * * This software is furnished under a license and may be used and * * copied only in accordance with the terms of such license and * * with the inclusion of the above copyright notice. This * * software or any other copies thereof may not be provided or * * otherwise made available to any other person. No title to and * * ownership of the software is hereby transferred. * * * * This software is derived from software received from the * * University of California, Berkeley, and from Bell * * Laboratories. Use, duplication, or disclosure is subject to * * restrictions under license agreements with University of * * California and with AT&T. * * * * The information in this software is subject to change without * * notice and should not be construed as a commitment by Digital * * Equipment Corporation. * * * * Digital assumes no responsibility for the use or reliability * * of its software on equipment which is not supplied by Digital. * * * ************************************************************************//************************************************************************ * Modification History * * * * Uttam Shikarpur - 10/17/89 * * Made the value of MAXTTL, a manifest constant, * * writeable. * * Larry Cohen - 09/16/85 * * Add 43bsd alpha tape changes for subnet routing * * * * Larry Cohen - 01/28/87 * Offsets to fields in options other than EOL and NOP. * ************************************************************************//* * Copyright (c) 1982 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)ip.h 6.5 (Berkeley) 6/8/85 */#ifdef KERNEL#include "../h/ansi_compat.h"#else#include <ansi_compat.h>#endif/* * Definitions for internet protocol version 4. * Per RFC 791, September 1981. */#define IPVERSION 4/* * Structure of an internet header, naked of options. * * We declare ip_len and ip_off to be short, rather than u_short * pragmatically since otherwise unsigned comparisons can result * against negative integers quite easily, and fail in subtle ways. */struct ip {#ifdef __vax u_char ip_hl:4, /* header length */ ip_v:4; /* version */#endif /* __vax */#ifdef __mips#ifdef __MIPSEL u_char ip_hl:4, /* header length */ ip_v:4; /* version */#endif /* __MIPSEL */#ifdef __MIPSEB u_char ip_v:4, /* version */ ip_hl:4; /* header length */#endif /* __MIPSEB */#endif /* __mips */ u_char ip_tos; /* type of service */ short ip_len; /* total length */ u_short ip_id; /* identification */ short ip_off; /* fragment offset field */#define IP_DF 0x4000 /* dont fragment flag */#define IP_MF 0x2000 /* more fragments flag */ u_char ip_ttl; /* time to live */ u_char ip_p; /* protocol */ u_short ip_sum; /* checksum */ struct in_addr ip_src,ip_dst; /* source and dest address */};/* * Definitions for options. */#define IPOPT_COPIED(o) ((o)&0x80)#define IPOPT_CLASS(o) ((o)&0x60)#define IPOPT_NUMBER(o) ((o)&0x1f)#define IPOPT_CONTROL 0x00#define IPOPT_RESERVED1 0x20#define IPOPT_DEBMEAS 0x40#define IPOPT_RESERVED2 0x60#define IPOPT_EOL 0 /* end of option list */#define IPOPT_NOP 1 /* no operation */#define IPOPT_RR 7 /* record packet route */#define IPOPT_TS 68 /* timestamp */#define IPOPT_SECURITY 130 /* provide s,c,h,tcc */#define IPOPT_LSRR 131 /* loose source route */#define IPOPT_SATID 136 /* satnet id */#define IPOPT_SSRR 137 /* strict source route *//* * Offsets to fields in options other than EOL and NOP. */#define IPOPT_OPTVAL 0 /* option ID */#define IPOPT_OLEN 1 /* option length */#define IPOPT_OFFSET 2 /* offset within option */#define IPOPT_MINOFF 4 /* min value of above *//* * Time stamp option structure. */struct ip_timestamp { u_char ipt_code; /* IPOPT_TS */ u_char ipt_len; /* size of structure (variable) */ u_char ipt_ptr; /* index of current entry */#ifdef __vax u_char ipt_flg:4, /* flags, see below */ ipt_oflw:4; /* overflow counter */#endif /* __vax */#ifdef __mips#ifdef __MIPSEL u_char ipt_flg:4, /* flags, see below */ ipt_oflw:4; /* overflow counter */#endif /* __MIPSEL */#ifdef __MIPSEB u_char ipt_oflw:4, /* overflow counter */ ipt_flg:4; /* flags, see below */#endif /* __MIPSEB */#endif /* __mips */ union ipt_timestamp { n_long ipt_time[1]; struct ipt_ta { struct in_addr ipt_addr; n_long ipt_time; } ipt_ta[1]; } ipt_timestamp;};/* flag bits for ipt_flg */#define IPOPT_TS_TSONLY 0 /* timestamps only */#define IPOPT_TS_TSANDADDR 1 /* timestamps and addresses */#define IPOPT_TS_PRESPEC 2 /* specified modules only *//* bits for security (not byte swapped) */#define IPOPT_SECUR_UNCLASS 0x0000#define IPOPT_SECUR_CONFID 0xf135#define IPOPT_SECUR_EFTO 0x789a#define IPOPT_SECUR_MMMM 0xbc4d#define IPOPT_SECUR_RESTR 0xaf13#define IPOPT_SECUR_SECRET 0xd788#define IPOPT_SECUR_TOPSECRET 0x6bc5/* * Internet implementation parameters. */#define MAXTTL 255#define IPFRAGTTL 15 /* time to live for frag chains */#define IPTTLDEC 1 /* subtracted when forwarding */#define IP_MSS 576 /* default maximum segment size */extern int maxttl; /* MAXTTL assigned in net/ip_icmp.c */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -