[openib-general] [PATCH] [CM] add private data comparison to match REQs with listens

Caitlin Bestler caitlinb at broadcom.com
Fri Dec 2 12:13:00 PST 2005


Sean Hefty wrote:
> Fab Tillier wrote:
>>> Just listen on the Service ID / Port and let the ULP sort them out
>>> by destination IP address.
>> 
>> That only works if there is a single kernel module providing the
>> extra checks. Multiple user-mode ULPs cannot do the checking in
>> user-mode - the checking must be done in the kernel to figure out
>> which user-mode client to hand the request to.
>> 
>> I think putting in restrictions to the comparisons possible is fine,
>> as the functionality of having the CM facilitate some sort of
>> filtering is useful. 
> 
> My concern with pushing this to the ULP is that it requires
> the ULP to track service IDs for reference counting purposes
> and adds additional synchronization to the ULP that could have been
> handled by the CM. 
> 
> I'm looking at what the full effect of implementing this in the ULP
> would be. 
> 
> - Sean

I'm still missing something.

My understanding is that there are two scenarios where differentiating
on the Destination IP address to subqualify a listen is required:

1) When virtualization is in effect and the device is shared by multiple
   kernels that are not aware of each other. In this case a Destination
   Address (which could be the IP Address, or the Ethernet MAC, or the
GID)
   determines which kernel is the destination for all packets, and which
   connections can be set up for which kernels.

2) When the daemon itself is virtualizing multiple instances of the same
   service, such as a virtual web or ftp sites. The same httpd/ftpd is
   reached in all cases, but the virtual root maps to a different root
   in the local file system (i.e., the instance data is different).

I don't see how filtering in the CM is of benefit in either case. The
work either belongs in the Hypervisor or in the Daemon, not the CM.




More information about the general mailing list