xref: /aosp_15_r20/external/crosvm/net_util/tests/unix_tap.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 #![cfg(any(target_os = "android", target_os = "linux"))]
6*bb4ee6a4SAndroid Build Coastguard Worker 
7*bb4ee6a4SAndroid Build Coastguard Worker use std::net;
8*bb4ee6a4SAndroid Build Coastguard Worker 
9*bb4ee6a4SAndroid Build Coastguard Worker use base::test_utils::call_test_with_sudo;
10*bb4ee6a4SAndroid Build Coastguard Worker use net_util::sys::linux::Tap;
11*bb4ee6a4SAndroid Build Coastguard Worker use net_util::sys::linux::TapTLinux;
12*bb4ee6a4SAndroid Build Coastguard Worker use net_util::MacAddress;
13*bb4ee6a4SAndroid Build Coastguard Worker use net_util::TapTCommon;
14*bb4ee6a4SAndroid Build Coastguard Worker 
15*bb4ee6a4SAndroid Build Coastguard Worker #[test]
tap_create()16*bb4ee6a4SAndroid Build Coastguard Worker fn tap_create() {
17*bb4ee6a4SAndroid Build Coastguard Worker     call_test_with_sudo("tap_create_impl")
18*bb4ee6a4SAndroid Build Coastguard Worker }
19*bb4ee6a4SAndroid Build Coastguard Worker 
20*bb4ee6a4SAndroid Build Coastguard Worker #[test]
21*bb4ee6a4SAndroid Build Coastguard Worker #[ignore = "Only to be called by tap_create"]
tap_create_impl()22*bb4ee6a4SAndroid Build Coastguard Worker fn tap_create_impl() {
23*bb4ee6a4SAndroid Build Coastguard Worker     Tap::new(true, false).unwrap();
24*bb4ee6a4SAndroid Build Coastguard Worker }
25*bb4ee6a4SAndroid Build Coastguard Worker 
26*bb4ee6a4SAndroid Build Coastguard Worker #[test]
tap_configure()27*bb4ee6a4SAndroid Build Coastguard Worker fn tap_configure() {
28*bb4ee6a4SAndroid Build Coastguard Worker     call_test_with_sudo("tap_configure_impl")
29*bb4ee6a4SAndroid Build Coastguard Worker }
30*bb4ee6a4SAndroid Build Coastguard Worker 
31*bb4ee6a4SAndroid Build Coastguard Worker #[test]
32*bb4ee6a4SAndroid Build Coastguard Worker #[ignore = "Only to be called by tap_configure"]
tap_configure_impl()33*bb4ee6a4SAndroid Build Coastguard Worker fn tap_configure_impl() {
34*bb4ee6a4SAndroid Build Coastguard Worker     let tap = Tap::new(true, false).unwrap();
35*bb4ee6a4SAndroid Build Coastguard Worker     let ip_addr: net::Ipv4Addr = "100.115.92.5".parse().unwrap();
36*bb4ee6a4SAndroid Build Coastguard Worker     let netmask: net::Ipv4Addr = "255.255.255.252".parse().unwrap();
37*bb4ee6a4SAndroid Build Coastguard Worker     let mac_addr: MacAddress = "a2:06:b9:3d:68:4d".parse().unwrap();
38*bb4ee6a4SAndroid Build Coastguard Worker 
39*bb4ee6a4SAndroid Build Coastguard Worker     tap.set_ip_addr(ip_addr).unwrap();
40*bb4ee6a4SAndroid Build Coastguard Worker     tap.set_netmask(netmask).unwrap();
41*bb4ee6a4SAndroid Build Coastguard Worker     tap.set_mac_address(mac_addr).unwrap();
42*bb4ee6a4SAndroid Build Coastguard Worker     tap.set_vnet_hdr_size(16).unwrap();
43*bb4ee6a4SAndroid Build Coastguard Worker     tap.set_offload(0).unwrap();
44*bb4ee6a4SAndroid Build Coastguard Worker }
45*bb4ee6a4SAndroid Build Coastguard Worker 
46*bb4ee6a4SAndroid Build Coastguard Worker #[test]
tap_enable()47*bb4ee6a4SAndroid Build Coastguard Worker fn tap_enable() {
48*bb4ee6a4SAndroid Build Coastguard Worker     call_test_with_sudo("tap_enable_impl")
49*bb4ee6a4SAndroid Build Coastguard Worker }
50*bb4ee6a4SAndroid Build Coastguard Worker 
51*bb4ee6a4SAndroid Build Coastguard Worker #[test]
52*bb4ee6a4SAndroid Build Coastguard Worker #[ignore = "Only to be called by tap_enable"]
tap_enable_impl()53*bb4ee6a4SAndroid Build Coastguard Worker fn tap_enable_impl() {
54*bb4ee6a4SAndroid Build Coastguard Worker     let tap = Tap::new(true, false).unwrap();
55*bb4ee6a4SAndroid Build Coastguard Worker 
56*bb4ee6a4SAndroid Build Coastguard Worker     tap.enable().unwrap();
57*bb4ee6a4SAndroid Build Coastguard Worker }
58