blob: a6a3d52e51859af2232839f8581fc4cdbdd63f31 [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;
/// Peer-to-peer protocol between two Overnet nodes.
/// Each end of the Overnet connection stream implements this protocol.
[Transport="OvernetInternal"]
protocol Peer {
/// Create a new stream, labelled `stream_id`, to communicate with the
/// advertised service `service_name`.
ConnectToService(string service_name, StreamId stream_id);
/// Ping request/response. Return value is the amount of time the service
/// used to fulfill the response.
Ping() -> (zx.time response);
/// Update the description of a single node.
/// This message is broadcast from a node whenever the description changes.
UpdateNodeDescription(PeerDescription desc);
/// Gossip routing: update the status of a single node.
UpdateNodeStatus(NodeStatus node);
/// Gossip routing: update the status of a single link between nodes.
UpdateLinkStatus(LinkStatus link);
};