blob: 0464969a7859289cd38c0fc3165ce465875de315 [file] [log] [blame]
// Copyright 2020 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.hardware.network;
/// An instance of a network device that may be capable of MAC address filtering.
// NOTE(brunodalbo) This is a temporary solution to provide the two main protocols offered by the
// fuchsia.hardware.network library. This is the protocol exposed in devfs by devices that support
// its inner protocols. Device and MacAddressing will be composed differently in a post-unification
// world. The only clients for this protocol should be agents interested in enumerating networking
// devices, and they should refrain from passing this Hub service to netstack, but rather pass along
// fulfilled requests to the inner protocols.
protocol DeviceInstance {
/// Connects to the [`fuchsia.hardware.network/Device`] implementation, giving access to
/// data-plane features.
GetDevice(request<Device> device);
/// Connects to the [`fuchsia.hardware.network/MacAddressing`] implementation, giving access to
/// MAC filtering control. `DeviceInstance`s that do not support `MacAddressing` will have the
/// request immediately closed.
GetMacAddressing(request<MacAddressing> mac);
};