Subject: Re: [ofa-general] [PATCH 2.6.25] RDMA/cxgb3: Fail loopback connections.

From: Steve Wise <[email-masked]>
Date: Tue, 12 Feb 2008 19:41:53 -0600

Roland Dreier wrote:
> applied, although:
> 
>  > +static void is_loopback_dst(struct iw_cm_id *cm_id)
>  > +{
>  > +	struct net_device *dev;
>  > +	
>  > +	dev = ip_dev_find(&init_net, cm_id->remote_addr.sin_addr.s_addr);
>  > +	if (!dev)
>  > +		return 0;
>  > +	dev_put(dev);
>  > +	return 1;
>  > +}
> 
> is there any way this could trigger when it should, like if I'm trying
> to make a connection from one local device to a different local device
> (which should work fine)?
> 

As far as I can tell, if the app does a rdma_resolve_addr() on the dst 
addr (which is a local address), then the routing lookup will find the 
local interface with that dst addr, and that device will be used for the 
connect.  IE src and dst devices are the same.

Maybe if the app does an explicit bind to the addr on one device, then 
connects to the addr on the other device.  But that's not gonna work 
either, I think.  I still think it will resolve to one device and that 
device cannot do loopback...

Steve.