2021-08-08 21:26:58 +02:00
|
|
|
DPDK_22 {
|
2015-02-02 12:40:20 -05:00
|
|
|
global:
|
|
|
|
|
2021-08-08 21:26:58 +02:00
|
|
|
rte_vdpa_find_device_by_name;
|
|
|
|
rte_vdpa_get_features;
|
|
|
|
rte_vdpa_get_protocol_features;
|
|
|
|
rte_vdpa_get_queue_num;
|
|
|
|
rte_vdpa_get_rte_device;
|
|
|
|
rte_vdpa_get_stats;
|
|
|
|
rte_vdpa_get_stats_names;
|
|
|
|
rte_vdpa_register_device;
|
|
|
|
rte_vdpa_relay_vring_used;
|
|
|
|
rte_vdpa_reset_stats;
|
|
|
|
rte_vdpa_unregister_device;
|
2019-11-20 17:23:38 +00:00
|
|
|
rte_vhost_avail_entries;
|
2021-09-07 10:58:00 +08:00
|
|
|
rte_vhost_clr_inflight_desc_packed;
|
|
|
|
rte_vhost_clr_inflight_desc_split;
|
|
|
|
rte_vhost_crypto_create;
|
|
|
|
rte_vhost_crypto_fetch_requests;
|
|
|
|
rte_vhost_crypto_finalize_requests;
|
|
|
|
rte_vhost_crypto_free;
|
|
|
|
rte_vhost_crypto_set_zero_copy;
|
2015-02-02 12:40:20 -05:00
|
|
|
rte_vhost_dequeue_burst;
|
2021-08-08 21:26:58 +02:00
|
|
|
rte_vhost_driver_attach_vdpa_device;
|
2015-02-02 12:40:20 -05:00
|
|
|
rte_vhost_driver_callback_register;
|
2021-08-08 21:26:58 +02:00
|
|
|
rte_vhost_driver_detach_vdpa_device;
|
2017-04-01 15:22:39 +08:00
|
|
|
rte_vhost_driver_disable_features;
|
|
|
|
rte_vhost_driver_enable_features;
|
|
|
|
rte_vhost_driver_get_features;
|
2021-09-07 10:58:00 +08:00
|
|
|
rte_vhost_driver_get_protocol_features;
|
|
|
|
rte_vhost_driver_get_queue_num;
|
2021-08-08 21:26:58 +02:00
|
|
|
rte_vhost_driver_get_vdpa_device;
|
2019-11-20 17:23:38 +00:00
|
|
|
rte_vhost_driver_register;
|
2017-04-01 15:22:39 +08:00
|
|
|
rte_vhost_driver_set_features;
|
2021-09-07 10:58:00 +08:00
|
|
|
rte_vhost_driver_set_protocol_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 15:22:56 +08: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;
|
2021-09-07 10:58:00 +08:00
|
|
|
rte_vhost_extern_callback_register;
|
2019-11-20 17:23:38 +00:00
|
|
|
rte_vhost_get_ifname;
|
2021-08-08 21:26:58 +02:00
|
|
|
rte_vhost_get_log_base;
|
2017-04-01 15:22:43 +08:00
|
|
|
rte_vhost_get_mem_table;
|
2017-03-12 17:34:01 +01:00
|
|
|
rte_vhost_get_mtu;
|
2017-04-01 15:22:44 +08:00
|
|
|
rte_vhost_get_negotiated_features;
|
2019-11-20 17:23:38 +00:00
|
|
|
rte_vhost_get_numa_node;
|
|
|
|
rte_vhost_get_queue_num;
|
2021-08-08 21:26:58 +02:00
|
|
|
rte_vhost_get_vdpa_device;
|
2021-09-07 10:58:00 +08:00
|
|
|
rte_vhost_get_vhost_ring_inflight;
|
2017-04-01 15:22:45 +08:00
|
|
|
rte_vhost_get_vhost_vring;
|
2021-08-08 21:26:58 +02:00
|
|
|
rte_vhost_get_vring_base;
|
2021-09-07 10:58:00 +08:00
|
|
|
rte_vhost_get_vring_base_from_inflight;
|
2017-04-01 15:22:48 +08:00
|
|
|
rte_vhost_get_vring_num;
|
2017-04-01 15:22:46 +08:00
|
|
|
rte_vhost_gpa_to_vva;
|
2021-08-08 21:26:58 +02:00
|
|
|
rte_vhost_host_notifier_ctrl;
|
2017-04-01 15:22:55 +08:00
|
|
|
rte_vhost_log_used_vring;
|
|
|
|
rte_vhost_log_write;
|
2017-05-26 13:18:02 -04:00
|
|
|
rte_vhost_rx_queue_count;
|
2021-09-07 10:58:00 +08:00
|
|
|
rte_vhost_set_inflight_desc_packed;
|
|
|
|
rte_vhost_set_inflight_desc_split;
|
|
|
|
rte_vhost_set_last_inflight_io_packed;
|
|
|
|
rte_vhost_set_last_inflight_io_split;
|
2020-09-15 09:25:56 +02:00
|
|
|
rte_vhost_set_vring_base;
|
2021-09-07 10:58:00 +08:00
|
|
|
rte_vhost_va_from_guest_pa;
|
2021-08-08 21:26:58 +02:00
|
|
|
rte_vhost_vring_call;
|
2020-09-15 09:25:56 +02:00
|
|
|
|
|
|
|
local: *;
|
|
|
|
};
|
|
|
|
|
|
|
|
EXPERIMENTAL {
|
|
|
|
global:
|
|
|
|
|
2020-10-02 16:36:01 +01:00
|
|
|
rte_vhost_crypto_driver_start;
|
2019-12-20 16:22:55 +08:00
|
|
|
rte_vhost_slave_config_change;
|
2020-07-07 13:07:08 +08:00
|
|
|
rte_vhost_async_channel_register;
|
|
|
|
rte_vhost_async_channel_unregister;
|
|
|
|
rte_vhost_submit_enqueue_burst;
|
|
|
|
rte_vhost_poll_enqueue_completed;
|
2021-03-22 16:22:56 +09:00
|
|
|
|
|
|
|
# added in 21.05
|
|
|
|
rte_vhost_get_negotiated_protocol_features;
|
2021-07-08 06:21:22 -04:00
|
|
|
|
|
|
|
# added in 21.08
|
|
|
|
rte_vhost_async_get_inflight;
|
2021-07-06 04:29:34 -04:00
|
|
|
rte_vhost_async_channel_register_thread_unsafe;
|
|
|
|
rte_vhost_async_channel_unregister_thread_unsafe;
|
2021-07-23 08:09:35 +00:00
|
|
|
rte_vhost_clear_queue_thread_unsafe;
|
2018-04-27 16:17:55 +01:00
|
|
|
};
|