Skip to content

Commit ab18945

Browse files
committed
Add NFSv4 error support
Support NFSv4 errors, and update "nfs-v4" test case to include NFSv4 NULL procedure.
1 parent 893e7b1 commit ab18945

File tree

4 files changed

+284
-29
lines changed

4 files changed

+284
-29
lines changed

nfs.h

+124
Original file line numberDiff line numberDiff line change
@@ -416,3 +416,127 @@ struct nfsv3_pathconf {
416416
nd_uint32_t pc_caseinsensitive;
417417
nd_uint32_t pc_casepreserving;
418418
};
419+
420+
/*
421+
* nfs definitions as per the Version 4 specs
422+
*/
423+
424+
#define NFSV4PROC_NULL 0
425+
#define NFSV4PROC_COMPOUND 1
426+
427+
/* RFC 7530 NFSv4 */
428+
#define NFS4_OK 0
429+
#define NFS4ERR_PERM 1
430+
#define NFS4ERR_NOENT 2
431+
#define NFS4ERR_IO 5
432+
#define NFS4ERR_NXIO 6
433+
#define NFS4ERR_ACCESS 13
434+
#define NFS4ERR_EXIST 17
435+
#define NFS4ERR_XDEV 18
436+
#define NFS4ERR_NOTDIR 20
437+
#define NFS4ERR_ISDIR 21
438+
#define NFS4ERR_INVAL 22
439+
#define NFS4ERR_FBIG 27
440+
#define NFS4ERR_NOSPC 28
441+
#define NFS4ERR_ROFS 30
442+
#define NFS4ERR_MLINK 31
443+
#define NFS4ERR_NAMETOOLONG 63
444+
#define NFS4ERR_NOTEMPTY 66
445+
#define NFS4ERR_DQUOT 69
446+
#define NFS4ERR_STALE 70
447+
#define NFS4ERR_BADHANDLE 10001
448+
#define NFS4ERR_BAD_COOKIE 10003
449+
#define NFS4ERR_NOTSUPP 10004
450+
#define NFS4ERR_TOOSMALL 10005
451+
#define NFS4ERR_SERVERFAULT 10006
452+
#define NFS4ERR_BADTYPE 10007
453+
#define NFS4ERR_DELAY 10008
454+
#define NFS4ERR_SAME 10009
455+
#define NFS4ERR_DENIED 10010
456+
#define NFS4ERR_EXPIRED 10011
457+
#define NFS4ERR_LOCKED 10012
458+
#define NFS4ERR_GRACE 10013
459+
#define NFS4ERR_FHEXPIRED 10014
460+
#define NFS4ERR_SHARE_DENIED 10015
461+
#define NFS4ERR_WRONGSEC 10016
462+
#define NFS4ERR_CLID_INUSE 10017
463+
#define NFS4ERR_RESOURCE 10018
464+
#define NFS4ERR_MOVED 10019
465+
#define NFS4ERR_NOFILEHANDLE 10020
466+
#define NFS4ERR_MINOR_VERS_MISMATCH 10021
467+
#define NFS4ERR_STALE_CLIENTID 10022
468+
#define NFS4ERR_STALE_STATEID 10023
469+
#define NFS4ERR_OLD_STATEID 10024
470+
#define NFS4ERR_BAD_STATEID 10025
471+
#define NFS4ERR_BAD_SEQID 10026
472+
#define NFS4ERR_NOT_SAME 10027
473+
#define NFS4ERR_LOCK_RANGE 10028
474+
#define NFS4ERR_SYMLINK 10029
475+
#define NFS4ERR_RESTOREFH 10030
476+
#define NFS4ERR_LEASE_MOVED 10031
477+
#define NFS4ERR_ATTRNOTSUPP 10032
478+
#define NFS4ERR_NO_GRACE 10033
479+
#define NFS4ERR_RECLAIM_BAD 10034
480+
#define NFS4ERR_RECLAIM_CONFLICT 10035
481+
#define NFS4ERR_BADXDR 10036
482+
#define NFS4ERR_LOCKS_HELD 10037
483+
#define NFS4ERR_OPENMODE 10038
484+
#define NFS4ERR_BADOWNER 10039
485+
#define NFS4ERR_BADCHAR 10040
486+
#define NFS4ERR_BADNAME 10041
487+
#define NFS4ERR_BAD_RANGE 10042
488+
#define NFS4ERR_LOCK_NOTSUPP 10043
489+
#define NFS4ERR_OP_ILLEGAL 10044
490+
#define NFS4ERR_DEADLOCK 10045
491+
#define NFS4ERR_FILE_OPEN 10046
492+
#define NFS4ERR_ADMIN_REVOKED 10047
493+
#define NFS4ERR_CB_PATH_DOWN 10048
494+
495+
/* RFC 8881 NFSv4.1 */
496+
#define NFS4ERR_BADIOMODE 10049
497+
#define NFS4ERR_BADLAYOUT 10050
498+
#define NFS4ERR_BAD_SESSION_DIGEST 10051
499+
#define NFS4ERR_BADSESSION 10052
500+
#define NFS4ERR_BADSLOT 10053
501+
#define NFS4ERR_COMPLETE_ALREADY 10054
502+
#define NFS4ERR_CONN_NOT_BOUND_TO_SESSION 10055
503+
#define NFS4ERR_DELEG_ALREADY_WANTED 10056
504+
#define NFS4ERR_BACK_CHAN_BUSY 10057
505+
#define NFS4ERR_LAYOUTTRYLATER 10058
506+
#define NFS4ERR_LAYOUTUNAVAILABLE 10059
507+
#define NFS4ERR_NOMATCHING_LAYOUT 10060
508+
#define NFS4ERR_RECALLCONFLICT 10061
509+
#define NFS4ERR_UNKNOWN_LAYOUTTYPE 10062
510+
#define NFS4ERR_SEQ_MISORDERED 10063
511+
#define NFS4ERR_SEQUENCE_POS 10064
512+
#define NFS4ERR_REQ_TOO_BIG 10065
513+
#define NFS4ERR_REP_TOO_BIG 10066
514+
#define NFS4ERR_REP_TOO_BIG_TO_CACHE 10067
515+
#define NFS4ERR_RETRY_UNCACHED_REP 10068
516+
#define NFS4ERR_UNSAFE_COMPOUND 10069
517+
#define NFS4ERR_TOO_MANY_OPS 10070
518+
#define NFS4ERR_OP_NOT_IN_SESSION 10071
519+
#define NFS4ERR_HASH_ALG_UNSUPP 10072
520+
#define NFS4ERR_CLIENTID_BUSY 10074
521+
#define NFS4ERR_PNFS_IO_HOLE 10075
522+
#define NFS4ERR_SEQ_FALSE_RETRY 10076
523+
#define NFS4ERR_BAD_HIGH_SLOT 10077
524+
#define NFS4ERR_DEADSESSION 10078
525+
#define NFS4ERR_ENCR_ALG_UNSUPP 10079
526+
#define NFS4ERR_PNFS_NO_LAYOUT 10080
527+
#define NFS4ERR_NOT_ONLY_OP 10081
528+
#define NFS4ERR_WRONG_CRED 10082
529+
#define NFS4ERR_WRONG_TYPE 10083
530+
#define NFS4ERR_DIRDELEG_UNAVAIL 10084
531+
#define NFS4ERR_REJECT_DELEG 10085
532+
#define NFS4ERR_RETURNCONFLICT 10086
533+
#define NFS4ERR_DELEG_REVOKED 10087
534+
535+
/* RFC 7862 NFSv4.2 */
536+
#define NFS4ERR_PARTNER_NOTSUPP 10088
537+
#define NFS4ERR_PARTNER_NO_AUTH 10089
538+
#define NFS4ERR_UNION_NOTSUPP 10090
539+
#define NFS4ERR_OFFLOAD_DENIED 10091
540+
#define NFS4ERR_WRONG_LFS 10092
541+
#define NFS4ERR_BADLABEL 10093
542+
#define NFS4ERR_OFFLOAD_NO_REQS 10094

