blob: 0f2cf2cc8dd6271220897aed66c32e49f553da0c [file] [log] [blame]
// 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.developer.ffx;
using fuchsia.device;
using fuchsia.net;
type TunnelError = strict enum {
/// Could not listen on the port from which we were attempting to forward.
COULD_NOT_LISTEN = 1;
/// Could not connect to the target to establish a tunnel.
TARGET_CONNECT_FAILED = 2;
};
@discoverable
protocol Tunnel {
/// Forwards a TCP port on the host to the target address, from the target node.
ForwardPort(struct {
target string:<fuchsia.device.DEVICE_NAME_MAX>;
host_address fuchsia.net.SocketAddress;
target_address fuchsia.net.SocketAddress;
}) -> (struct {}) error TunnelError;
/// Forwards a TCP port on the target to the host address, from the host.
ReversePort(struct {
target string:<fuchsia.device.DEVICE_NAME_MAX>;
host_address fuchsia.net.SocketAddress;
target_address fuchsia.net.SocketAddress;
}) -> (struct {}) error TunnelError;
};