[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