summaryrefslogtreecommitdiffstats
path: root/contrib/tcpdump/rx.h
blob: fe6f9634d54f880758c09d2ce726368eb1f30b21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/*
 * Rx protocol format
 *
 * $Id: rx.h,v 1.3 2000/10/03 02:55:02 itojun 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
	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 5

#define RX_MAXACKS 255

struct 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 */
OpenPOWER on IntegriCloud