1*bb4ee6a4SAndroid Build Coastguard Worker // Copyright 2022 The ChromiumOS Authors 2*bb4ee6a4SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*bb4ee6a4SAndroid Build Coastguard Worker // found in the LICENSE file. 4*bb4ee6a4SAndroid Build Coastguard Worker 5*bb4ee6a4SAndroid Build Coastguard Worker pub mod tap; 6*bb4ee6a4SAndroid Build Coastguard Worker use base::FileReadWriteVolatile; 7*bb4ee6a4SAndroid Build Coastguard Worker pub use tap::Tap; 8*bb4ee6a4SAndroid Build Coastguard Worker 9*bb4ee6a4SAndroid Build Coastguard Worker use crate::TapTCommon; 10*bb4ee6a4SAndroid Build Coastguard Worker 11*bb4ee6a4SAndroid Build Coastguard Worker /// Linux-specific TAP functions 12*bb4ee6a4SAndroid Build Coastguard Worker pub trait TapTLinux { 13*bb4ee6a4SAndroid Build Coastguard Worker /// Set the size of the vnet hdr. set_vnet_hdr_size(&self, size: usize) -> Result<(), crate::Error>14*bb4ee6a4SAndroid Build Coastguard Worker fn set_vnet_hdr_size(&self, size: usize) -> Result<(), crate::Error>; 15*bb4ee6a4SAndroid Build Coastguard Worker 16*bb4ee6a4SAndroid Build Coastguard Worker /// Get the interface flags if_flags(&self) -> u3217*bb4ee6a4SAndroid Build Coastguard Worker fn if_flags(&self) -> u32; 18*bb4ee6a4SAndroid Build Coastguard Worker } 19*bb4ee6a4SAndroid Build Coastguard Worker 20*bb4ee6a4SAndroid Build Coastguard Worker // TODO(b/159159958) implement FileReadWriteVolatile for slirp 21*bb4ee6a4SAndroid Build Coastguard Worker pub trait TapT: FileReadWriteVolatile + TapTCommon + TapTLinux {} 22*bb4ee6a4SAndroid Build Coastguard Worker 23*bb4ee6a4SAndroid Build Coastguard Worker pub mod fakes { 24*bb4ee6a4SAndroid Build Coastguard Worker pub use super::tap::fakes::FakeTap; 25*bb4ee6a4SAndroid Build Coastguard Worker } 26