[PATCH v3 06/22] vhost: introduce API to fetch negotiated features
From: Yuanhan Liu <hidden>
Date: 2017-03-28 12:48:22
Subsystem:
library code, the rest · Maintainers:
Andrew Morton, Linus Torvalds
Signed-off-by: Yuanhan Liu <redacted> --- lib/librte_vhost/rte_vhost_version.map | 1 + lib/librte_vhost/rte_virtio_net.h | 10 ++++++++++ lib/librte_vhost/vhost.c | 12 ++++++++++++ 3 files changed, 23 insertions(+)
diff --git a/lib/librte_vhost/rte_vhost_version.map b/lib/librte_vhost/rte_vhost_version.map
index 664a5f3..cec1e9e 100644
--- a/lib/librte_vhost/rte_vhost_version.map
+++ b/lib/librte_vhost/rte_vhost_version.map@@ -37,5 +37,6 @@ DPDK_17.05 { rte_vhost_driver_set_features; rte_vhost_get_mem_table; rte_vhost_get_mtu; + rte_vhost_get_negotiated_features; } DPDK_16.07;
diff --git a/lib/librte_vhost/rte_virtio_net.h b/lib/librte_vhost/rte_virtio_net.h
index 5a91f97..57e57e3 100644
--- a/lib/librte_vhost/rte_virtio_net.h
+++ b/lib/librte_vhost/rte_virtio_net.h@@ -154,6 +154,16 @@ struct virtio_net_device_ops { */ uint64_t rte_vhost_driver_get_features(const char *path); +/** + * Get the feature bits after negotiation + * + * @param vid + * Vhost device ID + * @return + * Negotiated feature bits on success, 0 on failure + */ +uint64_t rte_vhost_get_negotiated_features(int vid); + /* Register callbacks. */ int rte_vhost_driver_callback_register(const char *path, struct virtio_net_device_ops const * const ops);
diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c
index 2b41652..08dccfb 100644
--- a/lib/librte_vhost/vhost.c
+++ b/lib/librte_vhost/vhost.c@@ -359,6 +359,18 @@ struct virtio_net * return 0; } +uint64_t +rte_vhost_get_negotiated_features(int vid) +{ + struct virtio_net *dev; + + dev = get_device(vid); + if (!dev) + return 0; + + return dev->features; +} + int rte_vhost_get_mem_table(int vid, struct rte_vhost_memory **mem) {
--
1.9.0