Back to Firecracker

Device

docs/device-api.md

1.16.0-dev19.9 KB
Original Source

Device

The Device-API following functionality matrix indicates which devices are required for an API call to be usable.

O - Optional: The device (column) is not required for a Firecracker microVM API call to succeed. If the device (column) is omitted from a uVM definition, a call to one of the API Endpoints will succeed.

R - Required: The device (column) is required for a Firecracker microVM API call to succeed. If the device (column) is omitted from a uVM definition, a call to one of the API Endpoints will fail with a 400 - BadRequest - HTTP response.

API Endpoints

Endpointkeyboardserial consolevirtio-blockvhost-user-blockvirtio-netvirtio-vsockvirtio-rngvirtio-pmemvirtio-mem
boot-sourceOOOOOOOOO
cpu-configOOOOOOOOO
drives/{id}OORROOOOO
hotplug/memoryOOOOOOOOR
loggerOOOOOOOOO
machine-configOOOOOOOOO
metricsOOOOOOOOO
mmdsOOOOROOOO
mmds/configOOOOROOOO
network-interfaces/{id}OOOOROOOO
snapshot/createOOOOOOOOO
snapshot/loadOOOOOOOOO
vmOOOOOOOOO
vsockOOOOOOOOO
entropyOOOOOOROO
pmem/{id}OOOOOOORO

Input Schema

All input schema fields can be found in the Swagger specification: firecracker.yaml.

SchemaPropertykeyboardserial consolevirtio-blockvhost-user-blockvirtio-netvirtio-vsockvirtio-rngvirtio-pmemvirtio-mem
BootSourceboot_argsOOOOOOOOO
initrd_pathOOOOOOOOO
kernel_image_pathOOOOOOOOO
CpuConfigcpuid_modifiersOOOOOOOOO
msr_modifiersOOOOOOOOO
reg_modifiersOOOOOOOOO
CpuTemplateenumOOOOOOOOO
CreateSnapshotParamsmem_file_pathOOOOOOOOO
snapshot_pathOOOOOOOOO
snapshot_typeOOOOOOOOO
versionOOOOOOOOO
Drivedrive_id *OORROOOOO
is_read_onlyOOROOOOOO
is_root_device *OORROOOOO
partuuid *OORROOOOO
path_on_hostOOROOOOOO
rate_limiterOOROOOOOO
socketOOOROOOOO
InstanceActionInfoaction_typeOOOOOOOOO
LoadSnapshotParamstrack_dirty_pagesOOOOOOOOO
mem_file_pathOOOOOOOOO
mem_backendOOOOOOOOO
snapshot_pathOOOOOOOOO
resume_vmOOOOOOOOO
LoggerlevelOOOOOOOOO
log_pathOOOOOOOOO
show_levelOOOOOOOOO
show_log_originOOOOOOOOO
MachineConfigurationcpu_templateOOOOOOOOO
smtOOOOOOOOO
mem_size_mibOOOOOOOOO
track_dirty_pagesOOOOOOOOO
vcpu_countOOOOOOOOO
Metricsmetrics_pathOOOOOOOOO
MmdsConfignetwork_interfacesOOOOROOOO
versionOOOOROOOO
ipv4_addressOOOOROOOO
imds_compatOOOOOOOOO
NetworkInterfaceguest_macOOOOROOOO
host_dev_nameOOOOROOOO
iface_idOOOOROOOO
rx_rate_limiterOOOOROOOO
tx_rate_limiterOOOOROOOO
PartialDrivedrive_idOOROOOOOO
path_on_hostOOROOOOOO
PartialNetworkInterfaceiface_idOOOOROOOO
rx_rate_limiterOOOOROOOO
tx_rate_limiterOOOOROOOO
RateLimiterbandwidthOOOOROOOO
opsOOROOOOOO
TokenBucket **one_time_burstOOROOOOOO
refill_timeOOROOOOOO
sizeOOROOOOOO
TokenBucket **one_time_burstOOOOROOOO
refill_timeOOOOROOOO
sizeOOOOROOOO
VmstateOOOOOOOOO
Vsockguest_cidOOOOOROOO
uds_pathOOOOOROOO
vsock_idOOOOOROOO
EntropyDevicerate_limiterOOOOOOROO
PmemidOOOOOOORO
path_on_hostOOOOOOORO
root_deviceOOOOOOORO
read_onlyOOOOOOORO
MemoryHotplugConfigtotal_size_mibOOOOOOOOR
slot_size_mibOOOOOOOOR
block_size_miOOOOOOOOR
MemoryHotplugSizeUpdaterequested_size_mibOOOOOOOOR

* Drive's drive_id, is_root_device and partuuid can be configured by either virtio-block or vhost-user-block devices.

** The TokenBucket can be configured with any combination of virtio-net, virtio-block and virtio-rng devices.

Output Schema

All output schema fields can be found in the Swagger specification: firecracker.yaml.

SchemaPropertykeyboardserial consolevirtio-blockvhost-user-blockvirtio-netvirtio-vsockvirtio-mem
Errorfault_messageOOOOOOO
InstanceInfoapp_nameOOOOOOO
idOOOOOOO
stateOOOOOOO
vmm_versionOOOOOOO
MachineConfigurationcpu_templateOOOOOOO
smtOOOOOOO
mem_size_mibOOOOOOO
track_dirty_pagesOOOOOOO
vcpu_countOOOOOOO
vmm_versionOOOOOOO
MemoryHotplugStatus total_size_mibOOOOOOR
slot_size_mibOOOOOOR
block_size_mibOOOOOOR
plugged_size_mibOOOOOOR
requested_size_mibOOOOOOR

Instance Actions

All instance actions can be found in the Swagger specification: firecracker.yaml.

Actionkeyboardserial consolevirtio-blockvhost-user-blockvirtio-netvirtio-vsock
FlushMetricsOOOOOO
InstanceStartOOOOOO
SendCtrlAltDelROOOOO