#define MAXNRVALS 32
-static unsigned int srvproc2info[20], srvproc2info_old[20]; /* NFSv2 call counts ([0] == 18) */
-static unsigned int cltproc2info[20], cltproc2info_old[20]; /* NFSv2 call counts ([0] == 18) */
-static unsigned int srvproc3info[24], srvproc3info_old[24]; /* NFSv3 call counts ([0] == 22) */
-static unsigned int cltproc3info[24], cltproc3info_old[24]; /* NFSv3 call counts ([0] == 22) */
-static unsigned int srvproc4info[4], srvproc4info_old[4]; /* NFSv4 call counts ([0] == 2) */
-static unsigned int cltproc4info[37], cltproc4info_old[37]; /* NFSv4 call counts ([0] == 35) */
-static unsigned int srvproc4opsinfo[42], srvproc4opsinfo_old[42]; /* NFSv4 call counts ([0] == 40) */
+enum {
+ SRVPROC2_SZ = 18,
+ CLTPROC2_SZ = 18,
+ SRVPROC3_SZ = 22,
+ CLTPROC3_SZ = 22,
+ SRVPROC4_SZ = 2,
+ CLTPROC4_SZ = 48,
+ SRVPROC4OPS_SZ = 59,
+};
+
+static unsigned int srvproc2info[SRVPROC2_SZ+2],
+ srvproc2info_old[SRVPROC2_SZ+2]; /* NFSv2 call counts ([0] == 18) */
+static unsigned int cltproc2info[CLTPROC2_SZ+2],
+ cltproc2info_old[CLTPROC2_SZ+2]; /* NFSv2 call counts ([0] == 18) */
+static unsigned int srvproc3info[SRVPROC3_SZ+2],
+ srvproc3info_old[SRVPROC3_SZ+2]; /* NFSv3 call counts ([0] == 22) */
+static unsigned int cltproc3info[CLTPROC3_SZ+2],
+ cltproc3info_old[CLTPROC3_SZ+2]; /* NFSv3 call counts ([0] == 22) */
+static unsigned int srvproc4info[SRVPROC4_SZ+2],
+ srvproc4info_old[SRVPROC4_SZ+2]; /* NFSv4 call counts ([0] == 2) */
+static unsigned int cltproc4info[CLTPROC4_SZ+2],
+ cltproc4info_old[CLTPROC4_SZ+2]; /* NFSv4 call counts ([0] == 48) */
+static unsigned int srvproc4opsinfo[SRVPROC4OPS_SZ+2],
+ srvproc4opsinfo_old[SRVPROC4OPS_SZ+2]; /* NFSv4 call counts ([0] == 59) */
static unsigned int srvnetinfo[5], srvnetinfo_old[5]; /* 0 # of received packets
* 1 UDP packets
* 2 TCP packets
* compatability.
*/
-static const char * nfsv2name[18] = {
+static const char * nfsv2name[SRVPROC2_SZ] = {
"null", "getattr", "setattr", "root", "lookup", "readlink",
"read", "wrcache", "write", "create", "remove", "rename",
"link", "symlink", "mkdir", "rmdir", "readdir", "fsstat"
};
-static const char * nfsv3name[22] = {
+static const char * nfsv3name[SRVPROC3_SZ] = {
"null", "getattr", "setattr", "lookup", "access", "readlink",
"read", "write", "create", "mkdir", "symlink", "mknod",
"remove", "rmdir", "rename", "link", "readdir", "readdirplus",
"fsstat", "fsinfo", "pathconf", "commit"
};
-static const char * nfssrvproc4name[2] = {
+static const char * nfssrvproc4name[SRVPROC4_SZ] = {
"null",
"compound",
};
-static const char * nfscltproc4name[35] = {
+static const char * nfscltproc4name[CLTPROC4_SZ] = {
"null", "read", "write", "commit", "open", "open_conf",
"open_noat", "open_dgrd", "close", "setattr", "fsinfo", "renew",
"setclntid", "confirm", "lock",
"lockt", "locku", "access", "getattr", "lookup", "lookup_root",
"remove", "rename", "link", "symlink", "create", "pathconf",
"statfs", "readlink", "readdir", "server_caps", "delegreturn", "getacl",
- "setacl", "fs_locations"
+ "setacl", "fs_locations",
+ /* nfsv4.1 client ops */
+ "exchange_id",
+ "create_ses",
+ "destroy_ses",
+ "sequence",
+ "get_lease_t",
+ "reclaim_comp",
+ "layoutget",
+ "layoutcommit",
+ "layoutreturn",
+ "getdevlist",
+ "getdevinfo",
+ /* nfsv4.1 pnfs client ops to data server only */
+ "ds_write",
+ "ds_commit",
};
-static const char * nfssrvproc4opname[40] = {
+static const char * nfssrvproc4opname[SRVPROC4OPS_SZ] = {
"op0-unused", "op1-unused", "op2-future", "access", "close", "commit",
"create", "delegpurge", "delegreturn", "getattr", "getfh", "link",
"lock", "lockt", "locku", "lookup", "lookup_root", "nverify",
"open", "openattr", "open_conf", "open_dgrd", "putfh", "putpubfh",
"putrootfh", "read", "readdir", "readlink", "remove", "rename",
"renew", "restorefh", "savefh", "secinfo", "setattr", "setcltid",
- "setcltidconf", "verify", "write", "rellockowner"
+ "setcltidconf", "verify", "write", "rellockowner",
+ /* nfsv4.1 server ops */
+ "bc_ctl",
+ "bind_conn",
+ "exchange_id",
+ "create_ses",
+ "destroy_ses",
+ "free_stateid",
+ "getdirdeleg",
+ "getdevinfo",
+ "getdevlist",
+ "layoutcommit",
+ "layoutget",
+ "layoutreturn",
+ "secinfononam",
+ "sequence",
+ "set_ssv",
+ "test_stateid",
+ "want_deleg",
+ "destroy_clid",
+ "reclaim_comp",
};
#define LABEL_srvnet "Server packet stats:\n"