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
Vmmobject. 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§
- Emulate
Serial Init Error - Emulate serial init error: {0}
- Vmm
- Contains the state and associated methods required for the Firecracker VMM.
Enums§
- Dump
CpuConfig Error - Error type for
Vmm::dump_cpu_config() - FcExit
Code - Vmm exit-code type.
- Start
Vcpus Error - 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§
- Dirty
Bitmap - Shorthand type for KVM dirty page bitmap.
- Event
Manager - Shorthand type for the EventManager flavour used by Firecracker.