Feature request: networking: Expose configuration of SR-IOV `sriov_numvfs` for interfaces that support it

I read with great interest that MAAS KVM Pods now can make use of SR-IOV when deploying virtual machines.

However, I also have interest in deploying metal machines and have cards that support it set up with an appropriate number of Virtual Functions (VFs) through the use of Netplan’s virtual-function-count property.

The allowed value depends on hardware and can be bounds checked by looking at the sriov_totalvfs sysfs object for each individual NIC.

Today we have a set of charms that allows users to configure this value, but I believe it would be more consistent and coherent if this type of configuration was primarily driven through MAAS.

We also have emerging use cases where we need to set up sriov_numvfs on metal where we currently do not have charms capable of adjusting this configuration. One example being the on-going SmartNIC enablement work, where the machine will only host a hypervisor and network components and their charms will be running on the SmartNIC itself.