Get desktop application:
View/edit binary Protocol Buffers messages
# QMP Connection Greeting This is a special method which does not have a send message as it its response is received as soon as a connection is made to the remote interface. Example: <- { "QMP": { "version": { "qemu": { "micro": 0, "minor": 2, "major": 5 }, "package": "Debian 1:5.2+dfsg-11+deb11u2" }, "capabilities": [ "oob" ] } }
# Quit the emulator. Arguments: None. Example: -> { "execute": "quit" } <- { "return": {} }
(message has no fields)
(message has no fields)
# Stop the emulator Arguments: None. Example: -> { "execute": "stop" } <- { "return": {} }
(message has no fields)
# Resume guest VCPU execution. Since: 0.14 Returns: If successful, nothing Notes: This command will succeed if the guest is currently running. It will also succeed if the guest is in the "inmigrate" state; in this case, the effect of the command is to make sure the guest starts once migration finishes, removing the effect of the -S command line option if it was passed. Example: -> { "execute": "cont" } <- { "return": {} }
(message has no fields)
# Perform a hard reset of a guest. Since: 0.14 Example: -> { "execute": "system_reset" } <- { "return": {} }
(message has no fields)
# Requests that a guest perform a powerdown operation Since: 0.14 Notes: A guest may or may not respond to this command. This command returning does not indicate that a guest has accepted the request or that it has shut down. Many guests will respond to this command by prompting the user in some way. Example: -> { "execute": "system_powerdown" } <- { "return": {} }
(message has no fields)
# Wake up guest from suspend. If the guest has wake-up from suspend support enabled (wakeup-suspend-support flag from query-current-machine), wake-up guest from suspend if the guest is in SUSPENDED state. Return an error otherwise. Since: 1.1 Returns: nothing. Note: prior to 4.0, this command does nothing in case the guest isn't suspended. Example: -> { "execute": "system_wakeup" } <- { "return": {} }
(message has no fields)
# Enable QMP capabilities. Arguments: None. Example: -> { "execute": "qmp_capabilities", "arguments: { "enable": [ "oob" ] } } <- { "return": {} } Note: This command must be issued before issuing any other command.
# Show KVM information Return a json-object with the following information: - "enabled": true if KVM support is enabled, false otherwise (json-bool) - "present": true if QEMU has KVM support, false otherwise (json-bool) Example: -> { "execute": "query-kvm" } <- { "return": { "enabled": true, "present": true } }
(message has no fields)
# Query the run status of all VCPUs Return a json-object with the following information - "running": true if the VM is running, or false if it is paused (json-bool) - "singlestep": true if the VM is in single step mode, false otherwise (json-bool) - "status": one of the following values (json-string) "debug" - QEMU is running on a debugger "inmigrate" - guest is paused waiting for an incoming migration "internal-error" - An internal error that prevents further guest execution has occurred "io-error" - the last IOP has failed and the device is configured to pause on I/O errors "paused" - guest has been paused via the 'stop' command "postmigrate" - guest is paused following a successful 'migrate' "prelaunch" - QEMU was started with -S and guest has not started "finish-migrate" - guest is paused to finish the migration process "restore-vm" - guest is paused to restore VM state "running" - guest is actively running "save-vm" - guest is paused to save the VM state "shutdown" - guest is shut down (and -no-shutdown is in use) "watchdog" - the watchdog action is configured to pause and has been triggered Example: -> { "execute": "query-status" } <- { "return": { "running": true, "singlestep": false, "status": "running" } }
(message has no fields)
# Sets the link status of a virtual network adapter. @name: the device name of the virtual network adapter @up: true to set the link status to be up Returns: Nothing on success If @name is not a valid network device, DeviceNotFound Since: 0.14 Notes: Not all network adapters support setting link status. This command will succeed even if the network adapter does not support link status notification. Example: -> { "execute": "set_link", "arguments": { "name": "e1000.0", "up": false } } <- { "return": {} }
# Add a network backend for type nic Since: 0.14
# Add a network backend for type user Since: 0.14
# Add a network backend for type tap Since: 0.14
# Add a network backend for type l2tpv3 Since: 0.14
# Add a network backend for type socket Since: 0.14
# Add a network backend for type stream Since: 0.14
# Add a network backend for type dgram Since: 0.14
# Add a network backend for type vde Since: 0.14
# Add a network backend for type bridge Since: 0.14
# Add a network backend for type hubport Since: 0.14
# Add a network backend for type netmap Since: 0.14
# Add a network backend for type vhost-user Since: 0.14
# Add a network backend for type vhost-vdpa Since: 0.14
# Add a network backend for type vmnet-host Since: 0.14
# Add a network backend for type vmnet-shared Since: 0.14
# Add a network backend for type vmnet-bridged Since: 0.14
# Remove a network backend. @id: the name of the network backend to remove Returns: Nothing on success If @id is not a valid network backend, DeviceNotFound Since: 0.14 Example: -> { "execute": "netdev_del", "arguments": { "id": "netdev1" } } <- { "return": {} }
# Return rx-filter information for all NICs (or for the given NIC). @name: net client name Returns: list of @RxFilterInfo for all NICs (or for the given NIC). Returns an error if the given @name doesn't exist, or given NIC doesn't support rx-filter querying, or given net client isn't a NIC. Since: 1.6 Example: -> { "execute": "query-rx-filter", "arguments": { "name": "vnet0" } } <- { "return": [ { "promiscuous": true, "name": "vnet0", "main-mac": "52:54:00:12:34:56", "unicast": "normal", "vlan": "normal", "vlan-table": [ 4, 0 ], "unicast-table": [ ], "multicast": "normal", "multicast-overflow": false, "unicast-overflow": false, "multicast-table": [ "01:00:5e:00:00:01", "33:33:00:00:00:01", "33:33:ff:12:34:56" ], "broadcast-allowed": false } ] }
Rx-filter information for a NIC.
net client name
whether promiscuous mode is enabled
multicast receive state
unicast receive state
vlan receive state (Since 2.0)
whether to receive broadcast
multicast table is overflowed or not
unicast table is overflowed or not
the main macaddr string
a list of active vlan id
a list of unicast macaddr string
a list of multicast macaddr string
Used in:
Used in:
,(message has no fields)
Used in:
(message has no fields)
Used in:
Used in:
Captures a socket address or address range in the Internet namespace. Since: 1.3
Used in:
host part of the address
port part of the address
true if the host/port are guaranteed to be numeric, false if name resolution should be attempted. Defaults to false. (Since 2.9)
If present, this is range of possible addresses, with port between `port` and `to`.
whether to accept IPv4 addresses, default try both IPv4 and IPv6
whether to accept IPv6 addresses, default try both IPv4 and IPv6
enable keep-alive when connecting to this socket. Not supported for passive sockets. (Since 4.2)
enable multi-path TCP. (Since 6.1)
Used in:
Available netdev drivers.
Used in:
, , , , , , , , , , , , , , ,Create a new Network Interface Card. Since: 1.2
Used in:
identifier for monitor commands.
Specify the driver used for interpreting remaining arguments.
id of -netdev to connect to
MAC address
device model (e1000, rtl8139, virtio etc.)
PCI device address
number of MSI-x vectors, 0 to disable MSI-X
Connect a host TAP network interface to a host bridge device. Since: 1.2
Used in:
identifier for monitor commands.
Specify the driver used for interpreting remaining arguments.
bridge name
command to execute to configure bridge
Used in:
Configuration info for datagram socket netdev. Only SocketAddress types 'unix', 'inet' and 'fd' are supported. If remote address is present and it's a multicast address, local address is optional. Otherwise local address is required and remote address is optional. .. table:: Valid parameters combination table :widths: auto ============= ======== ===== remote local okay? ============= ======== ===== absent absent no absent not fd no absent fd yes multicast absent yes multicast present yes not multicast absent no not multicast present yes ============= ======== ===== Since: 7.2
Used in:
identifier for monitor commands.
Specify the driver used for interpreting remaining arguments.
local address
remote address
Connect two or more net clients through a software hub. Since: 1.2
Used in:
identifier for monitor commands.
Specify the driver used for interpreting remaining arguments.
hub identifier number
used to connect hub to a netdev instead of a device (since 2.12)
Configure an Ethernet over L2TPv3 tunnel. Since: 2.1
Used in:
identifier for monitor commands.
Specify the driver used for interpreting remaining arguments.
source address
destination address
source port - mandatory for udp, optional for ip
destination port - mandatory for udp, optional for ip
force the use of ipv6
use the udp version of l2tpv3 encapsulation
use 64 bit cookies
have sequence counter
pin sequence counter to zero - workaround for buggy implementations or networks with packet reorder
32 or 64 bit transmit cookie
32 or 64 bit receive cookie
32 bit transmit session
32 bit receive session - if not specified set to the same value as transmit
additional offset - allows the insertion of additional application-specific data before the packet payload
Connect a client to a netmap-enabled NIC or to a VALE switch port Since: 2.0
Used in:
identifier for monitor commands.
Specify the driver used for interpreting remaining arguments.
Either the name of an existing network interface supported by netmap, or the name of a VALE port (created on the fly). A VALE port name is in the form 'valeXXX:YYY', where XXX and YYY are non-negative integers. XXX identifies a switch and YYY identifies a port of the switch. VALE ports having the same XXX are therefore connected to the same switch.
path of the netmap device (default: '/dev/netmap').
Socket netdevs are used to establish a network connection to another QEMU virtual machine via a TCP socket. Since: 1.2
Used in:
identifier for monitor commands.
Specify the driver used for interpreting remaining arguments.
file descriptor of an already opened socket
port number, and optional hostname, to listen on
port number, and optional hostname, to connect to
UDP multicast address and port number
source address and port for multicast and udp packets
UDP unicast address and port number
Configuration info for stream socket netdev Only SocketAddress types 'unix', 'inet' and 'fd' are supported. Since: 7.2
Used in:
identifier for monitor commands.
Specify the driver used for interpreting remaining arguments.
socket address to listen on (server=true) or connect to (server=false)
create server socket (default: false)
Used to configure a host TAP network interface backend. Since: 1.2
Used in:
identifier for monitor commands.
Specify the driver used for interpreting remaining arguments.
interface name
file descriptor of an already opened tap
multiple file descriptors of already opened multiqueue capable tap
script to initialize the interface
script to shut down the interface
bridge name (since 2.8)
command to execute to configure bridge
send buffer limit. Understands [TGMKkb] suffixes.
enable the IFF_VNET_HDR flag on the tap interface
enable vhost-net network accelerator
file descriptor of an already opened vhost net device
file descriptors of multiple already opened vhost net devices
vhost on for non-MSIX virtio guests
number of queues to be created for multiqueue capable tap
maximum number of microseconds that could be spent on busy polling for tap (since 2.7)
Use the user mode network stack which requires no administrator privilege to run. Since: 1.2
Used in:
identifier for monitor commands.
Specify the driver used for interpreting remaining arguments.
client hostname reported by the builtin DHCP server
isolate the guest from the host
whether to support IPv4, default true for enabled (since 2.6)
whether to support IPv6, default true for enabled (since 2.6)
legacy parameter, use net= instead
IP network address that the guest will see, in the form addr[/netmask] The netmask is optional, and can be either in the form a.b.c.d or as a number of valid top-most bits. Default is 10.0.2.0/24.
guest-visible address of the host
root directory of the built-in TFTP server
BOOTP filename, for use with tftp=
the first of the 16 IPs the built-in DHCP server can assign
guest-visible address of the virtual nameserver
list of DNS suffixes to search, passed as DHCP option to the guest
guest-visible domain name of the virtual nameserver (since 3.0)
IPv6 network prefix (default is fec0::) (since 2.6). The network prefix is given in the usual hexadecimal IPv6 address notation.
IPv6 network prefix length (default is 64) (since 2.6)
guest-visible IPv6 address of the host (since 2.6)
guest-visible IPv6 address of the virtual nameserver (since 2.6)
root directory of the built-in SMB server
IP address of the built-in SMB server
redirect incoming TCP or UDP host connections to guest endpoints
forward guest TCP connections
RFC2132 "TFTP server name" string (Since 3.1)
Connect to a vde switch running on the host. Since: 1.2
Used in:
identifier for monitor commands.
Specify the driver used for interpreting remaining arguments.
socket path
port number
group owner of socket
permissions for socket
Vhost-user network backend Since: 2.1
Used in:
identifier for monitor commands.
Specify the driver used for interpreting remaining arguments.
name of a unix socket chardev
vhost on for non-MSIX virtio guests (default: false).
number of queues to be created for multiqueue vhost-user (default: 1) (Since 2.5)
Vhost-vdpa network backend vDPA device is a device that uses a datapath which complies with the virtio specifications with a vendor specific control path. Since: 5.1
Used in:
identifier for monitor commands.
Specify the driver used for interpreting remaining arguments.
path of vhost-vdpa device (default:'/dev/vhost-vdpa-0')
file descriptor of an already opened vhost vdpa device
number of queues to be created for multiqueue vhost-vdpa (default: 1)
Start device with (experimental) shadow virtqueue. (Since 7.1) (default: false). `x-svq` is experimental.
vmnet (bridged mode) network backend. Bridges the vmnet interface with a physical network interface. Since: 7.1
Used in:
identifier for monitor commands.
Specify the driver used for interpreting remaining arguments.
The name of the physical interface to be bridged.
Enable isolation for this interface. Interface isolation ensures that vmnet interface is not able to communicate with any other vmnet interfaces. Only communication with host is allowed. Requires at least macOS Big Sur 11.0.
vmnet (host mode) network backend. Allows the vmnet interface to communicate with other vmnet interfaces that are in host mode and also with the host. Since: 7.1
Used in:
identifier for monitor commands.
Specify the driver used for interpreting remaining arguments.
The starting IPv4 address to use for the interface. Must be in the private IP range (RFC 1918). Must be specified along with @end-address and @subnet-mask. This address is used as the gateway address. The subsequent address up to and including end-address are placed in the DHCP pool.
The DHCP IPv4 range end address to use for the interface. Must be in the private IP range (RFC 1918). Must be specified along with @start-address and @subnet-mask.
The IPv4 subnet mask to use on the interface. Must be specified along with @start-address and @subnet-mask.
Enable isolation for this interface. Interface isolation ensures that vmnet interface is not able to communicate with any other vmnet interfaces. Only communication with host is allowed. Requires at least macOS Big Sur 11.0.
The identifier (UUID) to uniquely identify the isolated network vmnet interface should be added to. If set, no DHCP service is provided for this interface and network communication is allowed only with other interfaces added to this network identified by the UUID. Requires at least macOS Big Sur 11.0.
vmnet (shared mode) network backend. Allows traffic originating from the vmnet interface to reach the Internet through a network address translator (NAT). The vmnet interface can communicate with the host and with other shared mode interfaces on the same subnet. If no DHCP settings, subnet mask and IPv6 prefix specified, the interface can communicate with any of other interfaces in shared mode. Since: 7.1
Used in:
identifier for monitor commands.
Specify the driver used for interpreting remaining arguments.
The starting IPv4 address to use for the interface. Must be in the private IP range (RFC 1918). Must be specified along with @end-address and @subnet-mask. This address is used as the gateway address. The subsequent address up to and including end-address are placed in the DHCP pool.
The DHCP IPv4 range end address to use for the interface. Must be in the private IP range (RFC 1918). Must be specified along with @start-address and @subnet-mask.
The IPv4 subnet mask to use on the interface. Must be specified along with @start-address and @subnet-mask.
Enable isolation for this interface. Interface isolation ensures that vmnet interface is not able to communicate with any other vmnet interfaces. Only communication with host is allowed. Requires at least macOS Big Sur 11.0.
The IPv6 prefix to use into guest network. Must be a unique local address i.e. start with fd00::/8 and have length of 64.
Used in:
Used in:
Packets receiving state Since: 1.6
Used in:
filter assigned packets according to the mac-table
don't receive any assigned packet
receive all assigned packets
Used in:
Captures the address of a socket, which could also be a named file descriptor Since: 2.9
Used in:
,Available SocketAddress types Since: 2.9
Used in:
Internet address
Unix domain socket
VMCI address
decimal is for file descriptor number, otherwise a file descriptor name. Named file descriptors are permitted in monitor commands, in combination with the 'getfd' command. Decimal file descriptors are permitted at startup or other contexts where no monitor context is active.
Used in:
(message has no fields)
Captures a socket address in the local ("Unix socket") namespace. Since: 1.3
Used in:
filesystem path to use
if true, this is a Linux abstract socket address. `path` will be prefixed by a null byte, and optionally padded with null bytes. Defaults to false. (Since 5.1)
if false, pad an abstract socket address with enough null bytes to make it fill struct sockaddr_un member sun_path. Defaults to true. (Since 5.1)
Captures a socket address in the vsock namespace. Note: string types are used to allow for possible future hostname or service resolution support. Since: 2.8
Used in:
unique host identifier
port