[Openib-windows] IPoIB GUID to MAC conversion

Fab Tillier ftillier at silverstorm.com
Thu May 26 12:32:34 PDT 2005


> From: William Jordan [mailto:bjordan.ics at gmail.com]
> Sent: Thursday, May 26, 2005 7:40 AM
> 
> On 5/25/05, Fab Tillier <ftillier at silverstorm.com> wrote:
> > I meant the Ethernet MAC address reported to the OS.  Method 2 can and
> > method 4 will generate different MAC addresses when an instance is
> > re-enabled.  On the wire, any packets (like ARP) that include the MAC
> > include the 20-byte IPoIB MAC, not the generated 6-byte Ethernet MAC.
> > Perhaps the network stack doesn't care about a MAC address changing
> > every time the device is enabled.  I don't know.
> 
> You would know better than I would, Fab, but I thought Windows tracked
> ethernet devices by MAC address, and it would keep generating new
> devices if you reported different local hardware addresses everytime
> you enable the device.

The device itself is tracked based on what the bus driver reports as the
unique ID.  The unique ID is appended to the device ID to form the complete
instance ID.  All these IDs are strings.  The device ID for IPoIB is
"IBA\IPoIB".  The unique ID is currently the straight port GUID - there is
no hashing needed here as this is just a string.  So the instance ID for an
IPoIB port is currently "IBA\IPoIB\<port GUID>".  Note that this doesn't
currently take into account partitions.  The plan for partitions is to add
the partition key to the unique ID, and to report an instance of IPoIB per
port per partition, so each instance acts and is managed as an individual
NIC.

That said, it hasn't been very clear what the Windows network stack's
expectations are regarding MAC addresses.  The feedback I have received
yesterday from Microsoft is that the locally administered and multicast bits
of the MAC address must be properly honored, but beyond that, the MAC
address can have any value.  It is also acceptable to have the MAC address
change between disable/enable device state transitions, as no state is
preserved about the NIC (with respect to the network stack) once it is
disabled.  Any state that is preserved (like IP address assignment) is
stored with respect to the device instance ID.

- Fab




More information about the ofw mailing list