diff --git a/clients/cli/devices.c b/clients/cli/devices.c index e4c49c113..387edef8e 100644 --- a/clients/cli/devices.c +++ b/clients/cli/devices.c @@ -101,10 +101,11 @@ NmcOutputField nmc_fields_dev_show_cap[] = { {"CARRIER-DETECT", N_("CARRIER-DETECT")}, /* 1 */ {"SPEED", N_("SPEED")}, /* 2 */ {"IS-SOFTWARE", N_("IS-SOFTWARE")}, /* 3 */ + {"SRIOV", N_("SRIOV")}, /* 4 */ {NULL, NULL} }; -#define NMC_FIELDS_DEV_SHOW_CAP_ALL "NAME,CARRIER-DETECT,SPEED,IS-SOFTWARE" -#define NMC_FIELDS_DEV_SHOW_CAP_COMMON "NAME,CARRIER-DETECT,SPEED,IS-SOFTWARE" +#define NMC_FIELDS_DEV_SHOW_CAP_ALL "NAME,CARRIER-DETECT,SPEED,IS-SOFTWARE,SRIOV" +#define NMC_FIELDS_DEV_SHOW_CAP_COMMON "NAME,CARRIER-DETECT,SPEED,IS-SOFTWARE,SRIOV" /* Available fields for 'device show' - wired properties part */ NmcOutputField nmc_fields_dev_show_wired_prop[] = { @@ -1196,6 +1197,7 @@ show_device_info (NMDevice *device, NmCli *nmc) set_val_strc (arr, 1, (caps & NM_DEVICE_CAP_CARRIER_DETECT) ? _("yes") : _("no")); set_val_str (arr, 2, speed_str); set_val_strc (arr, 3, (caps & NM_DEVICE_CAP_IS_SOFTWARE) ? _("yes") : _("no")); + set_val_strc (arr, 4, (caps & NM_DEVICE_CAP_SRIOV) ? _("yes") : _("no")); g_ptr_array_add (nmc->output_data, arr); print_data (nmc); /* Print all data */ diff --git a/libnm-core/nm-dbus-interface.h b/libnm-core/nm-dbus-interface.h index 16318b78b..8abc91bbf 100644 --- a/libnm-core/nm-dbus-interface.h +++ b/libnm-core/nm-dbus-interface.h @@ -239,6 +239,7 @@ typedef enum { * @NM_DEVICE_CAP_NM_SUPPORTED: NetworkManager supports this device * @NM_DEVICE_CAP_CARRIER_DETECT: this device can indicate carrier status * @NM_DEVICE_CAP_IS_SOFTWARE: this device is a software device + * @NM_DEVICE_CAP_SRIOV: this device supports single-root I/O virtualization * * General device capability flags. **/ @@ -247,9 +248,9 @@ typedef enum { /*< flags >*/ NM_DEVICE_CAP_NM_SUPPORTED = 0x00000001, NM_DEVICE_CAP_CARRIER_DETECT = 0x00000002, NM_DEVICE_CAP_IS_SOFTWARE = 0x00000004, + NM_DEVICE_CAP_SRIOV = 0x00000008, } NMDeviceCapabilities; - /** * NMDeviceWifiCapabilities: * @NM_WIFI_DEVICE_CAP_NONE: device has no encryption/authentication capabilities diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 9aeef9a87..24c61b607 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -2934,6 +2934,9 @@ realize_start_setup (NMDevice *self, if (nm_platform_check_support_user_ipv6ll (nm_device_get_platform (self))) priv->nm_ipv6ll = nm_platform_link_get_user_ipv6ll_enabled (nm_device_get_platform (self), priv->ifindex); + + if (nm_platform_link_supports_sriov (nm_device_get_platform (self), priv->ifindex)) + capabilities |= NM_DEVICE_CAP_SRIOV; } if (klass->get_generic_capabilities)