rx.h

来自「TCPDUMP的C语言源代码,是在数据链路层的应用」· C头文件 代码 · 共 114 行

H
114
字号
/* * Copyright: (c) 2000 United States Government as represented by the *	Secretary of the Navy. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * *   1. Redistributions of source code must retain the above copyright *      notice, this list of conditions and the following disclaimer. *   2. Redistributions in binary form must reproduce the above copyright *      notice, this list of conditions and the following disclaimer in *      the documentation and/or other materials provided with the *      distribution. *   3. The names of the authors may not be used to endorse or promote *      products derived from this software without specific prior *      written permission. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. *//* * Rx protocol format * * $Id: rx.h,v 1.8 2002-12-11 07:14:11 guy Exp $ */#define FS_RX_PORT	7000#define CB_RX_PORT	7001#define PROT_RX_PORT	7002#define VLDB_RX_PORT	7003#define KAUTH_RX_PORT	7004#define VOL_RX_PORT	7005#define ERROR_RX_PORT	7006		/* Doesn't seem to be used */#define BOS_RX_PORT	7007#ifndef AFSNAMEMAX#define AFSNAMEMAX 256#endif#ifndef AFSOPAQUEMAX#define AFSOPAQUEMAX 1024#endif#define PRNAMEMAX 64#define VLNAMEMAX 65#define KANAMEMAX 64#define BOSNAMEMAX 256#define	PRSFS_READ		1 /* Read files */#define	PRSFS_WRITE		2 /* Write files */#define	PRSFS_INSERT		4 /* Insert files into a directory */#define	PRSFS_LOOKUP		8 /* Lookup files into a directory */#define	PRSFS_DELETE		16 /* Delete files */#define	PRSFS_LOCK		32 /* Lock files */#define	PRSFS_ADMINISTER	64 /* Change ACL's */struct rx_header {	u_int32_t epoch;	u_int32_t cid;	u_int32_t callNumber;	u_int32_t seq;	u_int32_t serial;	u_int8_t type;#define RX_PACKET_TYPE_DATA		1#define RX_PACKET_TYPE_ACK		2#define RX_PACKET_TYPE_BUSY		3#define RX_PACKET_TYPE_ABORT		4#define RX_PACKET_TYPE_ACKALL		5#define RX_PACKET_TYPE_CHALLENGE	6#define RX_PACKET_TYPE_RESPONSE		7#define RX_PACKET_TYPE_DEBUG		8#define RX_PACKET_TYPE_PARAMS		9#define RX_PACKET_TYPE_VERSION		13	u_int8_t flags;#define RX_CLIENT_INITIATED	1#define RX_REQUEST_ACK		2#define RX_LAST_PACKET		4#define RX_MORE_PACKETS		8#define RX_FREE_PACKET		16#define RX_SLOW_START_OK	32#define RX_JUMBO_PACKET		32	u_int8_t userStatus;	u_int8_t securityIndex;	u_int16_t spare;		/* How clever: even though the AFS */	u_int16_t serviceId;		/* header files indicate that the */};					/* serviceId is first, it's really */					/* encoded _after_ the spare field */					/* I wasted a day figuring that out! */#define NUM_RX_FLAGS 7#define RX_MAXACKS 255struct rx_ackPacket {	u_int16_t bufferSpace;		/* Number of packet buffers available */	u_int16_t maxSkew;		/* Max diff between ack'd packet and */					/* highest packet received */	u_int32_t firstPacket;		/* The first packet in ack list */	u_int32_t previousPacket;	/* Previous packet recv'd (obsolete) */	u_int32_t serial;		/* # of packet that prompted the ack */	u_int8_t reason;		/* Reason for acknowledgement */	u_int8_t nAcks;			/* Number of acknowledgements */	u_int8_t acks[RX_MAXACKS];	/* Up to RX_MAXACKS acknowledgements */};/* * Values for the acks array */#define RX_ACK_TYPE_NACK	0	/* Don't have this packet */#define RX_ACK_TYPE_ACK		1	/* I have this packet */

⌨️ 快捷键说明

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