mirror of
https://passt.top/passt
synced 2025-01-22 04:05:22 +00:00
vhost-user: update protocol features and commands list
vhost-user protocol specification has been updated with feature flags and commands we will need to implement migration. Signed-off-by: Laurent Vivier <lvivier@redhat.com> [sbrivio: Fix comment to union vhost_user_payload] Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
parent
a8f4fc481c
commit
6016e04a3a
@ -110,6 +110,11 @@ static const char *vu_request_to_string(unsigned int req)
|
||||
REQ(VHOST_USER_GET_MAX_MEM_SLOTS),
|
||||
REQ(VHOST_USER_ADD_MEM_REG),
|
||||
REQ(VHOST_USER_REM_MEM_REG),
|
||||
REQ(VHOST_USER_SET_STATUS),
|
||||
REQ(VHOST_USER_GET_STATUS),
|
||||
REQ(VHOST_USER_GET_SHARED_OBJECT),
|
||||
REQ(VHOST_USER_SET_DEVICE_STATE_FD),
|
||||
REQ(VHOST_USER_CHECK_DEVICE_STATE),
|
||||
};
|
||||
#undef REQ
|
||||
return vu_request_str[req];
|
||||
|
40
vhost_user.h
40
vhost_user.h
@ -37,6 +37,10 @@ enum vhost_user_protocol_feature {
|
||||
VHOST_USER_PROTOCOL_F_INFLIGHT_SHMFD = 12,
|
||||
VHOST_USER_PROTOCOL_F_INBAND_NOTIFICATIONS = 14,
|
||||
VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS = 15,
|
||||
VHOST_USER_PROTOCOL_F_STATUS = 16,
|
||||
/* Feature 17 reserved for VHOST_USER_PROTOCOL_F_XEN_MMAP. */
|
||||
VHOST_USER_PROTOCOL_F_SHARED_OBJECT = 18,
|
||||
VHOST_USER_PROTOCOL_F_DEVICE_STATE = 19,
|
||||
|
||||
VHOST_USER_PROTOCOL_F_MAX
|
||||
};
|
||||
@ -83,6 +87,11 @@ enum vhost_user_request {
|
||||
VHOST_USER_GET_MAX_MEM_SLOTS = 36,
|
||||
VHOST_USER_ADD_MEM_REG = 37,
|
||||
VHOST_USER_REM_MEM_REG = 38,
|
||||
VHOST_USER_SET_STATUS = 39,
|
||||
VHOST_USER_GET_STATUS = 40,
|
||||
VHOST_USER_GET_SHARED_OBJECT = 41,
|
||||
VHOST_USER_SET_DEVICE_STATE_FD = 42,
|
||||
VHOST_USER_CHECK_DEVICE_STATE = 43,
|
||||
VHOST_USER_MAX
|
||||
};
|
||||
|
||||
@ -128,12 +137,39 @@ struct vhost_user_memory {
|
||||
struct vhost_user_memory_region regions[VHOST_MEMORY_BASELINE_NREGIONS];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct vhost_user_log - Address and size of the shared memory region used
|
||||
* to log page update
|
||||
* @mmap_size: Size of the shared memory region
|
||||
* @mmap_offset: Offset of the shared memory region
|
||||
*/
|
||||
struct vhost_user_log {
|
||||
uint64_t mmap_size;
|
||||
uint64_t mmap_offset;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct vhost_user_transfer_device_state - Set the direction and phase
|
||||
* of the backend device state fd
|
||||
* @direction: Device state transfer direction (save or load)
|
||||
* @phase: Migration phase (only stopped is supported)
|
||||
*/
|
||||
struct vhost_user_transfer_device_state {
|
||||
uint32_t direction;
|
||||
#define VHOST_USER_TRANSFER_STATE_DIRECTION_SAVE 0
|
||||
#define VHOST_USER_TRANSFER_STATE_DIRECTION_LOAD 1
|
||||
uint32_t phase;
|
||||
#define VHOST_USER_TRANSFER_STATE_PHASE_STOPPED 0
|
||||
};
|
||||
|
||||
/**
|
||||
* union vhost_user_payload - vhost-user message payload
|
||||
* @u64: 64-bit payload
|
||||
* @state: vring state payload
|
||||
* @addr: vring addresses payload
|
||||
* vhost_user_memory: Memory regions information payload
|
||||
* @memory: Memory regions information payload
|
||||
* @log: Memory logging payload
|
||||
* @transfer_state: Device state payload
|
||||
*/
|
||||
union vhost_user_payload {
|
||||
#define VHOST_USER_VRING_IDX_MASK 0xff
|
||||
@ -142,6 +178,8 @@ union vhost_user_payload {
|
||||
struct vhost_vring_state state;
|
||||
struct vhost_vring_addr addr;
|
||||
struct vhost_user_memory memory;
|
||||
struct vhost_user_log log;
|
||||
struct vhost_user_transfer_device_state transfer_state;
|
||||
};
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user