Jul 26, 2014, 8:34:03 PM: webrtc:Destroying NSS identity Jul 26, 2014, 8:34:05 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:05 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:05 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:05 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:05 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:05 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:05 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:05 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:06 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:06 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:06 PM: Report. outbitavg:4492.327586 toutbitrateavg: nan, kf: 0, sli: 0, fravg: 4.913793, qpavg: 4.048624, pktlossavg: 0.000000, rttavg: 7.250000 Jul 26, 2014, 8:34:07 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:07 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:07 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:07 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:07 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:08 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:10 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:13 PM: webrtc:Destroying NSS identity Jul 26, 2014, 8:34:13 PM: webrtc:Destroying NSS identity Jul 26, 2014, 8:34:14 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:20 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:20 PM: Outbound Keyframe! Jul 26, 2014, 8:34:21 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:22 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:22 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:22 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:22 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:22 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:23 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:23 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:23 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:23 PM: webrtc:Destroying NSS identity Jul 26, 2014, 8:34:23 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:24 PM: webrtc:Destroying NSS identity Jul 26, 2014, 8:34:24 PM: webrtc:Error(sctpdataengine.cc:883): SctpDataMediaChannel->OnPacketFromSctpToNetwork(...): SCTP seems to have made a packet that is bigger than its official MTU. Jul 26, 2014, 8:34:25 PM: webrtc:SCTP: Gak, chk->snd_count:30 >= max:30 - send abort Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:SCTP_SEND_FAILED_EVENT Jul 26, 2014, 8:34:25 PM: webrtc:Association change SCTP_COMM_LOST Jul 26, 2014, 8:34:25 PM: webrtc:Error(sctpdataengine.cc:561): ERROR:SctpDataMediaChannel->SendData(...): usrsctp_sendv: : [0x00000002] No such file or directory Jul 26, 2014, 8:34:25 PM: webrtc:Error(datachannel.cc:491): Closing the DataChannel due to a failure to send data, send_result = 1 Jul 26, 2014, 8:34:25 PM: sctp:Datachannel state changed : 2 Jul 26, 2014, 8:34:25 PM: webrtc:Error(sctpdataengine.cc:919): SctpDataMediaChannelFailed to send a stream reset for 1 streams : [0x00000002] No such file or directory Jul 26, 2014, 8:34:25 PM: sctp:Datachannel state changed : 3 Jul 26, 2014, 8:34:25 PM: Got connection closed on channel: 2, timeout :0 Jul 26, 2014, 8:34:25 PM: Error Writing Jul 26, 2014, 8:34:25 PM: Error Writing Jul 26, 2014, 8:34:25 PM: Error Writing
webrtc:Association change SCTP_COMM_LOST Jul 28, 2014, 3:27:55 AM: webrtc:Destroying NSS identity Jul 28, 2014, 3:30:01 AM: webrtc:Destroying NSS identity Jul 28, 2014, 3:30:05 AM: webrtc:Destroying NSS identity Jul 28, 2014, 3:30:11 AM: webrtc:Destroying NSS identity Jul 28, 2014, 3:30:15 AM: webrtc:Destroying NSS identity Jul 28, 2014, 3:30:21 AM: webrtc:Destroying NSS identity Jul 28, 2014, 3:30:22 AM: AppSharingApplication[setKeyLogActive:] Jul 28, 2014, 3:30:22 AM: AppSharingApplication[startupKeyListener] Jul 28, 2014, 3:30:22 AM: webrtc:Error(sctpdataengine.cc:561): ERROR:SctpDataMediaChannel->SendData(...): usrsctp_sendv: : [0x00000002] No such file or directory Jul 28, 2014, 3:30:22 AM: webrtc:Error(datachannel.cc:491): Closing the DataChannel due to a failure to send data, send_result = 1 Jul 28, 2014, 3:30:22 AM: sctp:Datachannel state changed : 2 Jul 28, 2014, 3:30:22 AM: webrtc:Error(sctpdataengine.cc:919): SctpDataMediaChannelFailed to send a stream reset for 1 streams : [0x00000002] No such file or directory Jul 28, 2014, 3:30:22 AM: sctp:Datachannel state changed : 3 Jul 28, 2014, 3:30:22 AM: sctp:Data channel closing, buffered amount is :0 Jul 28, 2014, 3:30:22 AM: Got connection closed on channel: 2, timeout :0 Jul 28, 2014, 3:30:22 AM: Error Writing Jul 28, 2014, 3:30:22 AM: Error Writing
SCTP seems to have made a packet that is bigger than its official MTU
drops the packet, SCTP will retry it several times and finally will figure out that the DATA chunk
contained in that packet hasn't made it to the peer after 30 retries. It then sends an ABORT since
it considers the association broken. All buffered user data is given back to the upper layer.
Has SCTP be configured with a save MTU? This needs to be done by the upper layer.
Did the lower layer experienced a drop in the PMTU? Did this change get propagated to
SCTP? I don't think we have a clear API for it, since I'm not sure if the lower layer needs it.
And does the lower layer allow sending messages larger than the PMTU just falling back to
IP fragmentation? This is required. If the PMTU drops and you notify SCTP, it will fragment
new massages based on the lower limit, but it can't re-fragment messages which have already
been fragmented. See third paragraph of
http://tools.ietf.org/html/draft-ietf-tsvwg-sctp-dtls-encaps-05#section-5
Best regards
Michael
Thanks Jiayang! Also - on the remote party's side the error is even weirder, seems like the SCTP socket just died without any debug logs:webrtc:Association change SCTP_COMM_LOST Jul 28, 2014, 3:27:55 AM: webrtc:Destroying NSS identity Jul 28, 2014, 3:30:01 AM: webrtc:Destroying NSS identity Jul 28, 2014, 3:30:05 AM: webrtc:Destroying NSS identity Jul 28, 2014, 3:30:11 AM: webrtc:Destroying NSS identity Jul 28, 2014, 3:30:15 AM: webrtc:Destroying NSS identity Jul 28, 2014, 3:30:21 AM: webrtc:Destroying NSS identity Jul 28, 2014, 3:30:22 AM: AppSharingApplication[setKeyLogActive:] Jul 28, 2014, 3:30:22 AM: AppSharingApplication[startupKeyListener] Jul 28, 2014, 3:30:22 AM: webrtc:Error(sctpdataengine.cc:561): ERROR:SctpDataMediaChannel->SendData(...): usrsctp_sendv: : [0x00000002] No such file or directory Jul 28, 2014, 3:30:22 AM: webrtc:Error(datachannel.cc:491): Closing the DataChannel due to a failure to send data, send_result = 1 Jul 28, 2014, 3:30:22 AM: sctp:Datachannel state changed : 2 Jul 28, 2014, 3:30:22 AM: webrtc:Error(sctpdataengine.cc:919): SctpDataMediaChannelFailed to send a stream reset for 1 streams : [0x00000002] No such file or directory Jul 28, 2014, 3:30:22 AM: sctp:Datachannel state changed : 3 Jul 28, 2014, 3:30:22 AM: sctp:Data channel closing, buffered amount is :0 Jul 28, 2014, 3:30:22 AM: Got connection closed on channel: 2, timeout :0 Jul 28, 2014, 3:30:22 AM: Error Writing Jul 28, 2014, 3:30:22 AM: Error Writing
The 'Gak, chk->snd_count:30 >= max:30 - send abort' message is from sctp_output.c, when it sees that it tried for 30 times to send the message, and it failed every time. It shuts the connection down then. The repeated 'SCTP seems to have made a packet that is bigger than its official MTU' message seems to indicate an attempt to send more than kSctpMtu, 1280 bytes. We may be configured to disallow fragmentation.Together, that'd explain what's going on. To verify, Faraz: can you in any way limit your app's sends to < 1200 bytes, just to test if that clears up your problem? If that's it, then we know what's wrong and can work on fixing it.
Lally,I guessed the same so assuming that sctp fragmentation was sometimes broken sent out a version to the affected users in which our app limits any message over 1150 bytes. They havent reported back with anything yet so I dont know if thats the fix, if it is I'll let you guys know.
--
---
You received this message because you are subscribed to a topic in the Google Groups "discuss-webrtc" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/discuss-webrtc/XIdVkoS4-Cs/unsubscribe.
To unsubscribe from this group and all its topics, send an email to discuss-webrt...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
AFAICT, we only log it in sctpdataengine. But (if the theory's right) we've set SCTP to not fragment, and the packet's bigger than the actual MTU (which may be close to kSctpMtu, or not). So it gets dropped in usrsctp.
Michael / Lally,Just to clarify - the problem only manifests itself after 20-30 minutes of successful message passing. The connection always works perfectly in the beginning, but after a while it drops all of a sudden with the error messages above. I've tested SCTP in webrtc with messages of upto 256k and they get sent (and fragmented) correctly. So its something that happens at runtime.
Michael / Lally,
I'm happy to make the change / compile / test for you guys - however I'm not too familiar with the sctp codebase.From a cursory look - seems like I need to do something like this in sctpdataengine.cc in OpenSctpSocket:struct sctp_paddrparams params;params.spp_flags = SPP_PMTUD_DISABLE;usrsctp_setsockopt(sock_, IPPROTO_SCTP, SCTP_PEER_ADDR_PARAMS , ¶ms,sizeof(params)Something like that? Or should I get the sock opts first and then AND the MTUD_DISABLE bit?
So I added the following in sctpdataengine.cc:struct sctp_paddrparams params = { 0 };socklen_t params_length = 0;params.spp_flags = SPP_PMTUD_DISABLE;if (usrsctp_setsockopt(sock_, IPPROTO_SCTP, SCTP_PEER_ADDR_PARAMS, ¶ms, sizeof(params))){LOG_ERRNO(LS_ERROR) << debug_name_ << "Failed to set SCTP_PEER_ADDR_PARAMS:";return false;}I have verified that with this set, time type 8 (SCTP_TIMER_TYPE_PATHMTURAISE) does not get scheduled and does not fire.I have also verified that without it set, the timer DOES get fired (as you mentioned). To test the effect further, I reduced SCTP_DEF_PMTU_RAISE_SEC from 600 to 60 to make the timer get fired every minute. Sure enough, the next iteration of the timer takes MTU to 1492, and the third one to 1500. After this, trying to send a larger message (say 5-8kb) will result in logs being filled with webrtc's 'SCTP seems to have made a packet that is bigger' errors which makes sense.
However, this works just fine on my local lan (even with the above webrtc errors) - I'm no network expert but is it possible that the users network doesnt like a MTU of 1500?
--
---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
We want to make sure that at the transport layer, we don't try to send a packet larger than a MTU (in our case, we assume a conservative value of 1280 bytes, since we still need to add DTLS/TURN/UDP/IP framing) - because IP fragmentation is not well supported on the Internet.
So we are surprised when a packet comes out bigger than the MTU. It sounds like we're not telling the stack about MTUs properly though.
On Tuesday, July 29, 2014 11:13:18 PM UTC+2, Justin Uberti wrote:We want to make sure that at the transport layer, we don't try to send a packet larger than a MTU (in our case, we assume a conservative value of 1280 bytes, since we still need to add DTLS/TURN/UDP/IP framing) - because IP fragmentation is not well supported on the Internet.Right. But SCTP will perform PMTUD and therefore must be able to send packets (the probe packets) which are larger than
the PMTU. BTW, the ID considers 1200 bytes save for IPv4, not 1280 as for IPv6.
So we are surprised when a packet comes out bigger than the MTU. It sounds like we're not telling the stack about MTUs properly though.You might be surprised, but you should not discards the packets. In case of the current PMTUD, the probe packets are based on user data.
Once they are fragmented, they can't be refragmented. Therefore I suggest to disable PMTUD until an improved version has been
implemented. It will use a combination of HEARTBEAT chunks and PADDING chunks.
Justin,
Ive sent a Dev version (using the attached patch) on our Dev channel to a number of beta testers. So far so good ( generally the problem would happen within 30 minutes). I'll double check with all of them personally and let you know for sure tomorrow.
Michael - Thanks again for the help !
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrtc+unsubscribe@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
Justin,Done: