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 2018/01/26 14:43:37 UTC

[GitHub] andrzej-kaczmarek opened a new pull request #770: [wip] nimble/ll: Add support for advertising data fragmentation

andrzej-kaczmarek opened a new pull request #770: [wip] nimble/ll: Add support for advertising data fragmentation
URL: https://github.com/apache/mynewt-core/pull/770
 
 
   This adds support for advertising data fragmentation. It does not need any special configuration - as soon as adv data are too big to fit in single AUX_ADV_IND, controller will fragment them and send in subsequent ADV_CHAIN_IND. Also host preference for fragmentation is ignored for now, we just fragment data so they are sent as fast as possible.
   
   The main problem here is scheduling: original code for handling secondary adv channel can schedule only single aux PDU, but we need to have subsequent PDU already scheduled before txing current one in order to calculate AuxPtr. We could try to schedule aux on the fly but it means scheduling is done in interrupt context which is probably not the best idea.
   
   The solution is to schedule 2 aux PDUs at the same time: current and next one. This way AuxPtr can be calculated instantly when creating PDU and then subsequent PDU can be scheduled in LL task context. Also the contents of each aux PDU (i.e. header and length) is calculated during scheduling which simplifies and speeds up code - main logic is executed in LL task and in interrupt context we only put pieces together.

----------------------------------------------------------------
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