Wireshark mailing list archives

[PATCH] Tweaked NFSv4 packet dissectors for wireshark


From: Steve Dickson <SteveD () redhat com>
Date: Fri, 20 May 2011 10:21:05 -0400

Hello,

Here are a couple tweaks to the NFSv4 dissectors
that will show all the ops and their status on in the
packet detail window. Showing all the ops in that 
window I think works well the new configuration
of only showing 'significant' v4 opts in the packet 
list window. Plus there is plenty of  real estate
on that line. 
 
I also put NFS4_OP_SEQUENCE on the same tier as NFS4_OP_PUTFH
since when NFSv4.1 is used, the SEQUENCE will in every 
compound like PUTFHs are.

Please cc me with any comments since I am not a member of
this list.

tia,

steved. 


Index: epan/dissectors/packet-nfs.c
===================================================================
--- epan/dissectors/packet-nfs.c        (revision 37323)
+++ epan/dissectors/packet-nfs.c        (working copy)
@@ -768,7 +768,7 @@
                 1 /* 50, NFS4_OP_LAYOUTGET */,
                 1 /* 51, NFS4_OP_LAYOUTRETURN */,
                 1 /* 52, NFS4_OP_SECINFO_NO_NAME */,
-                1 /* 53, NFS4_OP_SEQUENCE */,
+                4 /* 53, NFS4_OP_SEQUENCE */,
                 1 /* 54, NFS4_OP_SET_SSV */,
                 1 /* 55, NFS4_OP_TEST_STATEID */,
                 1 /* 56, NFS4_OP_WANT_DELEGATION  */,
@@ -8970,6 +8970,8 @@
                ftree = proto_item_add_subtree(fitem, ett_nfs_argop4);
        }
 
+       proto_item_append_text(tree, ", Ops(%d):", ops);
+
        for (ops_counter=0; ops_counter<ops; ops_counter++)
        {
                op_summary[ops_counter].optext = g_string_new("");
@@ -9003,6 +9005,7 @@
                g_string_printf (op_summary[ops_counter].optext, "%s",
                                  val_to_str_ext_const(opcode, &names_nfsv4_operation_ext, "Unknown"));
 
+               proto_item_append_text(tree, " %s", opname);
 
                switch(opcode)
                {
@@ -9621,6 +9624,8 @@
                ftree = proto_item_add_subtree(fitem, ett_nfs_resop4);
        }
 
+       proto_item_append_text(tree, ", Ops(%d):", ops);
+
        for (ops_counter = 0; ops_counter < ops; ops_counter++)
        {
                op_summary[ops_counter].optext = g_string_new("");
@@ -9654,6 +9659,12 @@
                g_string_append_printf (op_summary[ops_counter].optext, "%s", opname);
 
                offset = dissect_nfs_nfsstat4(tvb, offset, newftree, &status);
+               if (status != NFS4_OK) {
+                       proto_item_append_text(tree, " %s(%s)", opname,
+                               val_to_str_ext(status, &names_nfs_stat_ext, "Unknown error:%u"));
+               } else {
+                       proto_item_append_text(tree, " %s", opname);
+               }
 
                /*
                 * With the exception of NFS4_OP_LOCK, NFS4_OP_LOCKT, and
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev () wireshark org>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org?subject=unsubscribe


Current thread: