File tree Expand file tree Collapse file tree 3 files changed +39
-9
lines changed
subsys/bluetooth/controller Expand file tree Collapse file tree 3 files changed +39
-9
lines changed Original file line number Diff line number Diff line change @@ -561,6 +561,12 @@ config BT_CTLR_FAST_ENC
561
561
Maximum CPU time in Radio ISR will increase if this feature is
562
562
selected.
563
563
564
+ config BT_CTLR_LLID_DATA_START_EMPTY
565
+ bool "Handle zero length L2CAP start frame"
566
+ default y if BT_HCI_RAW
567
+ help
568
+ Handle zero length L2CAP start frame.
569
+
564
570
config BT_CTLR_TX_RETRY_DISABLE
565
571
bool "Disable Tx Retry"
566
572
help
Original file line number Diff line number Diff line change @@ -9202,6 +9202,26 @@ static void packet_tx_enqueue(u8_t max)
9202
9202
pdu_data_q_tx -> handle );
9203
9203
9204
9204
if (conn -> handle == pdu_data_q_tx -> handle ) {
9205
+ if (IS_ENABLED (CONFIG_BT_CTLR_LLID_DATA_START_EMPTY )) {
9206
+ struct pdu_data * p ;
9207
+
9208
+ p = (void * )node_tx_new -> pdu_data ;
9209
+ if ((p -> ll_id == PDU_DATA_LLID_DATA_START ) &&
9210
+ !p -> len ) {
9211
+ conn -> start_empty = 1U ;
9212
+ pdu_node_tx_release (conn -> handle ,
9213
+ node_tx_new );
9214
+ goto packet_tx_enqueue_release ;
9215
+ } else if (p -> len && conn -> start_empty ) {
9216
+ conn -> start_empty = 0U ;
9217
+ if (p -> ll_id ==
9218
+ PDU_DATA_LLID_DATA_CONTINUE ) {
9219
+ p -> ll_id =
9220
+ PDU_DATA_LLID_DATA_START ;
9221
+ }
9222
+ }
9223
+ }
9224
+
9205
9225
if (conn -> pkt_tx_data == 0 ) {
9206
9226
conn -> pkt_tx_data = node_tx_new ;
9207
9227
@@ -9229,6 +9249,7 @@ static void packet_tx_enqueue(u8_t max)
9229
9249
pdu_node_tx_release (pdu_data_q_tx -> handle , node_tx_new );
9230
9250
}
9231
9251
9252
+ packet_tx_enqueue_release :
9232
9253
first = _radio .packet_tx_first + 1 ;
9233
9254
if (first == _radio .packet_tx_count ) {
9234
9255
first = 0U ;
Original file line number Diff line number Diff line change @@ -272,15 +272,6 @@ struct connection {
272
272
} llcp_phy ;
273
273
#endif /* CONFIG_BT_CTLR_PHY */
274
274
275
- u8_t sn :1 ;
276
- u8_t nesn :1 ;
277
- u8_t pause_rx :1 ;
278
- u8_t pause_tx :1 ;
279
- u8_t enc_rx :1 ;
280
- u8_t enc_tx :1 ;
281
- u8_t refresh :1 ;
282
- u8_t empty :1 ;
283
-
284
275
struct ccm ccm_rx ;
285
276
struct ccm ccm_tx ;
286
277
@@ -292,6 +283,18 @@ struct connection {
292
283
u8_t packet_tx_head_len ;
293
284
u8_t packet_tx_head_offset ;
294
285
286
+ u8_t sn :1 ;
287
+ u8_t nesn :1 ;
288
+ u8_t pause_rx :1 ;
289
+ u8_t pause_tx :1 ;
290
+ u8_t enc_rx :1 ;
291
+ u8_t enc_tx :1 ;
292
+ u8_t refresh :1 ;
293
+ u8_t empty :1 ;
294
+
295
+ /* Detect empty L2CAP start frame */
296
+ u8_t start_empty :1 ;
297
+
295
298
#if defined(CONFIG_BT_CTLR_CONN_RSSI )
296
299
u8_t rssi_latest ;
297
300
u8_t rssi_reported ;
You can’t perform that action at this time.
0 commit comments