Message ID | 1485989059-28706-1-git-send-email-agruenba@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Feb 1, 2017 at 5:44 PM, Andreas Gruenbacher <agruenba@redhat.com> wrote: > From: "J. Bruce Fields" <bfields@fieldses.org> > > On Wed, Feb 1, 2017 at 10:31 PM, Olga Kornievskaia <aglo@umich.edu> wrote: >> Any plans to add wireshark support for this? > > We did, yes. Bruce had posted that together with the very first version. I > couldn't find the wireshark patch for the current version of the proposal in > the mailing list archive, so here's that. > > Andreas > > -- > > NFSv4.2 umask support > > --- > epan/dissectors/packet-nfs.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/epan/dissectors/packet-nfs.c b/epan/dissectors/packet-nfs.c > index 6d1dd3b..5f2ce42 100644 > --- a/epan/dissectors/packet-nfs.c > +++ b/epan/dissectors/packet-nfs.c > @@ -420,6 +420,7 @@ static int hf_nfs4_fattr_layout_blksize = -1; > static int hf_nfs4_fattr_security_label_lfs = -1; > static int hf_nfs4_fattr_security_label_pi = -1; > static int hf_nfs4_fattr_security_label_context = -1; > +static int hf_nfs4_fattr_umask_mask = -1; > static int hf_nfs4_who = -1; > static int hf_nfs4_server = -1; > static int hf_nfs4_fslocation = -1; > @@ -6133,6 +6134,8 @@ static const value_string fattr4_names[] = { > { FATTR4_CHANGE_ATTR_TYPE, "Change_Attr_Type" }, > #define FATTR4_SECURITY_LABEL 80 > { FATTR4_SECURITY_LABEL, "Security_Label" }, > +#define FATTR4_MODE_UMASK 81 > + { FATTR4_MODE_UMASK, "Mode_Umask" }, > { 0, NULL } > }; > static value_string_ext fattr4_names_ext = VALUE_STRING_EXT_INIT(fattr4_names); > @@ -6717,6 +6720,14 @@ dissect_nfs4_security_label(tvbuff_t *tvb, proto_tree *tree, int offset) > return offset; > } > > +static int > +dissect_nfs4_mode_umask(tvbuff_t *tvb, proto_tree *tree, int offset) > +{ > + offset = dissect_nfs4_mode(tvb, offset, tree); > + offset = dissect_rpc_uint32(tvb, tree, hf_nfs4_fattr_umask_mask, offset); > + return offset; > +} > + > #define FATTR4_BITMAP_ONLY 0 > #define FATTR4_DISSECT_VALUES 1 > > @@ -7119,6 +7130,10 @@ dissect_nfs4_fattrs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *t > offset = dissect_nfs4_security_label(tvb, attr_tree, offset); > break; > > + case FATTR4_MODE_UMASK: > + offset = dissect_nfs4_mode_umask(tvb, attr_tree, offset); > + break; > + > default: > break; > } > @@ -12509,6 +12524,10 @@ proto_register_nfs(void) > "label_format", "nfs.fattr4.security_label.lfs", FT_UINT32, BASE_DEC, > NULL, 0, NULL, HFILL }}, > > + { &hf_nfs4_fattr_umask_mask, { > + "umask", "nfs.fattr4.umask", FT_UINT32, BASE_OCT, > + NULL, 0, NULL, HFILL }}, > + > { &hf_nfs4_fattr_security_label_pi, { > "policy_id", "nfs.fattr4.security_label.pi", FT_UINT32, BASE_DEC, > NULL, 0, NULL, HFILL }}, > -- > 2.7.4 Thank you Andreas. I have tried this patch and it decodes the OPEN compounds ok. Previously it's been garbage past the unknown attribute with value 81. -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/epan/dissectors/packet-nfs.c b/epan/dissectors/packet-nfs.c index 6d1dd3b..5f2ce42 100644 --- a/epan/dissectors/packet-nfs.c +++ b/epan/dissectors/packet-nfs.c @@ -420,6 +420,7 @@ static int hf_nfs4_fattr_layout_blksize = -1; static int hf_nfs4_fattr_security_label_lfs = -1; static int hf_nfs4_fattr_security_label_pi = -1; static int hf_nfs4_fattr_security_label_context = -1; +static int hf_nfs4_fattr_umask_mask = -1; static int hf_nfs4_who = -1; static int hf_nfs4_server = -1; static int hf_nfs4_fslocation = -1; @@ -6133,6 +6134,8 @@ static const value_string fattr4_names[] = { { FATTR4_CHANGE_ATTR_TYPE, "Change_Attr_Type" }, #define FATTR4_SECURITY_LABEL 80 { FATTR4_SECURITY_LABEL, "Security_Label" }, +#define FATTR4_MODE_UMASK 81 + { FATTR4_MODE_UMASK, "Mode_Umask" }, { 0, NULL } }; static value_string_ext fattr4_names_ext = VALUE_STRING_EXT_INIT(fattr4_names); @@ -6717,6 +6720,14 @@ dissect_nfs4_security_label(tvbuff_t *tvb, proto_tree *tree, int offset) return offset; } +static int +dissect_nfs4_mode_umask(tvbuff_t *tvb, proto_tree *tree, int offset) +{ + offset = dissect_nfs4_mode(tvb, offset, tree); + offset = dissect_rpc_uint32(tvb, tree, hf_nfs4_fattr_umask_mask, offset); + return offset; +} + #define FATTR4_BITMAP_ONLY 0 #define FATTR4_DISSECT_VALUES 1 @@ -7119,6 +7130,10 @@ dissect_nfs4_fattrs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *t offset = dissect_nfs4_security_label(tvb, attr_tree, offset); break; + case FATTR4_MODE_UMASK: + offset = dissect_nfs4_mode_umask(tvb, attr_tree, offset); + break; + default: break; } @@ -12509,6 +12524,10 @@ proto_register_nfs(void) "label_format", "nfs.fattr4.security_label.lfs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_nfs4_fattr_umask_mask, { + "umask", "nfs.fattr4.umask", FT_UINT32, BASE_OCT, + NULL, 0, NULL, HFILL }}, + { &hf_nfs4_fattr_security_label_pi, { "policy_id", "nfs.fattr4.security_label.pi", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},