2020-08-10 15:10:20 +00:00
|
|
|
DPDK_21 {
|
2015-02-02 17:40:20 +00:00
|
|
|
global:
|
|
|
|
|
2019-11-20 17:23:38 +00:00
|
|
|
rte_vhost_avail_entries;
|
2015-02-02 17:40:20 +00:00
|
|
|
rte_vhost_dequeue_burst;
|
|
|
|
rte_vhost_driver_callback_register;
|
2017-04-01 07:22:39 +00:00
|
|
|
rte_vhost_driver_disable_features;
|
|
|
|
rte_vhost_driver_enable_features;
|
|
|
|
rte_vhost_driver_get_features;
|
2019-11-20 17:23:38 +00:00
|
|
|
rte_vhost_driver_register;
|
2017-04-01 07:22:39 +00:00
|
|
|
rte_vhost_driver_set_features;
|
vhost: introduce API to start a specific driver
We used to use rte_vhost_driver_session_start() to trigger the vhost-user
session. It takes no argument, thus it's a global trigger. And it could
be problematic.
The issue is, currently, rte_vhost_driver_register(path, flags) actually
tries to put it into the session loop (by fdset_add). However, it needs
a set of APIs to set a vhost-user driver properly:
* rte_vhost_driver_register(path, flags);
* rte_vhost_driver_set_features(path, features);
* rte_vhost_driver_callback_register(path, vhost_device_ops);
If a new vhost-user driver is registered after the trigger (think OVS-DPDK
that could add a port dynamically from cmdline), the current code will
effectively starts the session for the new driver just after the first
API rte_vhost_driver_register() is invoked, leaving later calls taking
no effect at all.
To handle the case properly, this patch introduce a new API,
rte_vhost_driver_start(path), to trigger a specific vhost-user driver.
To do that, the rte_vhost_driver_register(path, flags) is simplified
to create the socket only and let rte_vhost_driver_start(path) to
actually put it into the session loop.
Meanwhile, the rte_vhost_driver_session_start is removed: we could hide
the session thread internally (create the thread if it has not been
created). This would also simplify the application.
NOTE: the API order in prog guide is slightly adjusted for showing the
correct invoke order.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2017-04-01 07:22:56 +00:00
|
|
|
rte_vhost_driver_start;
|
2019-11-20 17:23:38 +00:00
|
|
|
rte_vhost_driver_unregister;
|
|
|
|
rte_vhost_enable_guest_notification;
|
|
|
|
rte_vhost_enqueue_burst;
|
|
|
|
rte_vhost_get_ifname;
|
2017-04-01 07:22:43 +00:00
|
|
|
rte_vhost_get_mem_table;
|
2017-03-12 16:34:01 +00:00
|
|
|
rte_vhost_get_mtu;
|
2017-04-01 07:22:44 +00:00
|
|
|
rte_vhost_get_negotiated_features;
|
2019-11-20 17:23:38 +00:00
|
|
|
rte_vhost_get_numa_node;
|
|
|
|
rte_vhost_get_queue_num;
|
2017-04-01 07:22:45 +00:00
|
|
|
rte_vhost_get_vhost_vring;
|
2017-04-01 07:22:48 +00:00
|
|
|
rte_vhost_get_vring_num;
|
2017-04-01 07:22:46 +00:00
|
|
|
rte_vhost_gpa_to_vva;
|
2017-04-01 07:22:55 +00:00
|
|
|
rte_vhost_log_used_vring;
|
|
|
|
rte_vhost_log_write;
|
2017-05-26 17:18:02 +00:00
|
|
|
rte_vhost_rx_queue_count;
|
2018-01-02 09:31:36 +00:00
|
|
|
rte_vhost_vring_call;
|
2020-09-15 07:25:56 +00:00
|
|
|
rte_vhost_get_log_base;
|
|
|
|
rte_vhost_get_vring_base;
|
|
|
|
rte_vhost_set_vring_base;
|
|
|
|
rte_vhost_host_notifier_ctrl;
|
2018-04-02 11:46:53 +00:00
|
|
|
rte_vdpa_register_device;
|
|
|
|
rte_vdpa_unregister_device;
|
2020-06-18 18:59:41 +00:00
|
|
|
rte_vdpa_get_stats_names;
|
|
|
|
rte_vdpa_get_stats;
|
|
|
|
rte_vdpa_reset_stats;
|
2018-04-02 11:46:54 +00:00
|
|
|
rte_vhost_driver_attach_vdpa_device;
|
|
|
|
rte_vhost_driver_detach_vdpa_device;
|
2020-06-26 14:04:33 +00:00
|
|
|
rte_vhost_driver_get_vdpa_device;
|
|
|
|
rte_vhost_get_vdpa_device;
|
2020-09-15 07:25:56 +00:00
|
|
|
rte_vdpa_find_device_by_name;
|
|
|
|
rte_vdpa_get_rte_device;
|
|
|
|
rte_vdpa_get_queue_num;
|
|
|
|
rte_vdpa_get_features;
|
|
|
|
rte_vdpa_get_protocol_features;
|
|
|
|
rte_vdpa_relay_vring_used;
|
|
|
|
|
|
|
|
local: *;
|
|
|
|
};
|
|
|
|
|
|
|
|
EXPERIMENTAL {
|
|
|
|
global:
|
|
|
|
|
2018-04-02 11:46:55 +00:00
|
|
|
rte_vhost_driver_get_protocol_features;
|
|
|
|
rte_vhost_driver_get_queue_num;
|
2018-04-05 16:01:34 +00:00
|
|
|
rte_vhost_crypto_create;
|
2020-10-02 15:36:01 +00:00
|
|
|
rte_vhost_crypto_driver_start;
|
2018-04-05 16:01:34 +00:00
|
|
|
rte_vhost_crypto_free;
|
|
|
|
rte_vhost_crypto_fetch_requests;
|
|
|
|
rte_vhost_crypto_finalize_requests;
|
|
|
|
rte_vhost_crypto_set_zero_copy;
|
2018-01-23 13:37:50 +00:00
|
|
|
rte_vhost_va_from_guest_pa;
|
2019-01-17 15:32:26 +00:00
|
|
|
rte_vhost_extern_callback_register;
|
2019-03-19 10:54:16 +00:00
|
|
|
rte_vhost_driver_set_protocol_features;
|
2019-10-09 20:48:34 +00:00
|
|
|
rte_vhost_set_inflight_desc_split;
|
|
|
|
rte_vhost_set_inflight_desc_packed;
|
|
|
|
rte_vhost_set_last_inflight_io_split;
|
|
|
|
rte_vhost_set_last_inflight_io_packed;
|
|
|
|
rte_vhost_clr_inflight_desc_split;
|
|
|
|
rte_vhost_clr_inflight_desc_packed;
|
2019-10-09 20:48:35 +00:00
|
|
|
rte_vhost_get_vhost_ring_inflight;
|
|
|
|
rte_vhost_get_vring_base_from_inflight;
|
2019-12-20 08:22:55 +00:00
|
|
|
rte_vhost_slave_config_change;
|
2020-07-07 05:07:08 +00:00
|
|
|
rte_vhost_async_channel_register;
|
|
|
|
rte_vhost_async_channel_unregister;
|
|
|
|
rte_vhost_submit_enqueue_burst;
|
|
|
|
rte_vhost_poll_enqueue_completed;
|
2021-03-22 07:22:56 +00:00
|
|
|
|
|
|
|
# added in 21.05
|
|
|
|
rte_vhost_get_negotiated_protocol_features;
|
2018-04-27 15:17:55 +00:00
|
|
|
};
|