| // 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); |
| }; |