blob: 48a73ab2be9553225811c174175be7a3ec0a9d28 [file] [log] [blame]
package proxy
// The proxy protocol is:
// (1) Server establishes a VC to the proxy to register its routing id and authenticate.
// (2) The server opens a flow and sends a "Request" message and waits for a "Response"
// message.
// (3) This flow is then kept alive with no more data read/written.
// Closure of this flow indicates that proxying has (or should be) stopped.
// (4) The proxy immediately closes any other flows on the VC.
// Request is the message sent by a server to request that the proxy route
// traffic intended for the server's RoutingID to the network connection
// between the server and the proxy.
type Request struct {
// TODO(ashankar): Things that will go in here include the mounttable and the name
// the server wants the proxy to use when mounting the server on the mounttable,
// possibly a blessing to give the proxy the credentials required to act as the
// server as far as the mounttable is concerned.
}
// Response is sent by the proxy to the server after processing Request.
type Response struct {
// Error is a description of why the proxy refused to proxy the server.
// A nil error indicates that the proxy will route traffic to the server.
Error error
}