andrzej-kaczmarek commented on issue #1291:
URL: https://github.com/apache/mynewt-nimble/issues/1291#issuecomment-1183559883

   Checking SN in `ble_ll_conn_rx_isr_end` does only mean that previously txd 
PDU was acked, but the spec does not say anything about acking, it just states 
that a valid non-empty PDU has to be txd/rxd:
   
   > A continuation event is a connection event where, in at least one of the 
previous connContinuationNumber connection events (ignoring any before the last 
subrated connection event), **at least one packet was transmitted or validly 
received containing a Link Layer PDU with a non-zero Length field**.
   
   So `has_nonempty_pdu` is set in two cases:
   - for tx, when `ble_phy_tx` for non-empty PDU was successful, meaning it 
will be txd
   - for rx, in `ble_ll_conn_rx_data_pdu` when rxd PDU was determined to be 
valid and is non-empty
   
   There's one small catch for tx: in theory it's possible that radio will be 
disabled prior/during tx so in fact PDU will not be transmissted, but at the 
moment we do not handle this properly; also it likely won't be even noticed irl.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@mynewt.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to