On Thu, Oct 21, 2021 at 07:35:01PM +0300, Parav Pandit wrote: > Currently user cannot view the vdpa device config space. Also user > cannot set the mac address and mtu of the vdpa device. > This patchset enables users to set the mac address and mtu of the vdpa > device once the device is created. > If a vendor driver supports such configuration user can set it otherwise > user gets unsupported error. > > vdpa mac address and mtu are device configuration layout fields. > To keep interface generic enough for multiple types of vdpa devices, mac > address and mtu setting is implemented as configuration layout fields. So I got lots of "sha1 is lacking or useless" warnings with this. I did my best to merge but please check out the result in linux-next. > An example of query & set of config layout fields for vdpa_sim_net > driver: > > Configuration layout fields are set when a vdpa device is created. > > $ vdpa mgmtdev show > vdpasim_net: > supported_classes net > pci/0000:08:00.2: > supported_classes net > > Add the device with MAC and MTU: > $ vdpa dev add name bar mgmtdev vdpasim_net mac 00:11:22:33:44:66 mtu 1500 > > In above command only mac address or only mtu can also be set. > > View the config after setting: > $ vdpa dev config show > bar: mac 00:11:22:33:44:66 link up link_announce false mtu 1500 > > Patch summary: > Patch-1 introduced and use helpers for get/set config area > Patch-2 implement query device config layout > Patch-3 use kernel coding style for structure comment > Patch-4 enanble user to set mac and mtu in config space > Patch-5 vdpa_sim_net implements get and set of config layout > Patch-6 mlx vdpa driver fix to avoid clearing VIRTIO_NET_F_MAC during > reset callback > Patch-7 mlx5 vdpa driver supports user provided mac config > Patch-8 mlx5 vdpa driver uses user provided mac during rx flow steering > > changelog: > v3->v4: > - enable setting mac and mtu of the vdpa device using creation time > - introduced a patch to fix mlx5 driver to avoid clearing > VIRTIO_NET_F_MAC > - introduced a patch to use kernel coding style for structure comment > - removed config attributes not used by sim and mlx5 net drivers > v2->v3: > - dropped patches which are merged > - simplified code to handle non transitional devices > > v1->v2: > - new patches to fix kdoc comment to add new kdoc section > - new patch to have synchronized access to features and config space > - read whole net config layout instead of individual fields > - added error extack for unmanaged vdpa device > - fixed several endianness issues > - introduced vdpa device ops for get config which is synchronized > with other get/set features ops and config ops > - fixed mtu range checking for max > - using NLA_POLICY_ETH_ADDR > - set config moved to device ops instead of mgmtdev ops > - merged build and set to single routine > - ensuring that user has NET_ADMIN capability for configuring network > attributes > - using updated interface and callbacks for get/set config > - following new api for config get/set for mgmt tool in mlx5 vdpa > driver > - fixes for accessing right SF dma device and bar address > - fix for mtu calculation > - fix for bit access in features > - fix for index restore with suspend/resume operation > > > Eli Cohen (2): > vdpa/mlx5: Support configuration of MAC > vdpa/mlx5: Forward only packets with allowed MAC address > > Parav Pandit (6): > vdpa: Introduce and use vdpa device get, set config helpers > vdpa: Introduce query of device config layout > vdpa: Use kernel coding style for structure comments > vdpa: Enable user to set mac and mtu of vdpa device > vdpa_sim_net: Enable user to set mac address and mtu > vdpa/mlx5: Fix clearing of VIRTIO_NET_F_MAC feature bit > > drivers/vdpa/ifcvf/ifcvf_main.c | 3 +- > drivers/vdpa/mlx5/net/mlx5_vnet.c | 92 +++++++--- > drivers/vdpa/vdpa.c | 243 ++++++++++++++++++++++++++- > drivers/vdpa/vdpa_sim/vdpa_sim_blk.c | 3 +- > drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 38 +++-- > drivers/vdpa/vdpa_user/vduse_dev.c | 3 +- > drivers/vhost/vdpa.c | 3 +- > include/linux/vdpa.h | 47 ++++-- > include/uapi/linux/vdpa.h | 6 + > 9 files changed, 375 insertions(+), 63 deletions(-) > > -- > 2.25.4 _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization