blob: f5ec74b63ae346b514d85de67a8ac9df626bc645 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.overnet.protocol;
using zx;
/// A single message proxied from a Zircon channel over an Overnet stream.
struct ZirconChannelMessage {
/// Bytes part of the payload.
vector<uint8>:zx.CHANNEL_MAX_MSG_BYTES bytes;
/// Handles part of the payload.
vector<ZirconHandle>:zx.CHANNEL_MAX_MSG_HANDLES handles;
};
/// A single handle to be proxied.
/// Not all Zircon types are supported.
strict xunion ZirconHandle {
/// A proxied channel.
ChannelHandle channel;
/// A proxied socket.
SocketHandle socket;
};
/// A proxied channel.
struct ChannelHandle {
/// The Overnet proxy stream that was created to carry this channel.
/// The protocol over said stream will be a `ZirconChannel`.
StreamId stream_id;
};
/// A proxied socket.
struct SocketHandle {
/// The Overnet proxy stream that was created to carry this socket.
/// The protocol over said stream will be a `ZirconSocket`.
StreamId stream_id;
/// Socket options, per `zx_socket_create`.
uint32 options;
};