RE: [PATCH 1/2] vdpa: support set mac address from vdpa tool

Parav Pandit
2024-06-17T09:44:56Z

> From: Jiri Pirko <jiri@resnulli.us>
> Sent: Monday, June 17, 2024 3:09 PM
>
> Mon, Jun 17, 2024 at 04:57:23AM CEST, parav@nvidia.com wrote:
> >
> >
> >> From: Jason Wang <jasowang@redhat.com>
> >> Sent: Monday, June 17, 2024 7:18 AM
> >>
> >> On Wed, Jun 12, 2024 at 2:30 PM Jiri Pirko <jiri@resnulli.us> wrote:
> >> >
> >> > Wed, Jun 12, 2024 at 03:58:10AM CEST, kuba@kernel.org wrote:
> >> > >On Tue, 11 Jun 2024 13:32:32 +0800 Cindy Lu wrote:
> >> > >> Add new UAPI to support the mac address from vdpa tool Function
> >> > >> vdpa_nl_cmd_dev_config_set_doit() will get the MAC address from
> >> > >> the vdpa tool and then set it to the device.
> >> > >>
> >> > >> The usage is: vdpa dev set name vdpa_name mac **:**:**:**:**:**
> >> > >
> >> > >Why don't you use devlink?
> >> >
> >> > Fair question. Why does vdpa-specific uapi even exist? To have
> >> > driver-specific uapi Does not make any sense to me :/
> >>
> >> It came with devlink first actually, but switched to a dedicated uAPI.
> >>
> >> Parav(cced) may explain more here.
> >>
> >Devlink configures function level mac that applies to all protocol devices
> (vdpa, rdma, netdev) etc.
> >Additionally, vdpa device level mac can be different (an additional one) to
> apply to only vdpa traffic.
> >Hence dedicated uAPI was added.
>
> There is 1:1 relation between vdpa instance and devlink port, isn't it?
> Then we have:
> devlink port function set DEV/PORT_INDEX hw_addr ADDR
>
Above command is privilege command done by the hypervisor on the port function.
Vpda level setting the mac is similar to a function owner driver setting the mac on the self netdev (even though devlink side has configured some mac for it).
For example,
$ ip link set dev wlan1 address 00:11:22:33:44:55

> Which does exactly what you need, configure function hw address (mac).
>
> When you say VDPA traffic, do you suggest there might be VDPA instance and
> netdev running on the same VF in parallel. If yes, do we have 2 eswitch port
> representors to be separately used to steer the traffic?
> If no, how is that supposed to be working?
A eswitch may allow incoming and outgoing traffic from multiple mac addresses left to the tc rules to decide.
It does not need two eswitch ports.