You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by GitBox <gi...@apache.org> on 2019/01/24 18:43:54 UTC

[GitHub] ccollins476ad commented on issue #6: BLE reassembly support

ccollins476ad commented on issue #6: BLE reassembly support
URL: https://github.com/apache/mynewt-mcumgr/issues/6#issuecomment-457310275
 
 
   @bgiori
   
   Re: Write Long Characteristic Values procedure- My "BLE" is a bit rusty, so please correct me if I am wrong.  During a long write procedure, each fragment must be acknowledged by the server (Prepare Write Response).  The protocol would still effectively be stop-and-wait, so I am not sure this would help much with performance.
   
   I think we would want to do this at the application layer.  Then we can still use unacknowledged writes.  I can think of two ways we may want to achieve this (my apologies if I am rehashing things that have already been discussed):
   
   **1. Generic fragmentation mechanism.**  This is probably what you'd expect: the server buffers each fragment until the entire packet is received, then reassembles and processes.
   
   *Good:* Works for all SMP command types.
   *Bad:* Requires a lot of buffer space on the server.
   
   **2. DFU-specific mechanism.**  The image upload requests are not fragmented.  Instead, the requests are selectively acknowledged.  The server writes image chunks to flash as it receives them, but only acknowledges every X requests (or every X bytes).  Both sides understand the acknowledgement policy, so the client can rapidly send X requests, then listen for a response.
   
   *Good:* Does not require extra buffer space on the server.
   *Bad:* a) Only helps with DFU; b) probably more complicated to implement.
   
   Thoughts?

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services