pub enum VmmAction {
Show 39 variants
ConfigureBootSource(BootSourceConfig),
ConfigureLogger(LoggerConfig),
ConfigureMetrics(MetricsConfig),
ConfigureSerial(SerialConfig),
CreateSnapshot(CreateSnapshotParams),
GetBalloonConfig,
GetBalloonStats,
GetFullVmConfig,
GetMMDS,
GetVmMachineConfig,
GetVmInstanceInfo,
GetVmmVersion,
FlushMetrics,
InsertBlockDevice(BlockDeviceConfig),
InsertPmemDevice(PmemConfig),
InsertNetworkDevice(NetworkInterfaceConfig),
LoadSnapshot(LoadSnapshotParams),
PatchMMDS(Value),
Pause,
PutMMDS(Value),
PutCpuConfiguration(CustomCpuTemplate),
Resume,
SetBalloonDevice(BalloonDeviceConfig),
SetMmdsConfiguration(MmdsConfig),
SetVsockDevice(VsockDeviceConfig),
SetEntropyDevice(EntropyDeviceConfig),
GetMemoryHotplugStatus,
SetMemoryHotplugDevice(MemoryHotplugConfig),
UpdateMemoryHotplugSize(MemoryHotplugSizeUpdate),
StartMicroVm,
SendCtrlAltDel,
UpdateBalloon(BalloonUpdateConfig),
UpdateBalloonStatistics(BalloonUpdateStatsConfig),
StartFreePageHinting(StartHintingCmd),
GetFreePageHintingStatus,
StopFreePageHinting,
UpdateBlockDevice(BlockDeviceUpdateConfig),
UpdateNetworkInterface(NetworkInterfaceUpdateConfig),
UpdateMachineConfiguration(MachineConfigUpdate),
}Expand description
This enum represents the public interface of the VMM. Each action contains various bits of information (ids, paths, etc.).
Variants§
ConfigureBootSource(BootSourceConfig)
Configure the boot source of the microVM using as input the ConfigureBootSource. This
action can only be called before the microVM has booted.
ConfigureLogger(LoggerConfig)
Configure the logger using as input the LoggerConfig. This action can only be called
before the microVM has booted.
ConfigureMetrics(MetricsConfig)
Configure the metrics using as input the MetricsConfig. This action can only be called
before the microVM has booted.
ConfigureSerial(SerialConfig)
Configure the serial device. This action can only be called before the microVM has booted.
CreateSnapshot(CreateSnapshotParams)
Create a snapshot using as input the CreateSnapshotParams. This action can only be called
after the microVM has booted and only when the microVM is in Paused state.
GetBalloonConfig
Get the balloon device configuration.
GetBalloonStats
Get the ballon device latest statistics.
GetFullVmConfig
Get complete microVM configuration in JSON format.
GetMMDS
Get MMDS contents.
GetVmMachineConfig
Get the machine configuration of the microVM.
GetVmInstanceInfo
Get microVM instance information.
GetVmmVersion
Get microVM version.
FlushMetrics
Flush the metrics. This action can only be called after the logger has been configured.
InsertBlockDevice(BlockDeviceConfig)
Add a new block device or update one that already exists using the BlockDeviceConfig as
input. This action can only be called before the microVM has booted.
InsertPmemDevice(PmemConfig)
Add a virtio-pmem device.
InsertNetworkDevice(NetworkInterfaceConfig)
Add a new network interface config or update one that already exists using the
NetworkInterfaceConfig as input. This action can only be called before the microVM has
booted.
LoadSnapshot(LoadSnapshotParams)
Load the microVM state using as input the LoadSnapshotParams. This action can only be
called before the microVM has booted. If this action is successful, the loaded microVM will
be in Paused state. Should change this state to Resumed for the microVM to run.
PatchMMDS(Value)
Partial update of the MMDS contents.
Pause
Pause the guest, by pausing the microVM VCPUs.
PutMMDS(Value)
Repopulate the MMDS contents.
PutCpuConfiguration(CustomCpuTemplate)
Configure the guest vCPU features.
Resume
Resume the guest, by resuming the microVM VCPUs.
SetBalloonDevice(BalloonDeviceConfig)
Set the balloon device or update the one that already exists using the
BalloonDeviceConfig as input. This action can only be called before the microVM
has booted.
SetMmdsConfiguration(MmdsConfig)
Set the MMDS configuration.
SetVsockDevice(VsockDeviceConfig)
Set the vsock device or update the one that already exists using the
VsockDeviceConfig as input. This action can only be called before the microVM has
booted.
SetEntropyDevice(EntropyDeviceConfig)
Set the entropy device using EntropyDeviceConfig as input. This action can only be called
before the microVM has booted.
GetMemoryHotplugStatus
Get the memory hotplug device configuration and status.
SetMemoryHotplugDevice(MemoryHotplugConfig)
Set the memory hotplug device using MemoryHotplugConfig as input. This action can only be
called before the microVM has booted.
UpdateMemoryHotplugSize(MemoryHotplugSizeUpdate)
Updates the memory hotplug device using MemoryHotplugConfigUpdate as input. This action
can only be called after the microVM has booted.
StartMicroVm
Launch the microVM. This action can only be called before the microVM has booted.
SendCtrlAltDel
Send CTRL+ALT+DEL to the microVM, using the i8042 keyboard function. If an AT-keyboard driver is listening on the guest end, this can be used to shut down the microVM gracefully.
UpdateBalloon(BalloonUpdateConfig)
Update the balloon size, after microVM start.
UpdateBalloonStatistics(BalloonUpdateStatsConfig)
Update the balloon statistics polling interval, after microVM start.
StartFreePageHinting(StartHintingCmd)
Start a free page hinting run
GetFreePageHintingStatus
Retrieve the status of the hinting run
StopFreePageHinting
Stops a free page hinting run
UpdateBlockDevice(BlockDeviceUpdateConfig)
Update existing block device properties such as path_on_host or rate_limiter.
UpdateNetworkInterface(NetworkInterfaceUpdateConfig)
Update a network interface, after microVM start. Currently, the only updatable properties are the RX and TX rate limiters.
UpdateMachineConfiguration(MachineConfigUpdate)
Update the microVM configuration (memory & vcpu) using VmUpdateConfig as input. This
action can only be called before the microVM has booted.
Trait Implementations§
impl Eq for VmmAction
impl StructuralPartialEq for VmmAction
Auto Trait Implementations§
impl Freeze for VmmAction
impl RefUnwindSafe for VmmAction
impl Send for VmmAction
impl Sync for VmmAction
impl Unpin for VmmAction
impl UnwindSafe for VmmAction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.