[Openib-windows] RE: geting remote and locale ip addresses

Gilad Shainer shainer at mellanox.co.il
Tue Sep 6 11:53:15 PDT 2005


Hi Fab,
 
I have started looking at the implementation of this functionality in the
IPOIB driver. It seems that the first thing that should be decided is the
way that the IPOIB driver will expose some way to talk with other components
(also from the user mode).
 
To me it seems that there are 4 ways to achieve this task:
 
1)     It seems to me that "Device Interface Classes" as they are called in
the MSDN (search for this strings in MSDN in "titles only") are the way that
MSDN recommends to do the task. (Do not confuse device interfaces with the
interfaces that drivers can export in response to an IRP_MN_QUERY_INTERFACE
request. That IRP is used to pass routine entry points between kernel-mode
drivers.) On the other hand these functions don't seem to allow any way of
custom connection and are therefore (probably) can not be used.
2)     Use the IRP_MN_QUERY_INTERFACE way. It seems that this way is used by
our stack to pass interfaces from one component to another (for example the
GUID_IB_AL_INTERFACE). I have two problems with this message: a) It seems
that this can only be used from kernel mode. b) If I understand correctly
one has to be a bus interface for this to work. (I'm not sure that the IPOIB
is allowed to use such a device).
3)     Use Named device objects for communicating with user and kernel
devices. Main disadvantage of this solution seems to be that if a user has
opened the device, the device can not be disabled. The way I understand it
there will always be applications that are using Winsock and therefore the
driver will never go down.
4)     Use some "hack" mechanism: This might be using some UDP (or raw)
message to send data, using "named" shared memory, and probably many other
ideas. I fill that this should only be used if we fill that nothing else
works.
 
If I remember well from the past, we thought about implementing the
interface as the second type (interfaces that drivers can export in response
to an IRP_MN_QUERY_INTERFACE). This has the drawback that it can not be used
from user mode. This is fine with the SDP but will be a problem for DAPL and
winsock direct. 
 
Should we go on number 2? Or should we think about something else?
 
Thanks
Tzachi
 
-----Original Message-----
From: Tillier, Fabian [mailto:ftillier at silverstorm.com] 
Sent: Sunday, August 07, 2005 10:47 AM
To: Tzachi Dar
Cc: Gilad Shainer
Subject: RE: geting remote and locale ip addresses
 
Hi Tzachi,
 
I haven't had a chance to do much on this front.  I've been too busy trying
to get WSD up to par to get us into the SQL team's lab, as well as trying to
get ready for the OpenIB workshop.
 
If you feel up to it, feel free to start implementing this functionality and
send patches.
 
Thanks,
 
- Fab
 
-----Original Message-----
From: Tzachi Dar [mailto:tzachid at mellanox.co.il] 
Sent: Thursday, July 21, 2005 5:07 AM
To: Tillier, Fabian
Cc: openib-windows at openib.org
Subject: geting remote and locale ip addresses
 
Hi Fabian,
 
We have talked about implementing ARP in ipoib in order to get the remote
gid. Attached is some information that you have asked:
 
1)   Doing arp from user mode. See the function SendARP in the MSDN.
2)   Getting locale IP addreses: see the function GetAdaptersAddresses.
Please note that this function can return a physical address in the size of
8, that we can use as a port gid. 
3)   The functions GetBestInterface and GetBestRoute can be used to select
the ip address to use for creating a connection (outgoing).
 
Do you have an estimation of the time that this change will be ready?
 
Thanks
Tzachi
 
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20050906/d2093fb6/attachment.html>


More information about the ofw mailing list