[OpenAFS-devel] rxosd protocol notes: part 1, changes to established protocol

Matt Benjamin matt@linuxbox.com
Sat, 08 Nov 2008 09:47:50 -0500


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi All,

Simon proposed yesterday in the openafs conference that there should be
some protocol discussion and review in the rxosd merge process.

It seems to me the first thing is for openafs to discuss the issues,
creating a proposal to afs3-standardization if the outcome of that is
actually protocol change...

Next, the first and smaller order of business, as Jeff points out, is
presumably discussion of the (few) changes rxosd makes to existing AFS
protocol.

diffs:

Rxosd adds its own protocol structures and messages, but leaving those
aside for now, it also steals some bits of existing structures to adapt
current messages, basically in two places.

afsint.xg

1. SyncCounter field (no longer used [officially]) is renamed Protocol,
claiming it.

@@ -99,7 +99,7 @@
     afs_uint32 ClientModTime;
     afs_uint32 ServerModTime;
     afs_uint32 Group;
- -    afs_uint32 SyncCounter;
+    afs_uint32 Protocol;
     afs_uint32 dataVersionHigh; /* For AFS/DFS translator, hi bits of
dvn */
     afs_uint32 lockCount;
     afs_uint32 Length_hi;
@@ -115,6 +115,10 @@
     afs_uint32 SegSize;
 };

Unfortunately, Derrick also stole SyncCounter after IMing with Jeff and
probably JHutz or Chaskiel (the Zephyr method), and so SyncCounter in
some cases means a volume's last update time, if the FetchVStatus
feature is implemented.

Both of these uses seem well justified, so apparently, we've just hit
the obvious point where we discuss whether we need to uplevel
AFSFetchStatus, the various messages which use it, etc.  I wonder
whether there hasn't been a long-delayed update lurking here, and how
people had figured we'd eventually fix it, when it eventually arrived.
Presumably we need a new, better AFSFetchStatus versioned structure, or
the union equivalent, and a corresponding interface extension?

volint.xg

1. struct volser_status is altered, spare0 and spare3 spare fields are
renamed (claimed) as osdFlag and filequota, respsectively

struct volser_status {
@@ -111,10 +130,10 @@
     int maxquota;
     int size;
     afs_int32 flags;            /* used by the backup system */
- -    afs_int32 spare0;           /* Used to hold the minquota value */
+    afs_int32 osdFlag;          /* whether and how to use object storage */
     afs_int32 spare1;           /* Used to hold the weekuse value */
- -    afs_int32 spare2;
- -    afs_int32 spare3;
+    afs_int32 spare2;           /* Used to hold the updateCount  */
+    afs_int32 filequota;        /* max. number of files MR-AFS / AFS+OSD */
 };

I'm not certain this change is controversial or poses any immediate
problem.  Volser mavens?


Matt

- --

Matt Benjamin

The Linux Box
206 South Fifth Ave. Suite 150
Ann Arbor, MI  48104

http://linuxbox.com

tel. 734-761-4689
fax. 734-769-8938
cel. 734-216-5309

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFJFaaWJiSUUSaRdSURCPIIAJ9oAw56txzCWil9laBdycXM2aeQGQCZAZcD
Qybmfa7+QWV/5wuR8cS0mDo=
=We5a
-----END PGP SIGNATURE-----