-
Notifications
You must be signed in to change notification settings - Fork 303
Description
Hello guys,
I am trying to get multi-homing working on Windows OS. Basically, I create a sctp socket having two IP addresses from two different networks ports assigned. In order to do this, I use usrsctp_bindx to bind socket to two IP addresses (c0a8bb03, c0a8aa03), and usrsctp_connectx with two peer IP addresses (c0a8bb40, c0a8aa40).
CMT is enabled by usrsctp_sysctl_set_sctp_cmt_on_off(1);
By some reasons I don't see HEARTBEATS to the second IP, Also I noticed usrsctp is trying to send some packets to the peer IP using incorrect local IP, e.g. I see the following in the debug log
[S][11.131] Calling ipv4 output routine from low level src addr:c0a8aa03
[S][11.131] Destination is c0a8bb40
The third octet is different, but should be the same, so we have to send from c0a8bb03 to c0a8bb40, but usrsctp is trying to send from c0a8aa03 to c0a8bb40.
It looks like the internal usrsctp routing can't figure out the correct local IP to send the packet and sounds like the root cause why I don't see HEARTBEATS to the second IP.
Is there anything special I could do on the usrsctp API level to get multi-homing working on Windows? Maybe I could somehow force usrsctp to just rely on Windows routing table?
Thanks in advance!