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

📄 ip_var.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
字号:
/* static	char	*sccsid = "@(#)ip_var.h	4.2		(ULTRIX)	9/4/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				* *									* *	24-Oct-89	Uttam Shikarpur					* *			Added new fields to ipstat struct for 		* *			Network Management				* *									* *	27-Mar-89	U. Sinkewicz *		Added IPSTAT macro as per lp changes from 3/26/89. * *	3-Mar-89	U. Sinkewicz *		Added new directory layout, pmax to smp file. *	 *	15-Jan-88	lp *		Merge of final 43BSD changes. * *	Larry Cohen  -	09/16/85					* * 		Add 43bsd alpha tape changes for subnet routing		* *									* ************************************************************************//* * 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_var.h	6.4 (Berkeley) 6/8/85 */#ifdef KERNEL#include "../h/ansi_compat.h"#else#include <ansi_compat.h>#endif/* * Overlay for ip header used by other protocols (tcp, udp). */struct ipovly {	caddr_t	ih_next, ih_prev;	/* for protocol sequence q's */	u_char	ih_x1;			/* (unused) */	u_char	ih_pr;			/* protocol */	short	ih_len;			/* protocol length */	struct	in_addr ih_src;		/* source internet address */	struct	in_addr ih_dst;		/* destination internet address */};/* * Ip reassembly queue structure.  Each fragment * being reassembled is attached to one of these structures. * They are timed out after ipq_ttl drops to 0, and may also * be reclaimed if memory becomes tight. */struct ipq {	struct	ipq *next,*prev;	/* to other reass headers */	u_char	ipq_ttl;		/* time for reass q to live */	u_char	ipq_p;			/* protocol of this fragment */	u_short	ipq_id;			/* sequence id for reassembly */	struct	ipasfrag *ipq_next,*ipq_prev;					/* to ip headers of fragments */	struct	in_addr ipq_src,ipq_dst;};/* * Ip header, when holding a fragment. * * Note: ipf_next must be at same offset as ipq_next above */struct	ipasfrag {#ifdef __vax	u_char	ip_hl:4,		ip_v:4;#endif /* __vax */#ifdef __mips#ifdef __MIPSEB        u_char  ip_v:4,                ip_hl:4;#endif /* __MIPSEB */#ifdef __MIPSEL        u_char  ip_hl:4,                ip_v:4;#endif /* __MIPSEL */#endif /* __mips */	u_char	ipf_mff;		/* copied from (ip_off&IP_MF) */	short	ip_len;	u_short	ip_id;	short	ip_off;	u_char	ip_ttl;	u_char	ip_p;	u_short	ip_sum;	struct	ipasfrag *ipf_next;	/* next fragment */	struct	ipasfrag *ipf_prev;	/* previous fragment */};/* * Structure stored in mbuf in inpcb.ip_options * and passed to ip_output when ip options are in use. * The actual length of the options (including ipopt_dst) * is in m_len. */#define MAX_IPOPTLEN	40struct ipoption {	struct	in_addr ipopt_dst;	/* first-hop dst if source routed */	char	ipopt_list[MAX_IPOPTLEN];	/* options proper */};struct	ipstat {	long	ips_total;		/* total packets received */	long	ips_badsum;		/* checksum bad */	long	ips_tooshort;		/* packet too short */	long	ips_toosmall;		/* not enough data */	long	ips_badhlen;		/* ip header length < data size */	long	ips_badlen;		/* ip length < ip header length */	long	ips_fragments;		/* fragments received */	long	ips_fragdropped;	/* frags dropped (dups, out of space) */	long	ips_fragtimeout;	/* fragments timed out */	long	ips_forward;		/* packets forwarded */	long	ips_cantforward;	/* packets rcvd for unreachable dest */	long	ips_redirectsent;	/* packets forwarded on same net */	long	ips_badoptions;		/* packets with bad IP options */	long	ips_totalsent;		/* total packets sent out */	long	ips_outdiscard;		/* output packets discarded */	long	ips_outpktsfrag;	/* # of IP output packets fragmented */	long	ips_outtotalfrag;	/* total # of fragments generated */	long	ips_outfragsfail;	/* # of pkts. that couldn't be frag. */};#define IPSTAT(x) ipstat.x#ifdef KERNEL/* flags passed to ip_output as last parameter */#define	IP_FORWARDING		0x1		/* most of ip header exists */#define	IP_ROUTETOIF		SO_DONTROUTE	/* bypass routing tables */#define	IP_ALLOWBROADCAST	SO_BROADCAST	/* can send broadcast packets */extern struct lock_t lk_ipstat;	 /* SMP */extern struct lock_t lk_ipq;	 /* SMP */ extern struct lock_t lk_ifqueue; /* SMP: was lk_ipintrq */struct	ipstat	ipstat;struct	ipq	ipq;			/* ip reass. queue */u_short	ip_id;				/* ip packet ctr, for ids */struct mbuf *ip_srcroute();#endif

⌨️ 快捷键说明

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