openthread: [Daemon] Error decoding hdcl frame: nobuffs
Describe the bug
While running ot-daemon, hdlc frames are discarded in HandleHdlcFrame with error OT_ERROR_NO_BUFS when hdlc decoder tries to write decoded bytes from the RCP. This happens when multiple SEDs (10) attempt to attach at the same time or during intense data upload from SEDs to the FTD, making the network very unstable, and eventually making ot-daemon crash.
To Reproduce
- Git commit id 9e3b450218582e721b102683de9786e7be5ef0b2
- IEEE 802.15.4 hardware platform EFR32MG13/EFR32MG12
- Build steps Linux recipe for ot-daemon
set(OT_BORDER_AGENT ON CACHE BOOL "enable border agent" FORCE)
set(OT_BORDER_ROUTER ON CACHE BOOL "enable border router feature" FORCE)
set(OT_BUILTIN_MBEDTLS_MANAGEMENT OFF CACHE BOOL "diable mbedTLS management" FORCE)
set(OT_COMMISSIONER ON CACHE BOOL "enable commissioner" FORCE)
set(OT_DAEMON ON CACHE BOOL "enable daemon mode" FORCE)
set(OT_JOINER ON CACHE BOOL "enable joiner" FORCE)
set(OT_LEGACY ON CACHE STRING "enable legacy network support" FORCE)
set(OT_MAC_FILTER ON CACHE STRING "enable MAC filter" FORCE)
set(OT_MBEDTLS_CONFIG_FILE "\"${PROJECT_SOURCE_DIR}/mbedtls-config.h\"" CACHE STRING "use mbedtls-config.h of this project" FORCE)
set(OT_PLATFORM "posix" CACHE STRING "use posix platform" FORCE)
set(OT_PLATFORM_NETIF ON CACHE BOOL "enable platform netif" FORCE)
set(OT_PLATFORM_UDP ON CACHE BOOL "enable platform UDP" FORCE)
set(OT_UDP_FORWARD OFF CACHE BOOL "diable udp forward" FORCE)
set(OT_SERVICE ON CACHE BOOL "enable services" FORCE)
set(OT_FULL_LOGS ON CACHE BOOL "enable full logs" FORCE)
set(OT_LOG_LEVEL_DYNAMIC ON CACHE BOOL "enable dynamic log level" FORCE)
set(OT_LOG_LEVEL "DEBG" CACHE STRING "debug log level" FORCE)
list(APPEND OT_PLATFORM_DEFINES "-DOPENTHREAD_CONFIG_POSIX_SETTINGS_PATH=\"/data/thread\"")
add_subdirectory(git)
target_compile_definitions(ot-config INTERFACE
"-DOPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT=1"
"-DOPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT=0"
"-DOPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_MAX_ALOCS=32"
"-DOPENTHREAD_CONFIG_MPL_DYNAMIC_INTERVAL_ENABLE=1"
"-DOPENTHREAD_CONFIG_MLE_MAX_CHILDREN=64 "
"-DOPENTHREAD_CONFIG_NUM_MESSAGE_BUFFERS=1024 "
"-DOPENTHREAD_CONFIG_TMF_ADDRESS_CACHE_ENTRIES=256 "
"-DOPENTHREAD_CONFIG_COAP_SERVER_MAX_CACHED_RESPONSES=128"
"-DOPENTHREAD_CONFIG_LOG_LEVEL=OT_LOG_LEVEL_DEBG "
"-DOPENTHREAD_CONFIG_LOG_API=1 "
"-DOPENTHREAD_CONFIG_LOG_ARP=1 "
"-DOPENTHREAD_CONFIG_LOG_BBR=1 "
"-DOPENTHREAD_CONFIG_LOG_CLI=1 "
"-DOPENTHREAD_CONFIG_LOG_COAP=1 "
"-DOPENTHREAD_CONFIG_LOG_DUA=1 "
"-DOPENTHREAD_CONFIG_LOG_ICMP=1 "
"-DOPENTHREAD_CONFIG_LOG_IP6=1 "
"-DOPENTHREAD_CONFIG_LOG_MAC=1 "
"-DOPENTHREAD_CONFIG_LOG_MEM=1 "
"-DOPENTHREAD_CONFIG_LOG_MESHCOP=1 "
"-DOPENTHREAD_CONFIG_LOG_MLE=1 "
"-DOPENTHREAD_CONFIG_LOG_MLR=1 "
"-DOPENTHREAD_CONFIG_LOG_NETDATA=1 "
"-DOPENTHREAD_CONFIG_LOG_NETDIAG=1 "
"-DOPENTHREAD_CONFIG_LOG_PKT_DUMP=1 "
"-DOPENTHREAD_CONFIG_LOG_PLATFORM=1 "
"-DOPENTHREAD_CONFIG_LOG_PREPEND_LEVEL=1 "
"-DOPENTHREAD_CONFIG_LOG_PREPEND_REGION=1 ")
- Network topology 1 FTD -> 10 SEDs
Set up network leader and attempt to attach multiple devices in a couple of seconds windows, or produce a considerable amount of traffic from SEDs to FTD (we are sending ~30Kb per device using CoAP )
Expected behavior
With a reliable uart communication (with baudrate 460800 8N1) and hardware flow control active, no frames should be discarded. The same scenario was tested with wpantund + NCP architecture and was found to be much more stable.
Console/log output
ot-daemon[21199]: [INFO]-MAC-----: Rx data poll, src:0xe80b, qed_msgs:2, rss:-54, ack-fp:1
Oct 19 20:59:20 ot-daemon[21199]: [DEBG]-MAC-----: Received frame from short address 0xe80d
Oct 19 20:59:20 ot-daemon[21199]: [DEBG]-MAC-----: Rx security - frame counter 2005
Oct 19 20:59:20 ot-daemon[21199]: [INFO]-MAC-----: Rx data poll, src:0xe80d, qed_msgs:1, rss:-40, ack-fp:1
Oct 19 20:59:20 ot-daemon[21199]: [DEBG]-MAC-----: Received frame from short address 0xe808
Oct 19 20:59:20 ot-daemon[21199]: [DEBG]-MAC-----: Rx security - frame counter 2181
Oct 19 20:59:20 ot-daemon[21199]: [INFO]-MAC-----: Rx data poll, src:0xe808, qed_msgs:1, rss:-50, ack-fp:0
Oct 19 20:59:20 ot-daemon[21199]: [DEBG]-MAC-----: Received frame from short address 0xe80c
Oct 19 20:59:20 ot-daemon[21199]: [DEBG]-MAC-----: Rx security - frame counter 2175
Oct 19 20:59:20 ot-daemon[21199]: [INFO]-MAC-----: Rx data poll, src:0xe80c, qed_msgs:1, rss:-47, ack-fp:0
Oct 19 20:59:20 ot-daemon[21199]: [INFO]-MLE-----: Send Child Update Request to child (fe80:0:0:0:c75:5598:feea:ef01,0xe80e)
Oct 19 20:59:20 ot-daemon[21199]: [DEBG]-PLAT----: Wait response: tid=15 key=4868
Oct 19 20:59:20 ot-daemon[21199]: [WARN]-PLAT----: Handle transmit done failed: NoAck
Oct 19 20:59:20 ot-daemon[21199]: [WARN]-PLAT----: Error decoding hdlc frame: NoBufs
Oct 19 20:59:17 [DEBG]-MAC-----: Rx security - frame counter 2176
Oct 19 20:59:20 ot-daemon[21199]: [WARN]-PLAT----: Error decoding hdlc frame: NoBufs
Oct 19 20:59:17 [INFO]-MAC-----: Rx data poll, src:0xe808, qed_msgs:0, rss:-45, ack-fp:0
Oct 19 20:59:20 ot-daemon[21199]: [WARN]-PLAT----: Error decoding hdlc frame: NoBufs
Oct 19 20:59:17 [DEBG]-MAC-----: Received frame from short address 0xe80c
Oct 19 20:59:20 ot-daemon[21199]: [WARN]-PLAT----: Error decoding hdlc frame: NoBufs
Oct 19 20:59:17 [DEBG]-MAC-----: Rx security - frame counter 2170
Oct 19 20:59:20 ot-daemon[21199]: [WARN]-PLAT----: Error decoding hdlc frame: NoBufs
Oct 19 20:59:17 [INFO]-MAC-----: Rx data poll, src:0xe80c, qed_msgs:0, rss:-48, ack-fp:0
Oct 19 20:59:20 ot-daemon[21199]: [WARN]-PLAT----: Error decoding hdlc frame: NoBufs
Oct 19 20:59:20 ot-daemon[21199]: [DEBG]-MAC-----: SrcAddrMatch - Clearing short addr: 0xe80d -- OK (0)
Oct 19 20:59:20 ot-daemon[21199]: [INFO]-MLE-----: Send Child Update Request to child (fe80:0:0:0:58cd:7fd1:c2f6:7c30,0xe80d)
Oct 19 20:59:20 ot-daemon[21199]: [INFO]-MAC-----: Prepping indir tx IPv6 UDP msg, len:105, chksum:e61f, to:0xe80b, sec:no, prio:net
Oct 19 20:59:20 ot-daemon[21199]: [INFO]-MLE-----: Send Child Update Request to child (fe80:0:0:0:902c:71fb:feb7:6dcb,0xe80b)
Oct 19 20:59:20 ot-daemon[21199]: [INFO]-PLAT----: processTransmit: OK
In this case daemon crashes:
Oct 19 20:59:20 [DEBG]-MAC-----: SrcAddrMatch - Clearing short addr: 0xe80d -- OK (0)
Oct 19 20:59:20 [DEBG]-PLAT----: Wait response: tid=1 key=4868
Oct 19 20:59:20 [WARN]-PLAT----: Error decoding hdlc frame: NoBufs
Oct 19 20:59:20 [WARN]-PLAT----: Error decoding hdlc frame: NoBufs
Oct 19 20:59:20 [WARN]-PLAT----: Error decoding hdlc frame: NoBufs
Oct 19 20:59:20 [WARN]-PLAT----: Error decoding hdlc frame: NoBufs
Oct 19 20:59:20 [DEBG]-MAC-----: SrcAddrMatch - Adding short addr: 0xe80d -- OK (0)
Oct 19 20:59:20 [DEBG]-MAC-----: Received frame from short address 0xe80b
Oct 19 20:59:20 [DEBG]-MAC-----: Rx security - frame counter 2026
Oct 19 20:59:20 [DEBG]-MAC-----: Received frame from short address 0xe80d
Oct 19 20:59:20 [DEBG]-MAC-----: Rx security - frame counter 2006
Oct 19 20:59:20 [DEBG]-MAC-----: Received frame from short address 0xe808
Oct 19 20:59:20 [DEBG]-MAC-----: Rx security - frame counter 2182
Oct 19 20:59:20 ==============================[RX len=072]===============================
Oct 19 20:59:20 | 61 DC A4 11 11 4D F4 80 | 44 31 C8 CE 2E 5E B4 E9 | a\$..Mt.D1HN.^4i
Oct 19 20:59:20 | 27 A6 D5 29 AA 7F 33 F0 | 4D 4C 4D 4C 22 44 00 15 | '&U)*.3pMLML"D..
Oct 19 20:59:20 | 1A 09 00 00 00 00 00 00 | 01 97 CD BB 34 B6 50 43 | ..........M;46PC
Oct 19 20:59:20 | FA 70 04 5B B7 EB A0 3F | AA 24 D1 EB 91 E8 FC 31 | zp.[7k ?*$Qk.h|1
Oct 19 20:59:20 | 87 7F 71 24 F5 98 2D 8F | .. .. .. .. .. .. .. .. | ..q$u.-.........
Oct 19 20:59:20 ------------------------------------------------------------------------
Oct 19 20:59:20 [DEBG]-MLE-----: Receive UDP message
Oct 19 20:59:20 [DEBG]-MAC-----: Received frame from short address 0xe80c
Oct 19 20:59:20 [DEBG]-MAC-----: Rx security - frame counter 2176
Oct 19 20:59:20 [DEBG]-MAC-----: Received frame from short address 0xe80b
Oct 19 20:59:20 [DEBG]-MAC-----: Rx security - frame counter 2027
Oct 19 20:59:20 [DEBG]-MAC-----: Received frame from short address 0xe80d
Oct 19 20:59:20 [DEBG]-MAC-----: Rx security - frame counter 2007
Oct 19 20:59:20 [DEBG]-MAC-----: Received frame from short address 0xe808
Oct 19 20:59:20 [DEBG]-MAC-----: Rx security - frame counter 2183
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe80c
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2177
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe80b
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2028
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe80d
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2008
Oct 19 20:59:21 ==============================[RX len=072]===============================
Oct 19 20:59:21 | 61 DC 79 11 11 4D F4 80 | 44 31 C8 CE 2E 04 02 FD | a\y..Mt.D1HN...}
Oct 19 20:59:21 | DB D2 D7 DB 42 7F 33 F0 | 4D 4C 4D 4C 66 8E 00 15 | [RW[B.3pMLMLf...
Oct 19 20:59:21 | 2B 09 00 00 00 00 00 00 | 01 E2 26 77 D7 9B CE E0 | +........b&wW.N`
Oct 19 20:59:21 | 7D 1E 79 06 92 07 36 03 | AA 8A 58 C8 3A CF 66 C8 | }.y...6.*.XH:OfH
Oct 19 20:59:21 | FE 6B B9 31 C8 3B 2D 8F | .. .. .. .. .. .. .. .. | ~k91H;-.........
Oct 19 20:59:21 ------------------------------------------------------------------------
Oct 19 20:59:21 [DEBG]-MLE-----: Receive UDP message
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe808
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2184
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe80c
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2178
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe80b
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2029
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe80d
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2009
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe808
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2185
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe80c
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2179
Oct 19 20:59:21 ==============================[RX len=072]===============================
Oct 19 20:59:21 | 61 DC 29 11 11 4D F4 80 | 44 31 C8 CE 2E CB 6D B7 | a\)..Mt.D1HN.Km7
Oct 19 20:59:21 | FE FB 71 2C 92 7F 33 F0 | 4D 4C 4D 4C 0E FE 00 15 | ~{q,..3pMLML.~..
Oct 19 20:59:21 | D5 07 00 00 00 00 00 00 | 01 78 D0 08 36 BC 01 61 | U........xP.6<.a
Oct 19 20:59:21 | 0C 16 2A 62 81 B1 35 9C | 01 F7 DA 45 DA 49 3C C8 | ..*b.15..wZEZI<H
Oct 19 20:59:21 | 37 C1 7B A9 49 42 2D 8F | .. .. .. .. .. .. .. .. | 7A{)IB-.........
Oct 19 20:59:21 ------------------------------------------------------------------------
Oct 19 20:59:21 [DEBG]-MLE-----: Receive UDP message
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe80b
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2030
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe80d
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2010
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe808
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2186
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe80c
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2180
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe80b
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2031
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe80d
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2011
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe808
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2187
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe80c
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2181
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe80b
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2032
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe80d
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2012
Oct 19 20:59:21 ==============================[RX len=072]===============================
Oct 19 20:59:21 | 61 DC 65 11 11 4D F4 80 | 44 31 C8 CE 2E D5 CC 1D | a\e..Mt.D1HN.UL.
Oct 19 20:59:21 | C4 1B C1 77 CE 7F 33 F0 | 4D 4C 4D 4C BE 43 00 15 | D.AwN.3pMLML>C..
Oct 19 20:59:21 | 1B 09 00 00 00 00 00 00 | 01 34 5F 0C FB 6C CF D9 | .........4_.{lOY
Oct 19 20:59:21 | 89 F5 46 34 C7 6E AE 14 | CB 6C BC 87 B9 19 B0 9A | .uF4Gn..Kl<.9.0.
Oct 19 20:59:21 | 23 EF 8B D9 2F 97 2D 8F | .. .. .. .. .. .. .. .. | #o.Y/.-.........
Oct 19 20:59:21 ------------------------------------------------------------------------
Oct 19 20:59:21 [DEBG]-MLE-----: Receive UDP message
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe808
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2188
Oct 19 20:59:21 [DEBG]-MAC-----: Received frame from short address 0xe80c
Oct 19 20:59:21 [DEBG]-MAC-----: Rx security - frame counter 2182
Oct 19 20:59:21 ============================[TX ERR len=016]=============================
Oct 19 20:59:21 | 79 DC 38 11 11 01 EF EA | FE 98 55 75 0E 4D F4 80 | y\8...oj~.Uu.Mt.
Oct 19 20:59:21 ------------------------------------------------------------------------
Oct 19 20:59:21 [DEBG]-MAC-----: RadioState: Transmit -> Receive
Oct 19 20:59:21 ==============================[TX len=126]===============================
Oct 19 20:59:21 | 79 DC 38 11 11 01 EF EA | FE 98 55 75 0E 4D F4 80 | y\8...oj~.Uu.Mt.
Oct 19 20:59:21 | 44 31 C8 CE 2E 0D E2 3E | 00 00 01 34 13 E3 40 D2 | D1HN..b>...4.c@R
Oct 19 20:59:21 | 69 12 D9 2F E1 E3 70 6F | AB BF E3 37 0E F0 2F 94 | i.Y/acpo+?c7.p/.
Oct 19 20:59:21 | D5 7D BA D8 85 EF 80 55 | 0B A6 7F E9 3C 20 27 29 | U}:X.o.U.&.i< ')
Oct 19 20:59:21 | 76 B4 EC 01 47 1C 4D B1 | 1B F0 9B 0F AF A7 CA 85 | v4l.G.M1.p../'J.
Oct 19 20:59:21 | 7A E3 25 E7 83 77 FD 30 | 16 8C DB CC 9A 93 48 1F | zc%g.w}0..[L..H.
Oct 19 20:59:21 | AF 69 F3 6D 73 30 BA BE | CB 3B 3C 58 B5 2A 07 57 | /isms0:>K;<X5*.W
Oct 19 20:59:21 | C8 EF 29 66 F1 9C 6C 14 | 8A 84 C7 51 00 00 .. .. | Ho)fq.l...GQ....
Oct 19 20:59:21 ------------------------------------------------------------------------
Oct 19 20:59:21 [DEBG]-MAC-----: Finishing operation "TransmitDataIndirect"
Oct 19 20:59:21 [DEBG]-MAC-----: Request to start operation "TransmitDataIndirect"
Oct 19 20:59:21 [DEBG]-MAC-----: Starting operation "TransmitDataIndirect"
Oct 19 20:59:21 [DEBG]-MAC-----: RadioState: Receive -> CsmaBackoff
Oct 19 20:59:21 [DEBG]-MAC-----: RadioState: CsmaBackoff -> Transmit
Oct 19 20:59:21 [DEBG]-PLAT----: Wait response: tid=3 key=4868
Oct 19 20:59:23 [WARN]-PLAT----: Error decoding hdlc frame: NoBufs
Oct 19 20:59:23 [WARN]-PLAT----: Error decoding hdlc frame: NoBufs
------------------------------ 180 repeated lines ----------------------------------
Oct 19 20:59:23 [WARN]-PLAT----: Error decoding hdlc frame: NoBufs
Oct 19 20:59:23 [WARN]-PLAT----: Error decoding hdlc frame: NoBufs
Oct 19 20:59:23 ot-daemon[21199]: [CRIT]-PLAT----: WaitResponse() at ../git/src/lib/spinel/radio_spinel_impl.hpp:1371: RadioSpinelNoResponse
Oct 19 20:59:23 ot-daemon[21199]: [CRIT]-PLAT----: Removing daemon socket: /tmp/openthread.sock
Oct 19 20:59:23 systemd[1]: ot-daemon.service: Main process exited, code=exited, status=6/NOTCONFIGURED
Oct 19 20:59:23 systemd[1]: ot-daemon.service: Unit entered failed state.
Oct 19 20:59:23 systemd[1]: ot-daemon.service: Failed with result 'exit-code'.
Oct 19 20:59:28 systemd[1]: ot-daemon.service: Service hold-off time over, scheduling restart.
Oct 19 20:59:29 systemd[1]: Stopped ot-daemon.
Oct 19 20:59:29 systemd[1]: Started ot-daemon.
Oct 19 20:59:29 ot-daemon[21565]: Running OPENTHREAD/20191113-01279-g9e3b45021; POSIX; Oct 19 2020 20:15:50
Oct 19 20:59:29 Running OPENTHREAD/20191113-01279-g9e3b45021; POSIX; Oct 19 2020 20:15:50
Oct 19 20:59:29 ot-daemon[21565]: Thread version: 2
Oct 19 20:59:29 ot-daemon[21565]: [DEBG]-PLAT----: Wait response: tid=1 key=54
Oct 19 20:59:29 ot-daemon[21565]: [DEBG]-MAC-----: RadioPanId: 0x1111
Additional context
We are using a custom platform running embedded linux and EFR32MG13 as RCP and can’t find what could be failing. Has daemon+RCP architecture been thoroughly tested for a production environment or is it still not that mature? For the moment we will continue to use wpantund but with an older version of NCP build since it is not compatible with master branch in openthread repo anymore. However, any insight to solve this would be greatly appreciated, so that we can migrate to using ot-daemon and keep up to date with the upstream changes.
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 25 (20 by maintainers)
@tlifschitz @dismirlian @latheepanm , thanks for raising this issue and all of your help to resolve this!
Thanks @dismirlian
I fully agree. I think this would be very helpful.
With OT now having/adding many features and many config parameters (a lot of features to enable/disable and knobs to control), it’s getting more complicated for users (project/product integrators) to learn about all OT configs and where/how to use/set them.
We have been considering for a while to provide a bunch of OT config set examples targeted towards different type of practical use-cases (device types) like: a posix FTD border router device config example, an NCP border router one , an NCP FTD, an NCP MTD (battery-powered), SoC MTD battery-powered, etc.
The idea/plan is to build these example configs from the products/projects where we integrate OT internally. I think this can be a useful starting point as an “OT config guide” and I hope we can submit a first PR on this soon. Inputs from other developers/users of OT would be very helpful on this (hopefully we can build on this and make it easier for users/developers)
@abtink, thanks for the detailed explanation on buffering. I agree that it won’t make a difference if the default buffer size is 2k, 8k or even 64k. I guess there is a limit to its size because of the
uint16_ts.If I’m not mistaken, at least in Linux the UART buffer size is equal to one page (4096 bytes on ARM). I would bump the default frame buffer size to even more than 8k.
Two other comments:
Thanks for your support!