Hi Andreas, My point is that the failure is in the client, which is creating an AF_INET6 socket and only binding on ::1, so it should never try to use "127.0.0.1" as local IP imho. Your comments may apply to the server, which is actually behaving fine. On 8/24/20 12:12 PM, Andreas Fink wrote: > The problem might be that your socket(AF_INET6,SCTP,STREAM) gives you an > IPv6 only socket > but you are binding an IPv4 address to it with sctp_bindx. This will > probably fail and thus you are binding to "any". It doesn't fail, I'm checking the result of sctp_bindx() and /proc/net/sctp/eps I initially attached to the bug tracker shows it's binding fine as expected. > > If you want IPv4+IPv6 in one socket, you need to specify a IPv4 address > in IPv6 compatibility format > So you should sctp_bindx to "::ffff:127.0.0.1" not to "127.0.0.1" > (well in any case you should pass a struck sockaddr_in6 and not a > struct sockaddr_in) Not really. I'm creating an addr buffer containing both struct sockaddr_in and struct sockaddr_in6 (see [1] if interested) after having looked at how libsctp and the kernel handle the sctp_bindx call, and it's working fine as backed by what /proc/net/sctp/eps shows. [1] https://git.osmocom.org/libosmocore/tree/src/socket.c?id=ed42a889004730beb26ce61ee462244b2bad6be9#n470 -- - Pau Espin Pedrol <pespin@xxxxxxxxxxx> http://www.sysmocom.de/ ======================================================================= * sysmocom - systems for mobile communications GmbH * Alt-Moabit 93 * 10559 Berlin, Germany * Sitz / Registered office: Berlin, HRB 134158 B * Geschaeftsfuehrer / Managing Director: Harald Welte