blob: badab0a2ce18eae8594e178413477d4153864598 [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;
/// Identifies a single overnet stream between two processes on the Overnet mesh
struct StreamId {
uint64 id;
};
/// Address of a node on the overlay network.
struct NodeId {
uint64 id;
};
/// Node-local link label
using LinkId = uint64;
/// Reliability and ordering constraints for a stream.
enum ReliabilityAndOrdering {
/// Datagrams are delivered reliably in an ordered fashion.
ReliableOrdered = 1;
/// Datagrams are delivered unreliably, yet order between messages is maintained.
UnreliableOrdered = 2;
/// Datagrams are delivered reliably, but may be delivered out of order.
ReliableUnordered = 3;
/// No guarantees on ordering or reliability. Note that messages will be delivered
/// at most once.
UnreliableUnordered = 4;
/// Messages are delivered in order. The most recently sent message is considered
/// reliable, while all other messages are considered unreliable.
TailReliable = 5;
};