Crate vmm

Crate vmm 

Source
Expand description

Virtual Machine Monitor that leverages the Linux Kernel-based Virtual Machine (KVM), and other virtualization features to run a single lightweight micro-virtual machine (microVM).

Re-exports§

pub use crate::vstate::vcpu::Vcpu;
pub use crate::vstate::vcpu::VcpuConfig;
pub use crate::vstate::vcpu::VcpuEvent;
pub use crate::vstate::vcpu::VcpuHandle;
pub use crate::vstate::vcpu::VcpuResponse;
pub use crate::vstate::vm::Vm;

Modules§

acpi
Module for handling ACPI tables. Currently, we only use ACPI on x86 microVMs.
arch
Implements platform specific functionality. Supported platforms: x86_64 and aarch64.
builder
Handles setup and initialization a Vmm object. Enables pre-boot setup, instantiation and booting of a Firecracker VMM.
cpu_config
Types for guest configuration.
device_manager
devices
Emulates virtual and hardware devices. Emulates virtual and hardware devices.
dumbo
minimalist HTTP/TCP/IPv4 stack named DUMBO Provides helper logic for parsing and writing protocol data units, and minimalist implementations of a TCP listener, a TCP connection, and an HTTP/1.1 server.
initrd
Module with initrd.
io_uring
High-level interface over Linux io_uring.
logger
Logger Crate that implements Firecracker specific functionality as far as logging and metrics collecting.
mmds
microVM Metadata Service MMDS
pci
PCI specific emulation code.
persist
Save/restore utilities. Defines state structures for saving/restoring a Firecracker microVM.
rate_limiter
Rate Limiter
resources
Resource store for configured microVM resources.
rpc_interface
microVM RPC API adapters.
seccomp
Seccomp filter utilities.
signal_handler
Signal handling utilities.
snapshot
Serialization and deserialization facilities Provides serialization and deserialization facilities and implements a persistent storage format for Firecracker state snapshots.
test_utils
Utility functions for integration and benchmark testing
utils
Utility functions and struct
vmm_config
Wrappers over structures used to configure the VMM.
vstate
Module with virtual state structs.

Macros§

MSR_RANGE
Macro for generating a MsrRange.
check_metric_after_block
impl_device_type
Utility to define both const_device_type and device_type with a u32 constant

Structs§

EmulateSerialInitError
Emulate serial init error: {0}
Vmm
Contains the state and associated methods required for the Firecracker VMM.

Enums§

DumpCpuConfigError
Error type for Vmm::dump_cpu_config()
FcExitCode
Vmm exit-code type.
StartVcpusError
Error type for Vmm::start_vcpus.
VmmError
Errors associated with the VMM internal logic. These errors cannot be generated by direct user input, but can result from bad configuration of the host (for example if Firecracker doesn’t have permissions to open the KVM fd).

Constants§

HTTP_MAX_PAYLOAD_SIZE
Default byte limit of accepted http requests on API and MMDS servers.
RECV_TIMEOUT_SEC
Timeout used in recv_timeout, when waiting for a vcpu response on Pause/Resume/Save/Restore. A high enough limit that should not be reached during normal usage, used to detect a potential vcpu deadlock.

Type Aliases§

DirtyBitmap
Shorthand type for KVM dirty page bitmap.
EventManager
Shorthand type for the EventManager flavour used by Firecracker.