Subject: [PATCH] NFSv4 decoding for Ethereal

From: "Mike Frisch" <[email-masked]>
Date: Wed, 1 Nov 2000 15:14:56 -0500

As per our discussion at the Bake Off last week, I have created a patch for
Ethereal (free network protocol analyzer for Unix and Windows -
www.ethereal.com) that adds decoding for NFSv4 as per Draft Specification
07.

The patch may be retrieved from my website at:

http://saturn.tlug.org/~mfrisch/nfsv4.patch

(If you cannot access this site, please email me and I'll email the patch;
it's about 60k)

It _should_ apply cleanly to the latest version of Ethereal (0.8.13) using
the following procedure:

$ zcat ethereal-0.8.13.tar.gz | tar -xf -
$ cd ethereal-0.8.13
$ patch -p1 </path/to/nfsv4.patch
$ ./configure ...

As it is quite probable that this patch contains bugs :-), I would strongly
recommend that one uses tcpdump to capture network traffic to a file (using
'-w' option) and then load that capture into Ethereal.  The alternative is
to capture from within Ethereal and risk a segfault (causing loss of
captured data) in the event that my patch is buggy.

(NOTE:  For users of Ethereal 0.8.12, I would _strongly_ recommend updating
to 0.8.13 for performance reasons.  I have found that packet dumps that take
minutes to load in 0.8.12 load instantaneously in 0.8.13)

The added (useful) identifiers for the display filter mechanism are:

nfs.call.operation
nfs.reply.operation
nfs.open.claim_type
nfs.open.opentype
nfs.open.delegation_type
nfs.ftype4
nfs.nfsstat4

For example, using a filter like "nfs.call.operation == 18" will colorize
all RPC calls containing NFSv4 operation 18 (OPEN).

"nfs.nfsstat4 != 0" would filter all failed status codes in COMPOUND
replies.  Very useful for debugging!

If you have any feedback, fixes, comments, suggestions, etc., please email
them to me at [email-masked].

Mike.

---
  Mike Frisch
  Software Engineer, Connectivity
  Hummingbird - http://www.hummingbird.com