Files
esp-protocols/components/esp_modem/Kconfig
David Cermak 8edbac6974 fix(modem): More error handling in cmux protocol
Add error path to all CMUX protocol potential issues, checks for
consistency and add recovery.
2023-09-22 08:39:31 +02:00

49 lines
2.5 KiB
Plaintext

menu "esp-modem"
config ESP_MODEM_CMUX_DEFRAGMENT_PAYLOAD
bool "Defragment CMUX messages internally"
default y
help
If enabled (default), the esp-modem automatically defragments CMUX messages
to only pass the completed CMUX message to higher layers.
This is useful for messages in command mode (if they're received fragmented).
It's not a problem for messages in data mode as the upper layer (PPP protocol)
defines message boundaries.
Keep the default to true for most cases (as most devices use simply 1 byte CMUX
length, as the internal Rx buffer of size >= 256 bytes won't overflow)
Set to false if your devices uses 2 byte CMUX payload (e.g. A7672S).
The operation would work without an issue in data mode, but some replies
in command mode might come fragmented in rare cases so might need to retry
AT commands.
config ESP_MODEM_USE_INFLATABLE_BUFFER_IF_NEEDED
bool "Use inflatable buffer in DCE"
default n
help
If enabled we will process the ongoing AT command by growing the current
buffer (if we've run out the preconfigured buffer).
If disabled, we simply report a failure.
Use this if additional allocation is not a problem and you need to reliably process
all commands, usually with sporadically longer responses than the configured buffer.
Could be also used to defragment AT replies in CMUX mode if CMUX_DEFRAGMENT_PAYLOAD=n
config ESP_MODEM_CMUX_DELAY_AFTER_DLCI_SETUP
int "Delay in ms to wait before creating another virtual terminal"
default 0
help
Some devices might need a pause before sending SABM command that creates
virtual terminal. This delay applies only to establishing a CMUX mode.
The typical reason for failing SABM request without a delay is that
some devices (SIM800) send MSC requests just after opening a new DLCI.
config ESP_MODEM_CMUX_USE_SHORT_PAYLOADS_ONLY
bool "CMUX to support only short payloads (<128 bytes)"
default n
help
If enabled, the CMUX protocol would only use 1 byte size field.
You can use this option for devices that support only short CMUX payloads
to make the protocol more robust on noisy environments or when underlying
transport gets corrupted often (for example by Rx buffer overflows)
endmenu