[Openib-windows] RE: Anything new about the IPOIB arp check-in?

Fab Tillier ftillier at silverstorm.com
Thu Dec 8 09:04:04 PST 2005


> From: Tzachi Dar [mailto:tzachid at mellanox.co.il]
> Sent: Wednesday, December 07, 2005 11:59 PM
> 
> >From: Fab Tillier [mailto:ftillier at silverstorm.com]
> >Sent: Thursday, December 08, 2005 1:52 AM
> >
> >Note that I found that if the last IPoIB instance is disabled
> >while the IBAT device is open, the unload handler for IPoIB
> >isn't called even if that device handle is closed.  I will be
> >following up with Microsoft on this, but there doesn't appear
> >to be a bug in our code.
>
> I'm not sure that we really have to talk with MS about this issue, as it
> has a simple (?) work around. The text in the help for
> NdisMRegisterDevice says: "Note that, if a handle to the device object
> created with NdisMRegisterDevice is open, the driver that created the
> device object cannot be unloaded. Before opening a handle to the device
> object, a user-mode application should therefore register for device
> event notification, specifying GUID_NDIS_LAN_CLASS as the interface
> class GUID. On receiving a DBT_DEVICEQUERYREMOVE device event for the
> device object, the application should close the handle. For more
> information about processing a request to remove a device, see the
> Platform SDK documentation."

Right - this is why I changed the code to only return the IP addresses for
adapters that have a non-zero packet filter, so that the application can figure
out that the device isn't accessible anymore.  Note that the adapter is still in
the adapter list, and it's simpler to check the packet filter than to try to add
and remove the adapter when the packet filter is changed.

> I have being playing with this things a little bit, and came to the
> conclusion, that one indeed gets a notification each time an interface
> is enabled or disabled. It is not simple to tell if this is an
> InfiniBand device or not, but I believe that if you will ask for a
> notification and on each change, ask the IPOIB to tell you how many
> devices it has, you should be fine.

That brings up a good point - I didn't fix the get ports query to filter out
adapters with a zero packet filter.  I'll do that now.

> So you can either wait for a response from MS, or try to follow the
> method that I mentioned.

I already checked in a change to WSD to use the IP query IOCTL rather than ATS
for populating the local IP mappings, and had to add the packet filter check to
get the right behavior based on the network interface events.

- Fab




More information about the ofw mailing list