Commit | Line | Data |
---|---|---|
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 | 27 | struct 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 | */ | |
61 | struct 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 | }; |