xref: /aosp_15_r20/external/crosvm/net_util/src/sys/linux.rs (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
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