> From: Jiri Pirko <jiri@xxxxxxxxxxx> > Sent: Monday, June 17, 2024 3:09 PM > > Mon, Jun 17, 2024 at 04:57:23AM CEST, parav@xxxxxxxxxx wrote: > > > > > >> From: Jason Wang <jasowang@xxxxxxxxxx> > >> Sent: Monday, June 17, 2024 7:18 AM > >> > >> On Wed, Jun 12, 2024 at 2:30 PM Jiri Pirko <jiri@xxxxxxxxxxx> wrote: > >> > > >> > Wed, Jun 12, 2024 at 03:58:10AM CEST, kuba@xxxxxxxxxx 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.