file.index = queue_sel;
file.fd = dev->callfds[queue_sel];
- dev->ops->send_request(dev, VHOST_USER_SET_VRING_CALL, &file);
+ dev->ops->set_vring_call(dev, &file);
return 0;
}
state.index = queue_sel;
state.num = vring->num;
- dev->ops->send_request(dev, VHOST_USER_SET_VRING_NUM, &state);
+ dev->ops->set_vring_num(dev, &state);
state.index = queue_sel;
state.num = 0; /* no reservation */
if (dev->features & (1ULL << VIRTIO_F_RING_PACKED))
state.num |= (1 << 15);
- dev->ops->send_request(dev, VHOST_USER_SET_VRING_BASE, &state);
+ dev->ops->set_vring_base(dev, &state);
- dev->ops->send_request(dev, VHOST_USER_SET_VRING_ADDR, &addr);
+ dev->ops->set_vring_addr(dev, &addr);
/* Of all per virtqueue MSGs, make sure VHOST_USER_SET_VRING_KICK comes
* lastly because vhost depends on this msg to judge if
*/
file.index = queue_sel;
file.fd = dev->kickfds[queue_sel];
- dev->ops->send_request(dev, VHOST_USER_SET_VRING_KICK, &file);
+ dev->ops->set_vring_kick(dev, &file);
return 0;
}
/* Strip VIRTIO_NET_F_CTRL_VQ, as devices do not really need to know */
features &= ~(1ull << VIRTIO_NET_F_CTRL_VQ);
features &= ~(1ull << VIRTIO_NET_F_STATUS);
- ret = dev->ops->send_request(dev, VHOST_USER_SET_FEATURES, &features);
+ ret = dev->ops->set_features(dev, features);
if (ret < 0)
goto error;
PMD_DRV_LOG(INFO, "set features: %" PRIx64, features);
goto error;
/* Step 2: share memory regions */
- ret = dev->ops->send_request(dev, VHOST_USER_SET_MEM_TABLE, NULL);
+ ret = dev->ops->set_memory_table(dev);
if (ret < 0)
goto error;
/* Stop the backend. */
for (i = 0; i < dev->max_queue_pairs * 2; ++i) {
state.index = i;
- if (dev->ops->send_request(dev, VHOST_USER_GET_VRING_BASE,
- &state) < 0) {
- PMD_DRV_LOG(ERR, "get_vring_base failed, index=%u\n",
+ if (dev->ops->get_vring_base(dev, &state) < 0) {
+ PMD_DRV_LOG(ERR, "get_vring_base failed, index=%u",
i);
error = -1;
goto out;
dev->ops->enable_qp(dev, i, 0);
/* Step 2: update memory regions */
- dev->ops->send_request(dev, VHOST_USER_SET_MEM_TABLE, NULL);
+ dev->ops->set_memory_table(dev);
/* Step 3: resume the active queues */
for (i = 0; i < dev->queue_pairs; i++)
1ULL << VHOST_USER_PROTOCOL_F_STATUS)
#define VHOST_VDPA_SUPPORTED_PROTOCOL_FEATURES \
- (1ULL << VHOST_BACKEND_F_IOTLB_MSG_V2)
+ (1ULL << VHOST_BACKEND_F_IOTLB_MSG_V2 | \
+ 1ULL << VHOST_BACKEND_F_IOTLB_BATCH)
int
virtio_user_dev_init(struct virtio_user_dev *dev, char *path, int queues,
int cq, int queue_size, const char *mac, char **ifname,
(1ULL << VHOST_USER_F_PROTOCOL_FEATURES);
if (!dev->is_server) {
- if (dev->ops->send_request(dev, VHOST_USER_SET_OWNER,
- NULL) < 0) {
+ if (dev->ops->set_owner(dev) < 0) {
PMD_INIT_LOG(ERR, "set_owner fails: %s",
strerror(errno));
return -1;
}
- if (dev->ops->send_request(dev, VHOST_USER_GET_FEATURES,
- &dev->device_features) < 0) {
+ if (dev->ops->get_features(dev, &dev->device_features) < 0) {
PMD_INIT_LOG(ERR, "get_features failed: %s",
strerror(errno));
return -1;
if ((dev->device_features & (1ULL << VHOST_USER_F_PROTOCOL_FEATURES)) ||
(dev->backend_type == VIRTIO_USER_BACKEND_VHOST_VDPA)) {
- if (dev->ops->send_request(dev,
- VHOST_USER_GET_PROTOCOL_FEATURES,
- &protocol_features))
+ if (dev->ops->get_protocol_features(dev, &protocol_features))
return -1;
dev->protocol_features &= protocol_features;
- if (dev->ops->send_request(dev,
- VHOST_USER_SET_PROTOCOL_FEATURES,
- &dev->protocol_features))
+ if (dev->ops->set_protocol_features(dev, dev->protocol_features))
return -1;
- if (!(dev->protocol_features &
- (1ULL << VHOST_USER_PROTOCOL_F_MQ)))
- dev->unsupported_features |=
- (1ull << VIRTIO_NET_F_MQ);
+ if (!(dev->protocol_features & (1ULL << VHOST_USER_PROTOCOL_F_MQ)))
+ dev->unsupported_features |= (1ull << VIRTIO_NET_F_MQ);
}
} else {
/* We just pretend vhost-user can support all these features.