Commit 4854480c authored by Mike Hibler's avatar Mike Hibler

Notes for how to handle master server V2 backward compat.

I ALMOST got sucked into making big changes that would have required
a version change.
parent b3fd821e
......@@ -421,6 +421,21 @@ typedef struct {
uint8_t imageid[MS_MAXIDLEN];
} __attribute__((__packed__)) GetRequest;
* TODO for V2 replies:
* - include mtime as distinct field, not as a signature
* (chances are, when we start using a different signature type, we will
* still want to know the mtime; e.g., for a cached copy),
* - include latest version num of image, if request is for unversioned image
* (this is so that requests for "emulab-ops/foo" to a subboss can be
* translated into the a request for the correct version),
* - first/last sectors covered by image as well as sector size
* (this would enable us to build a partition table entry on-the-fly for
* the partition we are writing the image to.)
* - uncompressed size of data in the image
* (gives the client a metric for estimating "time remaining" when
* laying down an image),
typedef struct {
uint8_t method;
uint8_t isrunning;
......@@ -935,6 +935,15 @@ PacketValid(Packet_t *p, int nchunks)
* Functions for communicating with the master server.
* TODO: protocol for negotiating the protocol version:
* On the client, send a request with our current version and:
* - get a version error back: server must be V01, so redo with V01
* - otherwise header reply contains version
* if not our version, must be a lower version, so redo with that version
* On the server:
* - version less than our current version, use that version
* - version greater than ours, reply with our version
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment