diff options
-rw-r--r-- | packet-afs-defs.h | 23 | ||||
-rw-r--r-- | packet-afs-macros.h | 37 | ||||
-rw-r--r-- | packet-afs-register-info.h | 32 | ||||
-rw-r--r-- | packet-afs.c | 121 |
4 files changed, 200 insertions, 13 deletions
diff --git a/packet-afs-defs.h b/packet-afs-defs.h index cd05246218..2fb2ebd5a9 100644 --- a/packet-afs-defs.h +++ b/packet-afs-defs.h @@ -8,7 +8,7 @@ * Portions based on information/specs retrieved from the OpenAFS sources at * www.openafs.org, Copyright IBM. * - * $Id: packet-afs-defs.h,v 1.1 2000/11/03 17:32:51 nneul Exp $ + * $Id: packet-afs-defs.h,v 1.2 2000/11/03 18:37:24 nneul Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -469,6 +469,14 @@ static const value_string ubik_lock_types[] = { { 0, NULL }, }; +static const value_string vice_lock_types[] = { + { 0, "read" }, + { 1, "write" }, + { 2, "extend" }, + { 3, "release" }, + { 0, NULL }, +}; + static const value_string volume_types[] = { { 0, "read-write" }, { 1, "read-only" }, @@ -519,6 +527,13 @@ static int hf_afs_fs_symlink_content = -1; static int hf_afs_fs_volid = -1; static int hf_afs_fs_volname = -1; static int hf_afs_fs_timestamp = -1; +static int hf_afs_fs_offlinemsg = -1; +static int hf_afs_fs_motd = -1; +static int hf_afs_fs_xstats_version = -1; +static int hf_afs_fs_xstats_timestamp = -1; +static int hf_afs_fs_cps_spare2 = -1; +static int hf_afs_fs_cps_spare3 = -1; +static int hf_afs_fs_vicelocktype = -1; static int hf_afs_fs_status_anonymousaccess = -1; static int hf_afs_fs_status_author = -1; @@ -549,6 +564,12 @@ static int hf_afs_fs_status_spare3 = -1; static int hf_afs_fs_status_spare4 = -1; static int hf_afs_fs_status_synccounter = -1; +static int hf_afs_fs_volsync_spare1 = -1; +static int hf_afs_fs_volsync_spare2 = -1; +static int hf_afs_fs_volsync_spare3 = -1; +static int hf_afs_fs_volsync_spare4 = -1; +static int hf_afs_fs_volsync_spare5 = -1; +static int hf_afs_fs_volsync_spare6 = -1; static int hf_afs_fs_acl_datasize = -1; static int hf_afs_fs_acl_count_negative = -1; diff --git a/packet-afs-macros.h b/packet-afs-macros.h index 998da3ca82..4942f678e8 100644 --- a/packet-afs-macros.h +++ b/packet-afs-macros.h @@ -8,7 +8,7 @@ * Portions based on information/specs retrieved from the OpenAFS sources at * www.openafs.org, Copyright IBM. * - * $Id: packet-afs-macros.h,v 1.1 2000/11/03 17:32:51 nneul Exp $ + * $Id: packet-afs-macros.h,v 1.2 2000/11/03 18:37:24 nneul Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -190,7 +190,7 @@ /* Output a FetchStatus */ #define OUT_FS_AFSFetchStatus(label) \ { proto_tree *save, *ti; \ - ti = proto_tree_add_text(tree, NullTVB, curoffset, 6*4, \ + ti = proto_tree_add_text(tree, NullTVB, curoffset, 21*4, \ label); \ save = tree; \ tree = proto_item_add_subtree(ti, ett_afs_status); \ @@ -220,8 +220,18 @@ /* Output a VolSync */ #define OUT_FS_AFSVolSync() \ - { \ - SKIP(6*sizeof(guint32)); \ + { proto_tree *save, *ti; \ + ti = proto_tree_add_text(tree, NullTVB, curoffset, 6*4, \ + "VolSync"); \ + save = tree; \ + tree = proto_item_add_subtree(ti, ett_afs_volsync); \ + OUT_UINT(hf_afs_fs_volsync_spare1); \ + OUT_UINT(hf_afs_fs_volsync_spare2); \ + OUT_UINT(hf_afs_fs_volsync_spare3); \ + OUT_UINT(hf_afs_fs_volsync_spare4); \ + OUT_UINT(hf_afs_fs_volsync_spare5); \ + OUT_UINT(hf_afs_fs_volsync_spare6); \ + tree = save; \ } /* Output a AFSCBFids */ @@ -230,8 +240,23 @@ /* Output a AFSCBs */ #define OUT_FS_AFSCBs() -/* Output a ViceLockType */ -#define OUT_FS_ViceLockType() +/* Output a AFSBulkStats */ +#define OUT_FS_AFSBulkStats() + +/* Output a AFSFetchVolumeStatus */ +#define OUT_FS_AFSFetchVolumeStatus() + +/* Output a AFSStoreVolumeStatus */ +#define OUT_FS_AFSStoreVolumeStatus() + +/* Output a ViceStatistics structure */ +#define OUT_FS_ViceStatistics() + +/* Output a AFS_CollData structure */ +#define OUT_FS_AFS_CollData() + +/* Output a VolumeInfo structure */ +#define OUT_FS_VolumeInfo() /* Output a AFS acl */ #define ACLOUT(who, positive, acl, bytes) \ diff --git a/packet-afs-register-info.h b/packet-afs-register-info.h index a39d7da100..c12356265a 100644 --- a/packet-afs-register-info.h +++ b/packet-afs-register-info.h @@ -8,7 +8,7 @@ * Portions based on information/specs retrieved from the OpenAFS sources at * www.openafs.org, Copyright IBM. * - * $Id: packet-afs-register-info.h,v 1.1 2000/11/03 17:32:51 nneul Exp $ + * $Id: packet-afs-register-info.h,v 1.2 2000/11/03 18:37:24 nneul Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -133,7 +133,21 @@ FT_STRING, BASE_HEX, 0, 0, "Volume Name" }}, { &hf_afs_fs_timestamp, { "Timestamp", "afs.fs.timestamp", FT_ABSOLUTE_TIME, BASE_DEC, 0, 0, "Timestamp" }}, - +{ &hf_afs_fs_offlinemsg, { "Offline Message", "afs.fs.offlinemsg", + FT_STRING, BASE_HEX, 0, 0, "Volume Name" }}, +{ &hf_afs_fs_motd, { "Message of the Day", "afs.fs.motd", + FT_STRING, BASE_HEX, 0, 0, "Message of the Day" }}, +{ &hf_afs_fs_xstats_version, { "XStats Version", "afs.fs.xstats.version", + FT_UINT32, BASE_DEC, 0, 0, "XStats Version" }}, +{ &hf_afs_fs_xstats_timestamp, { "XStats Timestamp", "afs.fs.xstats.timestamp", + FT_UINT32, BASE_DEC, 0, 0, "XStats Timestamp" }}, +{ &hf_afs_fs_cps_spare2, { "CPS Spare2", "afs.fs.cps.spare2", + FT_UINT32, BASE_DEC, 0, 0, "CPS Spare2" }}, +{ &hf_afs_fs_cps_spare3, { "CPS Spare3", "afs.fs.cps.spare3", + FT_UINT32, BASE_DEC, 0, 0, "CPS Spare3" }}, +{ &hf_afs_fs_vicelocktype, { "Vice Lock Type", "afs.fs.vicelocktype", + FT_UINT32, BASE_DEC, VALS(vice_lock_types), 0, "Vice Lock Type" }}, + { &hf_afs_fs_status_mask, { "Mask", "afs.fs.status.mask", FT_UINT32, BASE_HEX, 0, 0, "Mask" }}, { &hf_afs_fs_status_mask_setmodtime, { "Set Modification Time", "afs.fs.status.mask.setmodtime", @@ -192,6 +206,20 @@ FT_UINT32, BASE_DEC, 0, 0, "Length" }}, +{ &hf_afs_fs_volsync_spare1, { "Spare 1", "afs.fs.volsync.spare1", + FT_UINT32, BASE_DEC, 0, 0, "Spare 1" }}, +{ &hf_afs_fs_volsync_spare2, { "Spare 2", "afs.fs.volsync.spare2", + FT_UINT32, BASE_DEC, 0, 0, "Spare 2" }}, +{ &hf_afs_fs_volsync_spare3, { "Spare 3", "afs.fs.volsync.spare3", + FT_UINT32, BASE_DEC, 0, 0, "Spare 3" }}, +{ &hf_afs_fs_volsync_spare4, { "Spare 4", "afs.fs.volsync.spare4", + FT_UINT32, BASE_DEC, 0, 0, "Spare 4" }}, +{ &hf_afs_fs_volsync_spare5, { "Spare 5", "afs.fs.volsync.spare5", + FT_UINT32, BASE_DEC, 0, 0, "Spare 5" }}, +{ &hf_afs_fs_volsync_spare6, { "Spare 6", "afs.fs.volsync.spare6", + FT_UINT32, BASE_DEC, 0, 0, "Spare 6" }}, + + { &hf_afs_fs_acl_count_positive, { "ACL Count (Positive)", "afs.fs.acl.count.positive", FT_UINT32, BASE_DEC, diff --git a/packet-afs.c b/packet-afs.c index d681cd7345..602e65e31a 100644 --- a/packet-afs.c +++ b/packet-afs.c @@ -8,7 +8,7 @@ * Portions based on information/specs retrieved from the OpenAFS sources at * www.openafs.org, Copyright IBM. * - * $Id: packet-afs.c,v 1.19 2000/11/03 17:32:51 nneul Exp $ + * $Id: packet-afs.c,v 1.20 2000/11/03 18:37:24 nneul Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -533,24 +533,137 @@ dissect_fs_reply(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, case 132: /* Fetch status */ OUT_FS_AFSFetchStatus("Status"); OUT_FS_AFSCallBack(); - OUT_FS_AFSVolSync(); - /* left off here */ + OUT_FS_AFSVolSync(); + break; + case 133: /* Store data */ + OUT_FS_AFSFetchStatus("Status"); + OUT_FS_AFSVolSync(); + break; + case 134: /* Store ACL */ + OUT_FS_AFSFetchStatus("Status"); + OUT_FS_AFSVolSync(); + break; case 135: /* Store status */ OUT_FS_AFSFetchStatus("Status"); OUT_FS_AFSVolSync(); break; + case 136: /* Remove file */ + OUT_FS_AFSFetchStatus("Status"); + OUT_FS_AFSVolSync(); + break; case 137: /* create file */ OUT_FS_AFSFid("New File"); + OUT_FS_AFSFetchStatus("File Status"); + OUT_FS_AFSFetchStatus("Directory Status"); + OUT_FS_AFSCallBack(); + OUT_FS_AFSVolSync(); break; + case 138: /* rename */ + OUT_FS_AFSFetchStatus("Old Directory Status"); + OUT_FS_AFSFetchStatus("New Directory Status"); + OUT_FS_AFSVolSync(); + break; + case 139: /* symlink */ + OUT_FS_AFSFid("Symlink"); + OUT_FS_AFSFetchStatus("Symlink Status"); + OUT_FS_AFSFetchStatus("Directory Status"); + OUT_FS_AFSVolSync(); + break; + case 140: /* link */ + OUT_FS_AFSFetchStatus("Symlink Status"); + OUT_FS_AFSFetchStatus("Directory Status"); + OUT_FS_AFSVolSync(); + break; case 141: /* make dir */ OUT_FS_AFSFid("New Directory"); + OUT_FS_AFSFetchStatus("File Status"); + OUT_FS_AFSFetchStatus("Directory Status"); + OUT_FS_AFSCallBack(); + OUT_FS_AFSVolSync(); + break; + case 142: /* rmdir */ + OUT_FS_AFSFetchStatus("Directory Status"); + OUT_FS_AFSVolSync(); + break; + case 143: /* old set lock */ + /* nothing returned */ + break; + case 144: /* old extend lock */ + /* nothing returned */ + break; + case 145: /* old release lock */ + /* nothing returned */ + break; + case 146: /* get statistics */ + OUT_FS_ViceStatistics(); + break; + case 147: /* give up callbacks */ + /* nothing returned */ + break; + case 148: /* get volume info */ + OUT_FS_VolumeInfo(); + break; + case 149: /* get volume status */ + OUT_FS_AFSFetchVolumeStatus(); + OUT_STRING(hf_afs_fs_volname); + OUT_STRING(hf_afs_fs_offlinemsg); + OUT_STRING(hf_afs_fs_motd); + break; + case 150: /* set volume status */ + /* nothing returned */ break; case 151: /* root volume */ OUT_STRING(hf_afs_fs_volname); break; + case 152: /* check token */ + /* nothing returned */ + break; case 153: /* get time */ OUT_TIMESTAMP(hf_afs_fs_timestamp); break; + case 154: /* n-get-volume-info */ + OUT_FS_VolumeInfo(); + break; + case 155: /* bulk status */ + OUT_FS_AFSBulkStats(); + OUT_FS_AFSCBs(); + OUT_FS_AFSVolSync(); + break; + case 156: /* set lock */ + OUT_FS_AFSVolSync(); + break; + case 157: /* extend lock */ + OUT_FS_AFSVolSync(); + break; + case 158: /* release lock */ + OUT_FS_AFSVolSync(); + break; + case 159: /* x-stats-version */ + OUT_UINT(hf_afs_fs_xstats_version); + break; + case 160: /* get xstats */ + OUT_UINT(hf_afs_fs_xstats_version); + OUT_DATE(hf_afs_fs_xstats_timestamp); + OUT_FS_AFS_CollData(); + break; + case 161: /* lookup */ + OUT_FS_AFSFid("File"); + OUT_FS_AFSFetchStatus("File Status"); + OUT_FS_AFSFetchStatus("Directory Status"); + OUT_FS_AFSCallBack(); + OUT_FS_AFSVolSync(); + break; + case 162: /* flush cps */ + OUT_UINT(hf_afs_fs_cps_spare2); + OUT_UINT(hf_afs_fs_cps_spare3); + break; + case 163: /* dfs symlink */ + OUT_FS_AFSFid("File"); + OUT_FS_AFSFetchStatus("File Status"); + OUT_FS_AFSFetchStatus("Directory Status"); + OUT_FS_AFSCallBack(); + OUT_FS_AFSVolSync(); + break; } } else if ( rxh->type == RX_PACKET_TYPE_ABORT ) @@ -638,7 +751,7 @@ dissect_fs_request(const u_char *pd, int offset, frame_data *fd, proto_tree *tre break; case 143: /* Old Set Lock */ OUT_FS_AFSFid("Target"); - OUT_FS_ViceLockType(); + OUT_UINT(hf_afs_fs_vicelocktype); OUT_FS_AFSVolSync(); break; case 144: /* Old Extend Lock */ |