← index #7795Issue #5566
Related · high · value 1.244
QUERY · ISSUE

PPP troubling with large messages > 1.4kB (esp32)

openby chtinnesopened 2021-09-14updated 2023-06-20

I have a PPP connection with a SIM7000E module and just realized that large messages don't reach the target.
In my case, I want to send "large" messages via MQTT. From a size of around 1.4kB, the messages don't arrive at the MQTT broker anymore. I tested the same messages with WiFi and could send messages of up to 4.4kB. Unfortunately, I do not get any Error that tells me what might go wrong.

To me, this looks like a limit due to some buffer. Is it possible to increase this buffer or is there another alternative to handle large messages?

EDIT: Just realized that in the case of PPP, this is about the Ethernet MTU and therefore no fragmentation taking place?
EDIT: I verified also for uping tool (https://gist.github.com/shawwwn/91cc8979e33e82af6d99ec34c38195fb). I experienced the same size limit here. So this seems to be a general limit in the PPP implementation,

CANDIDATE · ISSUE

ESP32 - network.PPP - uMQTT - Does not give OSERROR on dropped connection.

openby trip96opened 2020-01-23updated 2024-09-29
port-esp32needs-info

Good morning,

I have noticed that network.PPP does not behave in the same way as the Wi-Fi network module in handling the TCP portion of uMQTT.simple. Specifically when an MQTT message is sent and there is no response from TCP socket I do not get the OSERROR I would see when using Wi-Fi.

The setup that contributes to this issue:

  1. ESP-32
  2. Simcom7000g Cellular modem.
  3. ESP32 over serial to simcom7000g.
  4. network,PPP for handling the connection through serial through the simcom7000g.

This works perfectly for long periods of time. BUT, if the data call is dropped or I remove the antenna micropython still returns ppp.isconnected() as True. I think this is expected because the connection was never terminated but rather it 'dropped' (kind of a half open situation). The problem is when MQTT publishes a message there is no error given. Usually this is the OSERROR. I would expect there to be no TCP Acknowledgment on the sent MQTT message either (due to no data connection). This is what should cause the OSERROR (to my understanding).

Eventually the program will spiral into a loop, printing -113 over and over then eventually crash.

I have tried modifying the MQTT.simple to have a timeout on the socket. The socket is also currently wrapped in SSL with no additional SSL params (I know this reduces security, we are testing data consumption currently). I also have modified the MQTT.simple to print a message on an exception. Both of these modifications have not resolved this strange issue or given further insight.

Of course this is all dependent on the IDF as I believe PPP is handled via the Espressif IDF. So perhaps a new IDF revision fixes this for me as well.

Any ideas?

Thank you all in advance.

Keyboard

j / / n
next pair
k / / p
previous pair
1 / / h
show query pane
2 / / l
show candidate pane
c
copy suggested comment
r
toggle reasoning
g i
go to index
?
show this help
esc
close overlays

press ? or esc to close

copied