-
Notifications
You must be signed in to change notification settings - Fork 279
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SCTP SSN handling error #111
Comments
That is intentional, since we need a 32-bit value when using the I-DATA extension. So the plan is that we are passing around 32-bit values, but do 16-bit arithmetic in case we are not using this extensions. |
I was trying to send a sequence of sctp messages, and each sctp messge is about 1000 bytes with itself a complete message(the b bit and e bit are set, ref: https://tools.ietf.org/html/rfc4960#section-3.3.1). After we send more than 65535 messages, the problem happens. (The statement |
I saw that and I think you are right. We need to detect if the comparison is needed to be based on uint16_t or uint32_t. I just want to reproduce the issue to be able to test the fix. |
OK. I can confirm that there is a bug, I was able to reproduce the problem. Will fix it... |
Thanks for your quick response. |
Was about to report the same issue. |
I have a full pcap file with the issue if that helps, but is ~320MB in size. |
@shiretu I can reproduce the issue locally, not tracefile needed. Thanks for offering! |
This made a couple of bugs visible in handling SSN wrap-arounds when using DATA chunks. Now bulk transfer seems to work fine... This fixes the issue reported in sctplab/usrsctp#111 MFC after: 1 week git-svn-id: svn+ssh://svn.freebsd.org/base/head@309682 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
This made a couple of bugs visible in handling SSN wrap-arounds when using DATA chunks. Now bulk transfer seems to work fine... This fixes the issue reported in sctplab/usrsctp#111 MFC after: 1 week
Please test this fix. I'm able to transfer several hundred GBs without any problem. This was failing before... |
@tuexen: thank you sir! Will do so! |
Cleanup the names of SSN, SID, TSN, FSN, PPID and MID. This made a couple of bugs visible in handling SSN wrap-arounds when using DATA chunks. Now bulk transfer seems to work fine... This fixes the issue reported in sctplab/usrsctp#111
This made a couple of bugs visible in handling SSN wrap-arounds when using DATA chunks. Now bulk transfer seems to work fine... This fixes the issue reported in sctplab/usrsctp#111 MFC after: 1 week git-svn-id: svn+ssh://svn.freebsd.org/base/head@309682 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Cleanup the names of SSN, SID, TSN, FSN, PPID and MID. This made a couple of bugs visible in handling SSN wrap-arounds when using DATA chunks. Now bulk transfer seems to work fine... This fixes the issue reported in sctplab/usrsctp#111
Cleanup the names of SSN, SID, TSN, FSN, PPID and MID. This made a couple of bugs visible in handling SSN wrap-arounds when using DATA chunks. Now bulk transfer seems to work fine... This fixes the issue reported in sctplab/usrsctp#111
Cleanup the names of SSN, SID, TSN, FSN, PPID and MID. This made a couple of bugs visible in handling SSN wrap-arounds when using DATA chunks. Now bulk transfer seems to work fine... This fixes the issue reported in sctplab/usrsctp#111
I try to send a live streaming through webrtc data channel to browser, but the browser will fail to receive the streaming data 20 minutes later. In the sctp layer, the browser keeps sending ack indicating that it has received no more data. After close investigation, I find out that the problem results from the false variable declaration in function "sctp_queue_data_to_stream"(in usrsctplib/netinet/sctp_indata.c). Defined in rfc 4960, the field for Stream Sequence Number(SSN) is a 16-bit unsigned digit, but 32-bits here.
The text was updated successfully, but these errors were encountered: