Skip to content

Commit 612f330

Browse files
elic307imstsirkin
authored andcommitted
vdpa: Add support for returning device configuration information
Add netlink attribute to store the negotiated features. This can be used by userspace to get the current state of the vdpa instance. Examples: $ vdpa dev config show vdpa-a vdpa-a: mac 00:00:00:00:88:88 link up link_announce false max_vq_pairs 16 mtu 1500 negotiated_features CSUM GUEST_CSUM MTU MAC HOST_TSO4 HOST_TSO6 STATUS \ CTRL_VQ MQ CTRL_MAC_ADDR VERSION_1 ACCESS_PLATFORM $ vdpa -j dev config show vdpa-a {"config":{"vdpa-a":{"mac":"00:00:00:00:88:88","link ":"up","link_announce":false, \ "max_vq_pairs":16,"mtu":1500,"negotiated_features":["CSUM","GUEST_CSUM","MTU","MAC", \ "HOST_TSO4","HOST_TSO6","STATUS","CTRL_VQ","MQ","CTRL_MAC_ADDR","VERSION_1", \ "ACCESS_PLATFORM"]}}} $ vdpa -jp dev config show vdpa-a { "config": { "vdpa-a": { "mac": "00:00:00:00:88:88", "link ": "up", "link_announce ": false, "max_vq_pairs": 16, "mtu": 1500, "negotiated_features": [ "CSUM","GUEST_CSUM","MTU","MAC","HOST_TSO4","HOST_TSO6","STATUS","CTRL_VQ","MQ", \ "CTRL_MAC_ADDR","VERSION_1","ACCESS_PLATFORM" ] } } } Signed-off-by: Eli Cohen <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Michael S. Tsirkin <[email protected]> Acked-by: Jason Wang <[email protected]>
1 parent 7556052 commit 612f330

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

drivers/vdpa/vdpa.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -846,6 +846,9 @@ static int vdpa_dev_net_config_fill(struct vdpa_device *vdev, struct sk_buff *ms
846846
return -EMSGSIZE;
847847

848848
features = vdev->config->get_driver_features(vdev);
849+
if (nla_put_u64_64bit(msg, VDPA_ATTR_DEV_NEGOTIATED_FEATURES, features,
850+
VDPA_ATTR_PAD))
851+
return -EMSGSIZE;
849852

850853
return vdpa_dev_net_mq_config_fill(vdev, msg, features, &config);
851854
}

include/uapi/linux/vdpa.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ enum vdpa_command {
2323
enum vdpa_attr {
2424
VDPA_ATTR_UNSPEC,
2525

26+
/* Pad attribute for 64b alignment */
27+
VDPA_ATTR_PAD = VDPA_ATTR_UNSPEC,
28+
2629
/* bus name (optional) + dev name together make the parent device handle */
2730
VDPA_ATTR_MGMTDEV_BUS_NAME, /* string */
2831
VDPA_ATTR_MGMTDEV_DEV_NAME, /* string */
@@ -40,6 +43,7 @@ enum vdpa_attr {
4043
VDPA_ATTR_DEV_NET_CFG_MAX_VQP, /* u16 */
4144
VDPA_ATTR_DEV_NET_CFG_MTU, /* u16 */
4245

46+
VDPA_ATTR_DEV_NEGOTIATED_FEATURES, /* u64 */
4347
/* new attributes must be added above here */
4448
VDPA_ATTR_MAX,
4549
};

0 commit comments

Comments
 (0)