Commit Briefs

Stephen J Day

fs/p9p/new: various client and server cleanup

Signed-off-by: Stephen J Day <stephen.day@docker.com>


Stephen J Day

fs/p9p/new: add documentation comment for package

Signed-off-by: Stephen J Day <stephen.day@docker.com>


Stephen J Day

fs/p9p/new: cleanup encoding/decoding

We take some time to cleanup the codec implementation. The need for the message to implement the Message interface has been removed to allow flexibility in what can land in the message field. Error types can be returned directly now. The messages have been moved into a separate file. We also ensure that the number of pointer types is reduced in deserialized messages, hopefully avoiding unnecessary pointer traversal. Signed-off-by: Stephen J Day <stephen.day@docker.com>


Stephen J Day

fs/p9p/new: add version to context

Signed-off-by: Stephen J Day <stephen.day@docker.com>


Stephen J Day

fs/p9p/new: refactor to use interface for channel

Signed-off-by: Stephen J Day <stephen.day@docker.com>


Stephen J Day

fs/p9p/new: correct message encoding for Rerror message

Signed-off-by: Stephen J Day <stephen.day@docker.com>


Stephen J Day

fs/p9p/new: proxy end to end fully working

Signed-off-by: Stephen J Day <stephen.day@docker.com>


Stephen J Day

fs/p9p/new: initial implementation of 9ps

To begin testing the server implementation, we defined a 9ps cmd. This simply proxies a client connection to a running ufs server but should let us develop a prototype without implementing all of ufs. Signed-off-by: Stephen J Day <stephen.day@docker.com>


Stephen J Day

fs/p9p/new: fix cat command in 9pr

Signed-off-by: Stephen J Day <stephen.day@docker.com>


Stephen J Day

fs/p9p/new: allow 9pr configurable by flags

Signed-off-by: Stephen J Day <stephen.day@docker.com>


Stephen J Day

fs/p9p/new: stat implementation and correct dir/Rstat encoding

Signed-off-by: Stephen J Day <stephen.day@docker.com>


Stephen J Day

fs/p9p/new: remove unused tagsPool implementation

Signed-off-by: Stephen J Day <stephen.day@docker.com>


Stephen J Day

fs/p9p/new: fully working ls with ufs

The repl and client session work fully with rminnich/go9p/ufs. The key to this was proper support for directory serialization, which is subtle. The size field for Rread was the incorrect size. Several robustness improvements are also included. Issues with the timeouts and missing error returns have been addressed. Signed-off-by: Stephen J Day <stephen.day@docker.com>


Stephen J Day

fs/p9p/new: refactor channel framing

After a few connection bugs and framing issues, the transport has been refactored into a channel that manages raw message sending. More importantly, this frees up pre-session protocol version negotiation. To support this, the encoder and decoder have been folded into a Codec interface. The encoding support still needs work, but this has made the server and client code much simpler to understand. Signed-off-by: Stephen J Day <stephen.day@docker.com>


Stephen J Day

fs/p9p/new: ls and cat command now fully working

Signed-off-by: Stephen J Day <stephen.day@docker.com>