On 1/9/15, 8:28 PM, Thomas Dwyer III wrote:
Hi folks,

I spent some time browsing through this forum but I was unable to find an
explanation for this comment referring to the disabled bind_src_by_address()
function in io.c:

*This is not supported for now, because it is not exactly what we want.*
*It also turns out that targets will send packets to other interfaces*
*causing all types of weird things to happen.*

I found several posts from people referring to this specific comment but I
did not find an explanation. Is it possible that the author of this comment
was referring to the ARP flux issue, which may cause a target to associate
the bound IP address with the MAC address from an interface other than the
one specified with SO_BINDTODEVICE? If so, I don't see how avoiding the
call to bind() solves this problem. I would appreciate a reply from anyone
who might know what "weird things" means in this context.


bind_src_by_address() only did a bind() and was expecting all traffic to flow through the interface with the specified ip address. If you have multiple interfaces on the same subnet, the network layer would send/recv on any of them. This ended up causing issues with packets not getting sent/received or received in incorrect orders to the iscsi layers on the initiator/target side.

SO_BINDTODEVICE is not related to bind() (was not sure about your comment about avoiding bind when using that sockopt). It tells the kernel to ignore the normal routing tables and to just use the interface we specify with that call.

Why are you asking about this? Do you need something like bind by ip?

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at http://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.

Reply via email to