| // Copyright 2021 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 fuchsia.net; |
| |
| /// This capability is advertised via Overnet's peer discovery protocol when a given node is |
| /// reachable via UDP. |
| /// This allows discovery of UDP Overnet connectivity via Overnet, enabling for example: |
| /// * Using a low bandwidth (serial? bluetooth?) link to discover and bootstrap a higher bandwidth |
| /// UDP based link. |
| /// * Using an intermediate UDP based node to discover and connect directly to other UDP based |
| /// nodes. |
| @discoverable |
| protocol UdpReachable { |
| /// Hanging-get style returns the latest list of socket addresses that this node *may* be |
| /// reachable from. |
| /// This can change over time as extra sockets are added or removed, or NAT-ed addresses |
| /// for existing sockets are learned, or indeed as connected networks change. |
| GetPossibleAddressList() -> (struct { |
| address vector<fuchsia.net.SocketAddress>:MAX; |
| }); |
| }; |