more stats; flag for raw ip output
[unix-history] / usr / src / sys / nfs / nfsrtt.h
CommitLineData
8cf41015
KM
1/*
2 * Copyright (c) 1992 The Regents of the University of California.
3 * All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * Rick Macklem at The University of Guelph.
7 *
8 * %sccs.include.redist.c%
9 *
5447c29f 10 * @(#)nfsrtt.h 7.2 (Berkeley) %G%
8cf41015
KM
11 */
12
13/*
5447c29f
KM
14 * Definitions for performance monitor.
15 * The client and server logging are turned on by setting the global
16 * constant "nfsrtton" to 1.
8cf41015
KM
17 */
18#define NFSRTTLOGSIZ 128
5447c29f
KM
19
20/*
21 * Circular log of client side rpc activity. Each log entry is for one
22 * rpc filled in upon completion. (ie. in order of completion)
23 * The "pos" is the table index for the "next" entry, therefore the
24 * list goes from nfsrtt.rttl[pos] --> nfsrtt.rttl[pos - 1] in
25 * chronological order of completion.
26 */
8cf41015 27struct nfsrtt {
5447c29f 28 int pos; /* Position in array for next entry */
8cf41015 29 struct rttl {
5447c29f
KM
30 int proc; /* NFS procedure number */
31 int rtt; /* Measured round trip time */
32 int rto; /* Round Trip Timeout */
33 int sent; /* # rpcs in progress */
34 int cwnd; /* Send window */
35 int srtt; /* Ave Round Trip Time */
36 int sdrtt; /* Ave mean deviation of RTT */
37 fsid_t fsid; /* Fsid for mount point */
38 struct timeval tstamp; /* Timestamp of log entry */
8cf41015
KM
39 } rttl[NFSRTTLOGSIZ];
40};
5447c29f
KM
41
42/*
43 * And definitions for server side performance monitor.
44 * The log organization is the same as above except it is filled in at the
45 * time the server sends the rpc reply.
46 */
47
48/*
49 * Bits for the flags field.
50 */
51#define DRT_NQNFS 0x01 /* Rpc used Nqnfs protocol */
52#define DRT_TCP 0x02 /* Client used TCP transport */
53#define DRT_CACHEREPLY 0x04 /* Reply was from recent request cache */
54#define DRT_CACHEDROP 0x08 /* Rpc request dropped, due to recent reply */
55
56/*
57 * Server log structure
58 * NB: ipadr == INADDR_ANY indicates a client using a non IP protocol.
59 * (ISO perhaps?)
60 */
61struct nfsdrt {
62 int pos; /* Position of next log entry */
63 struct drt {
64 int flag; /* Bits as defined above */
65 int proc; /* NFS procedure number */
66 u_long ipadr; /* IP address of client */
67 int resptime; /* Response time (usec) */
68 struct timeval tstamp; /* Timestamp of log entry */
69 } drt[NFSRTTLOGSIZ];
70};