net_backend_resources/
lib.rs1#![forbid(unsafe_code)]
9
10pub mod mac_address;
11
12pub mod null {
14 use mesh::MeshPayload;
15 use vm_resource::ResourceId;
16 use vm_resource::kind::NetEndpointHandleKind;
17
18 #[derive(MeshPayload)]
21 pub struct NullHandle;
22
23 impl ResourceId<NetEndpointHandleKind> for NullHandle {
24 const ID: &'static str = "null";
25 }
26}
27
28pub mod consomme {
30 use mesh::MeshPayload;
31 use vm_resource::ResourceId;
32 use vm_resource::kind::NetEndpointHandleKind;
33
34 #[derive(MeshPayload)]
36 pub struct ConsommeHandle {
37 pub cidr: Option<String>,
39 }
40
41 impl ResourceId<NetEndpointHandleKind> for ConsommeHandle {
42 const ID: &'static str = "consomme";
43 }
44}
45
46pub mod dio {
48 use guid::Guid;
49 use mesh::MeshPayload;
50 use vm_resource::ResourceId;
51 use vm_resource::kind::NetEndpointHandleKind;
52
53 #[derive(Copy, Clone, MeshPayload)]
55 pub struct SwitchPortId {
56 pub switch: Guid,
58 pub port: Guid,
60 }
61
62 #[derive(MeshPayload)]
64 pub struct WindowsDirectIoHandle {
65 pub switch_port_id: SwitchPortId,
67 }
68
69 impl ResourceId<NetEndpointHandleKind> for WindowsDirectIoHandle {
70 const ID: &'static str = "dio";
71 }
72}
73
74pub mod tap {
76 use mesh::MeshPayload;
77 use vm_resource::ResourceId;
78 use vm_resource::kind::NetEndpointHandleKind;
79
80 #[derive(MeshPayload)]
82 pub struct TapHandle {
83 pub name: String,
87 }
88
89 impl ResourceId<NetEndpointHandleKind> for TapHandle {
90 const ID: &'static str = "tap";
91 }
92}