They were missed by the initial set of patches which introduced this header as a mandatory one across different types of files. Signed-off-by: Michal Berger <michal.berger@intel.com> Change-Id: I3f9b37d41298c843e1648e72fe8593768ccd37e0 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15423 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
172 lines
5.0 KiB
Python
172 lines
5.0 KiB
Python
# SPDX-License-Identifier: BSD-3-Clause
|
|
# Copyright (C) 2017 Intel Corporation.
|
|
# All rights reserved.
|
|
|
|
from .cmd_parser import *
|
|
|
|
|
|
def vhost_controller_set_coalescing(client, ctrlr, delay_base_us, iops_threshold):
|
|
"""Set coalescing for vhost controller.
|
|
Args:
|
|
ctrlr: controller name
|
|
delay_base_us: base delay time
|
|
iops_threshold: IOPS threshold when coalescing is enabled
|
|
"""
|
|
params = {
|
|
'ctrlr': ctrlr,
|
|
'delay_base_us': delay_base_us,
|
|
'iops_threshold': iops_threshold,
|
|
}
|
|
return client.call('vhost_controller_set_coalescing', params)
|
|
|
|
|
|
def virtio_blk_create_transport(client, **params):
|
|
"""Create virtio blk transport.
|
|
Args:
|
|
name: transport name
|
|
"""
|
|
strip_globals(params)
|
|
remove_null(params)
|
|
|
|
return client.call('virtio_blk_create_transport', params)
|
|
|
|
|
|
def vhost_create_scsi_controller(client, ctrlr, cpumask=None):
|
|
"""Create a vhost scsi controller.
|
|
Args:
|
|
ctrlr: controller name
|
|
cpumask: cpu mask for this controller
|
|
"""
|
|
params = {'ctrlr': ctrlr}
|
|
|
|
if cpumask:
|
|
params['cpumask'] = cpumask
|
|
|
|
return client.call('vhost_create_scsi_controller', params)
|
|
|
|
|
|
def vhost_scsi_controller_add_target(client, ctrlr, scsi_target_num, bdev_name):
|
|
"""Add LUN to vhost scsi controller target.
|
|
Args:
|
|
ctrlr: controller name
|
|
scsi_target_num: target number to use
|
|
bdev_name: name of bdev to add to target
|
|
"""
|
|
params = {
|
|
'ctrlr': ctrlr,
|
|
'scsi_target_num': scsi_target_num,
|
|
'bdev_name': bdev_name,
|
|
}
|
|
return client.call('vhost_scsi_controller_add_target', params)
|
|
|
|
|
|
def vhost_scsi_controller_remove_target(client, ctrlr, scsi_target_num):
|
|
"""Remove target from vhost scsi controller.
|
|
Args:
|
|
ctrlr: controller name to remove target from
|
|
scsi_target_num: number of target to remove from controller
|
|
"""
|
|
params = {
|
|
'ctrlr': ctrlr,
|
|
'scsi_target_num': scsi_target_num
|
|
}
|
|
return client.call('vhost_scsi_controller_remove_target', params)
|
|
|
|
|
|
def vhost_create_blk_controller(client, **params):
|
|
"""Create vhost BLK controller.
|
|
Args:
|
|
ctrlr: controller name
|
|
dev_name: device name to add to controller
|
|
cpumask: cpu mask for this controller
|
|
transport: virtio blk transport name (default: vhost_user_blk)
|
|
readonly: set controller as read-only
|
|
packed_ring: support controller packed_ring
|
|
packed_ring_recovery: enable packed ring live recovery
|
|
"""
|
|
strip_globals(params)
|
|
remove_null(params)
|
|
|
|
return client.call('vhost_create_blk_controller', params)
|
|
|
|
|
|
def vhost_get_controllers(client, name=None):
|
|
"""Get information about configured vhost controllers.
|
|
|
|
Args:
|
|
name: controller name to query (optional; if omitted, query all controllers)
|
|
|
|
Returns:
|
|
List of vhost controllers.
|
|
"""
|
|
params = {}
|
|
if name:
|
|
params['name'] = name
|
|
return client.call('vhost_get_controllers', params)
|
|
|
|
|
|
def vhost_delete_controller(client, ctrlr):
|
|
"""Delete vhost controller from configuration.
|
|
Args:
|
|
ctrlr: controller name to remove
|
|
"""
|
|
params = {'ctrlr': ctrlr}
|
|
return client.call('vhost_delete_controller', params)
|
|
|
|
|
|
def bdev_virtio_attach_controller(client, name, trtype, traddr, dev_type, vq_count=None, vq_size=None):
|
|
"""Attaches virtio controller using
|
|
provided transport type and device type.
|
|
This will also create bdevs for any block
|
|
devices connected to that controller.
|
|
Args:
|
|
name: name base for new created bdevs
|
|
trtype: virtio target transport type: pci or user
|
|
traddr: transport type specific target address: e.g. UNIX
|
|
domain socket path or BDF
|
|
dev_type: device type: blk or scsi
|
|
vq_count: number of virtual queues to be used
|
|
vq_size: size of each queue
|
|
"""
|
|
params = {
|
|
'name': name,
|
|
'trtype': trtype,
|
|
'traddr': traddr,
|
|
'dev_type': dev_type
|
|
}
|
|
if vq_count:
|
|
params['vq_count'] = vq_count
|
|
if vq_size:
|
|
params['vq_size'] = vq_size
|
|
return client.call('bdev_virtio_attach_controller', params)
|
|
|
|
|
|
def bdev_virtio_detach_controller(client, name):
|
|
"""Remove a Virtio device
|
|
This will delete all bdevs exposed by this device.
|
|
Args:
|
|
name: virtio device name
|
|
"""
|
|
params = {'name': name}
|
|
return client.call('bdev_virtio_detach_controller', params)
|
|
|
|
|
|
def bdev_virtio_scsi_get_devices(client):
|
|
"""Get list of virtio scsi devices."""
|
|
return client.call('bdev_virtio_scsi_get_devices')
|
|
|
|
|
|
def bdev_virtio_blk_set_hotplug(client, enable, period_us=None):
|
|
"""Set options for the bdev virtio blk. This is startup command.
|
|
|
|
Args:
|
|
enable: True to enable hotplug, False to disable.
|
|
period_us: how often the hotplug is processed for insert and remove events. Set 0 to reset to default. (optional)
|
|
"""
|
|
params = {'enable': enable}
|
|
|
|
if period_us:
|
|
params['period_us'] = period_us
|
|
|
|
return client.call('bdev_virtio_blk_set_hotplug', params)
|