print-nfs.c

+154-23
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,133 @@ static int xid_map_find(netdissect_options *, const struct sunrpc_msg *, const u
5050
static void interp_reply(netdissect_options *, const struct sunrpc_msg *, uint32_t, uint32_t, int);
5151
static const uint32_t *parse_post_op_attr(netdissect_options *, const uint32_t *, int);
5252

53+
/*
54+
* NFS Version 4 Procedures.
55+
*/
56+
static const struct tok nfsv4proc_str[] = {
57+
{ NFSV4PROC_NULL, "null" },
58+
{ NFSV4PROC_COMPOUND, "compound" },
59+
{ 0, NULL }
60+
};
61+
62+
static const struct tok status2strv4[] = {
63+
/* RFC 7530 NFSv4 */
64+
{ NFS4_OK, "NFS4_OK" },
65+
{ NFS4ERR_PERM, "NFS4ERR_PERM" },
66+
{ NFS4ERR_NOENT, "NFS4ERR_NOENT" },
67+
{ NFS4ERR_IO, "NFS4ERR_IO" },
68+
{ NFS4ERR_NXIO, "NFS4ERR_NXIO" },
69+
{ NFS4ERR_ACCESS, "NFS4ERR_ACCESS" },
70+
{ NFS4ERR_EXIST, "NFS4ERR_EXIST" },
71+
{ NFS4ERR_XDEV, "NFS4ERR_XDEV" },
72+
{ NFS4ERR_NOTDIR, "NFS4ERR_NOTDIR" },
73+
{ NFS4ERR_ISDIR, "NFS4ERR_ISDIR" },
74+
{ NFS4ERR_INVAL, "NFS4ERR_INVAL" },
75+
{ NFS4ERR_FBIG, "NFS4ERR_FBIG" },
76+
{ NFS4ERR_NOSPC, "NFS4ERR_NOSPC" },
77+
{ NFS4ERR_ROFS, "NFS4ERR_ROFS" },
78+
{ NFS4ERR_MLINK, "NFS4ERR_MLINK" },
79+
{ NFS4ERR_NAMETOOLONG, "NFS4ERR_NAMETOOLONG" },
80+
{ NFS4ERR_NOTEMPTY, "NFS4ERR_NOTEMPTY" },
81+
{ NFS4ERR_DQUOT, "NFS4ERR_DQUOT" },
82+
{ NFS4ERR_STALE, "NFS4ERR_STALE" },
83+
{ NFS4ERR_BADHANDLE, "NFS4ERR_BADHANDLE" },
84+
{ NFS4ERR_BAD_COOKIE, "NFS4ERR_BAD_COOKIE" },
85+
{ NFS4ERR_NOTSUPP, "NFS4ERR_NOTSUPP" },
86+
{ NFS4ERR_TOOSMALL, "NFS4ERR_TOOSMALL" },
87+
{ NFS4ERR_SERVERFAULT, "NFS4ERR_SERVERFAULT" },
88+
{ NFS4ERR_BADTYPE, "NFS4ERR_BADTYPE" },
89+
{ NFS4ERR_DELAY, "NFS4ERR_DELAY" },
90+
{ NFS4ERR_SAME, "NFS4ERR_SAME" },
91+
{ NFS4ERR_DENIED, "NFS4ERR_DENIED" },
92+
{ NFS4ERR_EXPIRED, "NFS4ERR_EXPIRED" },
93+
{ NFS4ERR_LOCKED, "NFS4ERR_LOCKED" },
94+
{ NFS4ERR_GRACE, "NFS4ERR_GRACE" },
95+
{ NFS4ERR_FHEXPIRED, "NFS4ERR_FHEXPIRED" },
96+
{ NFS4ERR_SHARE_DENIED, "NFS4ERR_SHARE_DENIED" },
97+
{ NFS4ERR_WRONGSEC, "NFS4ERR_WRONGSEC" },
98+
{ NFS4ERR_CLID_INUSE, "NFS4ERR_CLID_INUSE" },
99+
{ NFS4ERR_RESOURCE, "NFS4ERR_RESOURCE" },
100+
{ NFS4ERR_MOVED, "NFS4ERR_MOVED" },
101+
{ NFS4ERR_NOFILEHANDLE, "NFS4ERR_NOFILEHANDLE" },
102+
{ NFS4ERR_MINOR_VERS_MISMATCH, "NFS4ERR_MINOR_VERS_MISMATCH" },
103+
{ NFS4ERR_STALE_CLIENTID, "NFS4ERR_STALE_CLIENTID" },
104+
{ NFS4ERR_STALE_STATEID, "NFS4ERR_STALE_STATEID" },
105+
{ NFS4ERR_OLD_STATEID, "NFS4ERR_OLD_STATEID" },
106+
{ NFS4ERR_BAD_STATEID, "NFS4ERR_BAD_STATEID" },
107+
{ NFS4ERR_BAD_SEQID, "NFS4ERR_BAD_SEQID" },
108+
{ NFS4ERR_NOT_SAME, "NFS4ERR_NOT_SAME" },
109+
{ NFS4ERR_LOCK_RANGE, "NFS4ERR_LOCK_RANGE" },
110+
{ NFS4ERR_SYMLINK, "NFS4ERR_SYMLINK" },
111+
{ NFS4ERR_RESTOREFH, "NFS4ERR_RESTOREFH" },
112+
{ NFS4ERR_LEASE_MOVED, "NFS4ERR_LEASE_MOVED" },
113+
{ NFS4ERR_ATTRNOTSUPP, "NFS4ERR_ATTRNOTSUPP" },
114+
{ NFS4ERR_NO_GRACE, "NFS4ERR_NO_GRACE" },
115+
{ NFS4ERR_RECLAIM_BAD, "NFS4ERR_RECLAIM_BAD" },
116+
{ NFS4ERR_RECLAIM_CONFLICT, "NFS4ERR_RECLAIM_CONFLICT" },
117+
{ NFS4ERR_BADXDR, "NFS4ERR_BADXDR" },
118+
{ NFS4ERR_LOCKS_HELD, "NFS4ERR_LOCKS_HELD" },
119+
{ NFS4ERR_OPENMODE, "NFS4ERR_OPENMODE" },
120+
{ NFS4ERR_BADOWNER, "NFS4ERR_BADOWNER" },
121+
{ NFS4ERR_BADCHAR, "NFS4ERR_BADCHAR" },
122+
{ NFS4ERR_BADNAME, "NFS4ERR_BADNAME" },
123+
{ NFS4ERR_BAD_RANGE, "NFS4ERR_BAD_RANGE" },
124+
{ NFS4ERR_LOCK_NOTSUPP, "NFS4ERR_LOCK_NOTSUPP" },
125+
{ NFS4ERR_OP_ILLEGAL, "NFS4ERR_OP_ILLEGAL" },
126+
{ NFS4ERR_DEADLOCK, "NFS4ERR_DEADLOCK" },
127+
{ NFS4ERR_FILE_OPEN, "NFS4ERR_FILE_OPEN" },
128+
{ NFS4ERR_ADMIN_REVOKED, "NFS4ERR_ADMIN_REVOKED" },
129+
{ NFS4ERR_CB_PATH_DOWN, "NFS4ERR_CB_PATH_DOWN" },
130+
/* RFC 8881 NFSv4.1 */
131+
{ NFS4ERR_BADIOMODE, "NFS4ERR_BADIOMODE" },
132+
{ NFS4ERR_BADLAYOUT, "NFS4ERR_BADLAYOUT" },
133+
{ NFS4ERR_BAD_SESSION_DIGEST, "NFS4ERR_BAD_SESSION_DIGEST" },
134+
{ NFS4ERR_BADSESSION, "NFS4ERR_BADSESSION" },
135+
{ NFS4ERR_BADSLOT, "NFS4ERR_BADSLOT" },
136+
{ NFS4ERR_COMPLETE_ALREADY, "NFS4ERR_COMPLETE_ALREADY" },
137+
{ NFS4ERR_CONN_NOT_BOUND_TO_SESSION, "NFS4ERR_CONN_NOT_BOUND_TO_SESSION" },
138+
{ NFS4ERR_DELEG_ALREADY_WANTED, "NFS4ERR_DELEG_ALREADY_WANTED" },
139+
{ NFS4ERR_BACK_CHAN_BUSY, "NFS4ERR_BACK_CHAN_BUSY" },
140+
{ NFS4ERR_LAYOUTTRYLATER, "NFS4ERR_LAYOUTTRYLATER" },
141+
{ NFS4ERR_LAYOUTUNAVAILABLE, "NFS4ERR_LAYOUTUNAVAILABLE" },
142+
{ NFS4ERR_NOMATCHING_LAYOUT, "NFS4ERR_NOMATCHING_LAYOUT" },
143+
{ NFS4ERR_RECALLCONFLICT, "NFS4ERR_RECALLCONFLICT" },
144+
{ NFS4ERR_UNKNOWN_LAYOUTTYPE, "NFS4ERR_UNKNOWN_LAYOUTTYPE" },
145+
{ NFS4ERR_SEQ_MISORDERED, "NFS4ERR_SEQ_MISORDERED" },
146+
{ NFS4ERR_SEQUENCE_POS, "NFS4ERR_SEQUENCE_POS" },
147+
{ NFS4ERR_REQ_TOO_BIG, "NFS4ERR_REQ_TOO_BIG" },
148+
{ NFS4ERR_REP_TOO_BIG, "NFS4ERR_REP_TOO_BIG" },
149+
{ NFS4ERR_REP_TOO_BIG_TO_CACHE, "NFS4ERR_REP_TOO_BIG_TO_CACHE" },
150+
{ NFS4ERR_RETRY_UNCACHED_REP, "NFS4ERR_RETRY_UNCACHED_REP" },
151+
{ NFS4ERR_UNSAFE_COMPOUND, "NFS4ERR_UNSAFE_COMPOUND" },
152+
{ NFS4ERR_TOO_MANY_OPS, "NFS4ERR_TOO_MANY_OPS" },
153+
{ NFS4ERR_OP_NOT_IN_SESSION, "NFS4ERR_OP_NOT_IN_SESSION" },
154+
{ NFS4ERR_HASH_ALG_UNSUPP, "NFS4ERR_HASH_ALG_UNSUPP" },
155+
{ NFS4ERR_CLIENTID_BUSY, "NFS4ERR_CLIENTID_BUSY" },
156+
{ NFS4ERR_PNFS_IO_HOLE, "NFS4ERR_PNFS_IO_HOLE" },
157+
{ NFS4ERR_SEQ_FALSE_RETRY, "NFS4ERR_SEQ_FALSE_RETRY" },
158+
{ NFS4ERR_BAD_HIGH_SLOT, "NFS4ERR_BAD_HIGH_SLOT" },
159+
{ NFS4ERR_DEADSESSION, "NFS4ERR_DEADSESSION" },
160+
{ NFS4ERR_ENCR_ALG_UNSUPP, "NFS4ERR_ENCR_ALG_UNSUPP" },
161+
{ NFS4ERR_PNFS_NO_LAYOUT, "NFS4ERR_PNFS_NO_LAYOUT" },
162+
{ NFS4ERR_NOT_ONLY_OP, "NFS4ERR_NOT_ONLY_OP" },
163+
{ NFS4ERR_WRONG_CRED, "NFS4ERR_WRONG_CRED" },
164+
{ NFS4ERR_WRONG_TYPE, "NFS4ERR_WRONG_TYPE" },
165+
{ NFS4ERR_DIRDELEG_UNAVAIL, "NFS4ERR_DIRDELEG_UNAVAIL" },
166+
{ NFS4ERR_REJECT_DELEG, "NFS4ERR_REJECT_DELEG" },
167+
{ NFS4ERR_RETURNCONFLICT, "NFS4ERR_RETURNCONFLICT" },
168+
{ NFS4ERR_DELEG_REVOKED, "NFS4ERR_DELEG_REVOKED" },
169+
/* RFC 7862 NFSv4.2 */
170+
{ NFS4ERR_PARTNER_NOTSUPP, "NFS4ERR_PARTNER_NOTSUPP" },
171+
{ NFS4ERR_PARTNER_NO_AUTH, "NFS4ERR_PARTNER_NO_AUTH" },
172+
{ NFS4ERR_UNION_NOTSUPP, "NFS4ERR_UNION_NOTSUPP" },
173+
{ NFS4ERR_OFFLOAD_DENIED, "NFS4ERR_OFFLOAD_DENIED" },
174+
{ NFS4ERR_WRONG_LFS, "NFS4ERR_WRONG_LFS" },
175+
{ NFS4ERR_BADLABEL, "NFS4ERR_BADLABEL" },
176+
{ NFS4ERR_OFFLOAD_NO_REQS, "NFS4ERR_OFFLOAD_NO_REQS" },
177+
{ 0, NULL }
178+
};
179+
53180
/*
54181
* Mapping of old NFS Version 2 RPC numbers to generic numbers.
55182
*/
@@ -572,15 +699,7 @@ nfsreq_noaddr_print(netdissect_options *ndo,
572699
proc = GET_BE_U_4(&rp->rm_call.cb_proc);
573700

574701
if (GET_BE_U_4(&rp->rm_call.cb_vers) == NFS_VER4) {
575-
ND_PRINT(" v4");
576-
switch (proc) {
577-
case 0:
578-
ND_PRINT(" null");
579-
break;
580-
case 1:
581-
ND_PRINT(" compound");
582-
break;
583-
}
702+
ND_PRINT(" v4 %s", tok2str(nfsv4proc_str, "proc-%u", proc));
584703
return;
585704
}
586705

@@ -1131,6 +1250,24 @@ parsestatus(netdissect_options *ndo,
11311250
return (dp + 1);
11321251
}
11331252

1253+
static const uint32_t *
1254+
parsestatusv4(netdissect_options *ndo,
1255+
const uint32_t *dp, u_int *er, int *nfserrp)
1256+
{
1257+
u_int errnum;
1258+
1259+
errnum = GET_BE_U_4(dp);
1260+
if (er)
1261+
*er = errnum;
1262+
if (errnum != NFS4_OK) {
1263+
if (!ndo->ndo_qflag)
1264+
ND_PRINT(" ERROR: %s",
1265+
tok2str(status2strv4, "unk %u", errnum));
1266+
*nfserrp = 1;
1267+
}
1268+
return (dp + 1);
1269+
}
1270+
11341271
static const uint32_t *
11351272
parsefattr(netdissect_options *ndo,
11361273
const uint32_t *dp, int verbose, int v3)
@@ -1553,21 +1690,15 @@ interp_reply(netdissect_options *ndo,
15531690
int nfserr = 0;
15541691

15551692
if (vers == NFS_VER4) {
1556-
ND_PRINT(" v4");
1557-
switch (proc) {
1558-
case 0:
1559-
ND_PRINT(" null");
1560-
break;
1561-
case 1:
1562-
ND_PRINT(" compound");
1563-
break;
1693+
ND_PRINT(" v4 %s", tok2str(nfsv4proc_str, "proc-%u", proc));
1694+
if (proc == NFSV4PROC_COMPOUND) {
1695+
dp = parserep(ndo, rp, length, &nfserr);
1696+
if (dp == NULL)
1697+
goto trunc;
1698+
dp = parsestatusv4(ndo, dp, &er, &nfserr);
1699+
if (dp == NULL)
1700+
goto trunc;
15641701
}
1565-
dp = parserep(ndo, rp, length, &nfserr);
1566-
if (dp == NULL)
1567-
goto trunc;
1568-
dp = parsestatus(ndo, dp, &er, &nfserr);
1569-
if (dp == NULL)
1570-
goto trunc;
15711702
return;
15721703
}
15731704

tests/nfs-v4.out

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
1 08:48:53.854625 IP 192.168.200.177.671 > 192.168.200.1.2049: Flags [P.], seq 1022539785:1022539969, ack 556520858, win 1592, options [nop,nop,TS val 1549792688 ecr 1201363416], length 184: NFS request xid 1209063269 180 v4 compound
2-
2 08:48:53.855103 IP 192.168.200.1.2049 > 192.168.200.177.671: Flags [P.], seq 1:173, ack 184, win 1064, options [nop,nop,TS val 1201382193 ecr 1549792688], length 172: NFS reply xid 1209063269 reply ok 168 v4 compound
3-
3 08:48:53.855178 IP 192.168.200.177.671 > 192.168.200.1.2049: Flags [.], ack 173, win 1615, options [nop,nop,TS val 1549792689 ecr 1201382193], length 0
4-
4 08:48:53.855490 IP 192.168.200.177.671 > 192.168.200.1.2049: Flags [P.], seq 184:376, ack 173, win 1615, options [nop,nop,TS val 1549792689 ecr 1201382193], length 192: NFS request xid 1225840485 188 v4 compound
5-
5 08:48:53.855747 IP 192.168.200.1.2049 > 192.168.200.177.671: Flags [P.], seq 173:273, ack 376, win 1078, options [nop,nop,TS val 1201382194 ecr 1549792689], length 100: NFS reply xid 1225840485 reply ok 96 v4 compound ERROR: No such file or directory
6-
6 08:48:53.896607 IP 192.168.200.177.671 > 192.168.200.1.2049: Flags [.], ack 273, win 1615, options [nop,nop,TS val 1549792730 ecr 1201382194], length 0
1+
1 06:39:25.778133 IP 192.168.200.198.857 > 192.168.200.1.2049: Flags [P.], seq 3806116338:3806116382, ack 3240065782, win 229, options [nop,nop,TS val 190691472 ecr 193176172], length 44: NFS request xid 1710309038 40 v4 null
2+
2 06:39:25.778431 IP 192.168.200.1.2049 > 192.168.200.198.857: Flags [P.], seq 1:29, ack 44, win 227, options [nop,nop,TS val 193176172 ecr 190691472], length 28: NFS reply xid 1710309038 reply ok 24 v4 null
3+
3 06:39:25.778791 IP 192.168.200.198.857 > 192.168.200.1.2049: Flags [P.], seq 44:284, ack 29, win 229, options [nop,nop,TS val 190691473 ecr 193176172], length 240: NFS request xid 1727086254 236 v4 compound
4+
4 06:39:25.778965 IP 192.168.200.1.2049 > 192.168.200.198.857: Flags [P.], seq 29:133, ack 284, win 235, options [nop,nop,TS val 193176173 ecr 190691473], length 104: NFS reply xid 1727086254 reply ok 100 v4 compound
5+
5 06:39:35.254619 IP 192.168.200.198.857 > 192.168.200.1.2049: Flags [P.], seq 3584:3776, ack 3801, win 371, options [nop,nop,TS val 190700949 ecr 193185649], length 192: NFS request xid 2079407790 188 v4 compound
6+
6 06:39:35.254792 IP 192.168.200.1.2049 > 192.168.200.198.857: Flags [P.], seq 3801:3901, ack 3776, win 411, options [nop,nop,TS val 193185649 ecr 190700949], length 100: NFS reply xid 2079407790 reply ok 96 v4 compound ERROR: NFS4ERR_NOENT

tests/nfs-v4.pcap

228 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)