[openib-general] [PATCH] ib_addr: local/loopback address handling

Michael S. Tsirkin mst at mellanox.co.il
Wed Mar 29 10:17:54 PST 2006


Quoting r. Sean Hefty <mshefty at ichips.intel.com>:
> Subject: Re: [openib-general] [PATCH] ib_addr: local/loopback address handling
> 
> Michael S. Tsirkin wrote:
> >And then the connection will fail since 127.0.0.1 is not an IB device.
> >So why is this behaviour useful?
> 
> My concern is that the user has bound to 127.0.0.1, and the code changes 
> that to a different address.  What if we tried something like the following 
> change to addr_resolve_local:
> 
> 	if (ZERONET(src_ip)) {
> 		src_in->sin_family = dst_in->sin_family;
> 		src_in->sin_addr.s_addr = dst_ip;
> 		ret = copy_addr(addr, dev, dev->dev_addr);
> 	} else if (LOOPBACK(src_ip)) {
> 		ret = rdma_translate_ip((struct sockaddr *)dst_in, addr);
> 		if (!ret)
> 			memcpy(addr->dst_dev_addr, dev->dev_addr, 
> 			MAX_ADDR_LEN);
> 	} else {
> 		ret = rdma_translate_ip((struct sockaddr *)src_in, addr);
> 		if (!ret)
> 			memcpy(addr->dst_dev_addr, dev->dev_addr, 
> 			MAX_ADDR_LEN);
> 	}
> 
> - Sean

Makes sense to me. Does it work as expected?

-- 
Michael S. Tsirkin
Staff Engineer, Mellanox Technologies



More information about the general mailing list