<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Fundamental eDRX design choices by Verizon breaking functionality</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/55473/fundamental-edrx-design-choices-by-verizon-breaking-functionality</link><description>The Problem 
 We have been struggling with what appears to be a rather fundamental issue using MQTT and eDRX on Verizon. We&amp;#39;ve investigated this quite heavily, with traces taken from our nRF9160 and our MQTT broker, as well as by Verizon on their equipment</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 30 Jan 2020 21:01:02 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/55473/fundamental-edrx-design-choices-by-verizon-breaking-functionality" /><item><title>RE: Fundamental eDRX design choices by Verizon breaking functionality</title><link>https://devzone.nordicsemi.com/thread/231980?ContentTypeID=1</link><pubDate>Thu, 30 Jan 2020 21:01:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5409ccc1-0370-4b2c-9fcf-0503489755aa</guid><dc:creator>jbrzozoski</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/members/male"&gt;Martin Lesund&lt;/a&gt; please pass along my follow-up feature request&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/57208/tcp-and-psm-edrx"&gt;here&lt;/a&gt;.&amp;nbsp; It&amp;#39;s not a total solution to the issue, but it would help a lot.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Fundamental eDRX design choices by Verizon breaking functionality</title><link>https://devzone.nordicsemi.com/thread/226131?ContentTypeID=1</link><pubDate>Wed, 18 Dec 2019 12:08:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e52fcfb9-d22a-47c4-a117-17ae99c4a28c</guid><dc:creator>Martin Lesund</dc:creator><description>&lt;p&gt;Hi Justin,&amp;nbsp;&lt;br /&gt;As for now, this is the workaround I would recommend this issue.&lt;br /&gt;Looking&amp;nbsp;into how we can improve this, but let me come back to you when I have more information.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Martin L.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Fundamental eDRX design choices by Verizon breaking functionality</title><link>https://devzone.nordicsemi.com/thread/225756?ContentTypeID=1</link><pubDate>Mon, 16 Dec 2019 19:17:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dc61966b-223d-4eea-ac29-6ae9b8b91234</guid><dc:creator>jbrzozoski</dc:creator><description>&lt;p&gt;I saw the CSCON suggestion from Nordic on &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/54187/possible-issues-with-edrx-on-verizon"&gt;this ticket&lt;/a&gt;, but am still hoping for more commentary or wisdom.&lt;/p&gt;
&lt;p&gt;The CSCON does flip to 1 when we get the symbolic page from Verizon, but the symbolic page doesn&amp;#39;t seem totally reliable, and am hoping for either another method or some indication that the symbolic paging could be improved.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Fundamental eDRX design choices by Verizon breaking functionality</title><link>https://devzone.nordicsemi.com/thread/225230?ContentTypeID=1</link><pubDate>Thu, 12 Dec 2019 17:14:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:747528e6-cee3-47d3-bb99-431101229d6d</guid><dc:creator>jbrzozoski</dc:creator><description>[quote userid="77106" url="~/f/nordic-q-a/55473/fundamental-edrx-design-choices-by-verizon-breaking-functionality"]One final symptom we see when a packet is discarded is that the Verizon towers will often page the mobile device to generate a service request, bringing it out of the normal eDRX cycle into a full RRC connection, but then not provide any data.[/quote]
&lt;p&gt;This behavior is extremely inconsistent and frequently doesn&amp;#39;t happen.&amp;nbsp; We&amp;#39;re now wondering if we misunderstood our Verizon contact concerning this being intentional, or if it just behaves very different than we expect.&amp;nbsp; In either case, we don&amp;#39;t think it will be usable as a hint that the server is trying to reach the mobile device.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Fundamental eDRX design choices by Verizon breaking functionality</title><link>https://devzone.nordicsemi.com/thread/225200?ContentTypeID=1</link><pubDate>Thu, 12 Dec 2019 15:00:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:645b1424-4fc3-465f-a145-fe31358b80f5</guid><dc:creator>GNotman</dc:creator><description>&lt;p&gt;I believe that MQTT (at least over TCP)&amp;nbsp;is fundamentally incompatible with eDRX, as even the networks that support buffering may limit the number of buffered packets. For example one network here in the Netherlands told us that they buffer a single packet per eDRX cycle, for up to the duration of one eDRX cycle and attempt to deliver it once at the very next PTW. If more than one packet is sent to the end device during the idle phase of the eDRX cycle, then a replace strategy is used within the buffer. I believe such behaviour will cause issues trying to maintain any TCP socket.&lt;/p&gt;
&lt;p&gt;I am curious how Verizon handles Non-IP Data Delivery with eDRX, as that might a better alternative to using SMS delivery.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Fundamental eDRX design choices by Verizon breaking functionality</title><link>https://devzone.nordicsemi.com/thread/225026?ContentTypeID=1</link><pubDate>Wed, 11 Dec 2019 20:04:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a22494bb-44a5-4744-83e1-149f0d9e7712</guid><dc:creator>jbrzozoski</dc:creator><description>&lt;p&gt;Another clarification: it looks like sometimes the Linux server stops sending new TCP data down to the mobile device when it knows that the prior packet hasn&amp;#39;t been ACKed.&amp;nbsp; The end result looks similar, but in this case data is being buffered on the server&amp;#39;s TCP stack instead of on the mobile client&amp;#39;s stack...&amp;nbsp; This will make it harder for the mobile client to detect that it&amp;#39;s in a lost packet state. &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f61e.svg" title="Disappointed"&gt;&amp;#x1f61e;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Again, the best way to detect might be to send an application level message that should get an immediate response, like an MQTT keep-alive, and correlate the fact that the TCP sequence has been ACKed but the PINGRSP was never received as a hint that we&amp;#39;re stuck.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve been playing with Linux TCP sysctls on our server today, so I&amp;#39;m not sure if this is changed behavior because of one of those or if I was just lucky before.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Fundamental eDRX design choices by Verizon breaking functionality</title><link>https://devzone.nordicsemi.com/thread/225022?ContentTypeID=1</link><pubDate>Wed, 11 Dec 2019 19:36:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dece66f8-1d16-4967-8f26-086d4d066491</guid><dc:creator>jbrzozoski</dc:creator><description>&lt;p&gt;Okay, in my digging through various bits of Linux TCP documentation and source code, I&amp;#39;ve seen that receiving two ACKs for the same TCP sequence&amp;nbsp; number is taken by Linux (in most situations) as a hint to immediately re-transmit the packet just *after* that sequence number.&amp;nbsp; Maybe when our system detects it is in this packet-lost state, the modem could send an extra ACK to the previously ACKed sequence number. That should trigger an immediate resend from the server that would hopefully land in the current RRC period.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>