On Tue, 2015-05-26 at 00:50 +0300, Or Gerlitz wrote: > On Tue, May 26, 2015 at 12:14 AM, Jason Gunthorpe > <jgunthorpe@xxxxxxxxxxxxxxxxxxxx> wrote: > > On Mon, May 25, 2015 at 11:04:41PM +0300, Or Gerlitz wrote: > > > >> OK, so rewinding a bit, the IB VF [1] identity is their 8 bytes port > >> GUID, and as Jason noted the user/kernel API allows to deliver up to > >> 32 bytes between user and kernel under the set_vf_mac flow > >> (do_setvfinfo() in net/core/rtnetlink.c). Trying it out through > >> **non-modified** ip tool and net/core/rtnetlink.c things just work - > >> I can set eight bytes value to be the virtual port GUID : > > > > Was I not perfectly clear? You have to use the 20 byte LLADDR format here: > > > >> # ip link set dev ib0 vf 1 mac aa:bb:cc:dd:ee:ff:11:22 > > Jason, > > I am aiming to provision the VF IB end-node address == port GUID (vGUID) > in the same manner that VF Eth end-node address is their MAC, not > more, not less. > > 20 bytes are the lladdr of IPoIB devices which isn't the VF IB > end-node address but > rather made of flags (1B) + QPN (3B) + subnet prefix (8B) + VF GUID -- > way more then > the virtualization system care or can provision. > > >> Port GUID: 0x2211ffeeddccbbaa > > > The byte order got screwed up someplace. > > thx, will fix Or, while you are working on this, please attempt setting a larger than 12byte vlan->pkey. The actual ndo_ for setting a vlan uses a u16, so it's possible that just like the MAC setting, our pkey setting might work unaltered too. -- Doug Ledford <dledford@xxxxxxxxxx> GPG KeyID: 0E572FDD
Attachment:
signature.asc
Description: This is a digitally signed message part