2015-02-02 17:40:20 +00:00
|
|
|
DPDK_2.0 {
|
|
|
|
global:
|
|
|
|
|
|
|
|
rte_vhost_dequeue_burst;
|
|
|
|
rte_vhost_driver_callback_register;
|
|
|
|
rte_vhost_driver_register;
|
|
|
|
rte_vhost_enable_guest_notification;
|
|
|
|
rte_vhost_enqueue_burst;
|
|
|
|
|
|
|
|
local: *;
|
|
|
|
};
|
2015-06-30 09:20:48 +00:00
|
|
|
|
|
|
|
DPDK_2.1 {
|
|
|
|
global:
|
|
|
|
|
|
|
|
rte_vhost_driver_unregister;
|
|
|
|
|
|
|
|
} DPDK_2.0;
|
2016-05-10 22:12:57 +00:00
|
|
|
|
|
|
|
DPDK_16.07 {
|
|
|
|
global:
|
|
|
|
|
2016-05-10 22:46:24 +00:00
|
|
|
rte_vhost_avail_entries;
|
2016-05-10 22:38:44 +00:00
|
|
|
rte_vhost_get_ifname;
|
2016-05-10 22:12:57 +00:00
|
|
|
rte_vhost_get_numa_node;
|
2016-05-10 22:23:32 +00:00
|
|
|
rte_vhost_get_queue_num;
|
2016-05-10 22:12:57 +00:00
|
|
|
|
|
|
|
} DPDK_2.1;
|
2017-03-12 16:34:01 +00:00
|
|
|
|
|
|
|
DPDK_17.05 {
|
|
|
|
global:
|
|
|
|
|
2017-04-01 07:22:39 +00:00
|
|
|
rte_vhost_driver_disable_features;
|
|
|
|
rte_vhost_driver_enable_features;
|
|
|
|
rte_vhost_driver_get_features;
|
|
|
|
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;
|
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;
|
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-03-12 16:34:01 +00:00
|
|
|
|
|
|
|
} DPDK_16.07;
|