Lines Matching full:llcp_cb
89 if ( (llcp_cb.lcb.inact_timer.in_use == FALSE)
90 &&(llcp_cb.lcb.inact_timeout > 0) )
92 LLCP_TRACE_DEBUG1 ("Start inactivity_timer: %d ms", llcp_cb.lcb.inact_timeout);
94 nfc_start_quick_timer (&llcp_cb.lcb.inact_timer, NFC_TTYPE_LLCP_LINK_INACT,
95 ((UINT32) llcp_cb.lcb.inact_timeout) * QUICK_TIMER_TICKS_PER_SEC / 1000);
110 if (llcp_cb.lcb.inact_timer.in_use)
114 nfc_stop_quick_timer (&llcp_cb.lcb.inact_timer);
129 if (llcp_cb.lcb.symm_state == LLCP_LINK_SYMM_LOCAL_XMIT_NEXT)
132 nfc_start_quick_timer (&llcp_cb.lcb.timer, NFC_TTYPE_LLCP_LINK_MANAGER,
133 (((UINT32) llcp_cb.lcb.symm_delay) * QUICK_TIMER_TICKS_PER_SEC) / 1000);
138 nfc_start_quick_timer (&llcp_cb.lcb.timer, NFC_TTYPE_LLCP_LINK_MANAGER,
139 ((UINT32) llcp_cb.lcb.peer_lto) * QUICK_TIMER_TICKS_PER_SEC / 1000);
154 nfc_stop_quick_timer (&llcp_cb.lcb.timer);
184 (*llcp_cb.lcb.p_link_cback) (LLCP_LINK_ACTIVATION_FAILED_EVT, LLCP_LINK_BAD_GEN_BYTES);
192 if ((p_config->is_initiator) && (llcp_link_rwt[p_config->waiting_time] > llcp_cb.lcb.peer_lto))
197 llcp_cb.lcb.peer_lto);
201 llcp_cb.lcb.peer_lto += LLCP_INTERNAL_TX_DELAY + LLCP_INTERNAL_RX_DELAY;
207 (*llcp_cb.lcb.p_link_cback) (LLCP_LINK_ACTIVATION_FAILED_EVT, LLCP_LINK_VERSION_FAILED);
211 llcp_cb.lcb.is_initiator = p_config->is_initiator;
215 if (llcp_cb.lcb.local_link_miu >= llcp_cb.lcb.peer_miu)
216 llcp_cb.lcb.effective_miu = llcp_cb.lcb.peer_miu;
218 llcp_cb.lcb.effective_miu = llcp_cb.lcb.local_link_miu;
224 if (llcp_cb.lcb.is_initiator)
228 llcp_cb.lcb.inact_timeout = llcp_cb.lcb.inact_timeout_init;
229 llcp_cb.lcb.symm_state = LLCP_LINK_SYMM_LOCAL_XMIT_NEXT;
231 if (llcp_cb.lcb.delay_first_pdu_timeout > 0)
234 nfc_start_quick_timer (&llcp_cb.lcb.timer, NFC_TTYPE_LLCP_DELAY_FIRST_PDU,
235 (((UINT32) llcp_cb.lcb.delay_first_pdu_timeout) * QUICK_TIMER_TICKS_PER_SEC) / 1000);
245 llcp_cb.lcb.inact_timeout = llcp_cb.lcb.inact_timeout_target;
246 llcp_cb.lcb.symm_state = LLCP_LINK_SYMM_REMOTE_XMIT_NEXT;
257 llcp_cb.lcb.link_state = LLCP_LINK_STATE_ACTIVATED;
260 (*llcp_cb.lcb.p_link_cback) (LLCP_LINK_ACTIVATION_COMPLETE_EVT, LLCP_LINK_SUCCESS);
288 llcp_cb.lcb.link_state = LLCP_LINK_STATE_DEACTIVATED;
296 (*llcp_cb.lcb.p_link_cback) (LLCP_LINK_DEACTIVATED_EVT, reason);
310 if (llcp_cb.lcb.link_state == LLCP_LINK_STATE_ACTIVATED)
312 if ((llcp_cb.lcb.symm_delay > 0) && (llcp_cb.lcb.symm_state == LLCP_LINK_SYMM_LOCAL_XMIT_NEXT))
322 if (llcp_cb.num_data_link_connection == 0)
333 else if (llcp_cb.lcb.link_state == LLCP_LINK_STATE_DEACTIVATING)
335 llcp_deactivate_cleanup (llcp_cb.lcb.link_deact_reason);
359 while (llcp_cb.lcb.sig_xmit_q.p_first)
360 GKI_freebuf (GKI_dequeue (&llcp_cb.lcb.sig_xmit_q));
380 llcp_cb.total_tx_ui_pdu = 0;
381 llcp_cb.total_rx_ui_pdu = 0;
386 if (llcp_cb.dlcb[idx].state != LLCP_DLC_STATE_IDLE)
388 p_dlcb = &(llcp_cb.dlcb[idx]);
393 llcp_cb.total_tx_i_pdu = 0;
394 llcp_cb.total_rx_i_pdu = 0;
396 llcp_cb.overall_tx_congested = FALSE;
397 llcp_cb.overall_rx_congested = FALSE;
410 llcp_cb.lcb.link_state = LLCP_LINK_STATE_DEACTIVATING;
412 if (llcp_cb.lcb.sig_xmit_q.count == 0)
415 nfc_start_quick_timer (&llcp_cb.lcb.timer, NFC_TTYPE_LLCP_LINK_MANAGER,
419 llcp_cb.lcb.link_deact_reason = reason;
423 &&(!llcp_cb.lcb.is_initiator) )
456 llcp_cb.lcb.peer_miu = LLCP_DEFAULT_MIU;
457 llcp_cb.lcb.peer_lto = LLCP_DEFAULT_LTO_IN_MS;
482 peer_major_version = LLCP_GET_MAJOR_VERSION (llcp_cb.lcb.peer_version);
483 peer_minor_version = LLCP_GET_MINOR_VERSION (llcp_cb.lcb.peer_version);
494 llcp_cb.lcb.agreed_major_version = LLCP_VERSION_MAJOR;
497 llcp_cb.lcb.agreed_minor_version = LLCP_VERSION_MINOR;
501 llcp_cb.lcb.agreed_minor_version = peer_minor_version;
507 llcp_cb.lcb.agreed_major_version = peer_major_version;
508 llcp_cb.lcb.agreed_minor_version = peer_minor_version;
513 llcp_cb.lcb.agreed_major_version = LLCP_VERSION_MAJOR;
514 llcp_cb.lcb.agreed_minor_version = LLCP_VERSION_MINOR;
520 llcp_cb.lcb.agreed_major_version, llcp_cb.lcb.agreed_minor_version);
543 data.link_status.is_initiator = llcp_cb.lcb.is_initiator;
575 if (llcp_cb.overall_tx_congested)
581 if (llcp_cb.total_tx_ui_pdu + llcp_cb.total_tx_i_pdu >= llcp_cb.max_num_tx_buff)
584 llcp_cb.overall_tx_congested = TRUE;
587 llcp_cb.total_tx_ui_pdu, llcp_cb.total_tx_i_pdu);
623 if ( (llcp_cb.dlcb[idx].state == LLCP_DLC_STATE_CONNECTED)
624 &&(llcp_cb.dlcb[idx].remote_busy == FALSE)
625 &&(llcp_cb.dlcb[idx].is_tx_congested == FALSE) )
627 llcp_cb.dlcb[idx].is_tx_congested = TRUE;
630 llcp_cb.dlcb[idx].local_sap, llcp_cb.dlcb[idx].remote_sap,
631 llcp_cb.dlcb[idx].i_xmit_q.count);
633 data.congest.local_sap = llcp_cb.dlcb[idx].local_sap;
634 data.congest.remote_sap = llcp_cb.dlcb[idx].remote_sap;
636 (*llcp_cb.dlcb[idx].p_app_cb->p_app_cback) (&data);
659 if (llcp_cb.overall_tx_congested)
661 if (llcp_cb.total_tx_ui_pdu + llcp_cb.total_tx_i_pdu <= llcp_cb.max_num_tx_buff / 2)
664 llcp_cb.overall_tx_congested = FALSE;
667 llcp_cb.total_tx_ui_pdu, llcp_cb.total_tx_i_pdu);
680 if (llcp_cb.total_tx_ui_pdu < llcp_cb.max_num_ll_tx_buff)
690 sap = llcp_cb.ll_tx_uncongest_ntf_start_sap;
703 &&(p_app_cb->ui_xmit_q.count <= llcp_cb.ll_tx_congest_end) )
722 sap = (llcp_cb.ll_tx_uncongest_ntf_start_sap + 1) % LLCP_NUM_SAPS;
732 llcp_cb.ll_tx_uncongest_ntf_start_sap = sap;
746 idx = llcp_cb.dl_tx_uncongest_ntf_start_idx;
751 if ( (llcp_cb.dlcb[idx].state == LLCP_DLC_STATE_CONNECTED)
752 &&(llcp_cb.dlcb[idx].is_tx_congested)
753 &&(llcp_cb.dlcb[idx].i_xmit_q.count <= llcp_cb.dlcb[idx].remote_rw / 2) )
755 llcp_cb.dlcb[idx].is_tx_congested = FALSE;
757 if (llcp_cb.dlcb[idx].remote_busy == FALSE)
760 llcp_cb.dlcb[idx].local_sap, llcp_cb.dlcb[idx].remote_sap,
761 llcp_cb.dlcb[idx].i_xmit_q.count);
763 data.congest.local_sap = llcp_cb.dlcb[idx].local_sap;
764 data.congest.remote_sap = llcp_cb.dlcb[idx].remote_sap;
766 (*llcp_cb.dlcb[idx].p_app_cb->p_app_cback) (&data);
775 idx = (llcp_cb.dl_tx_uncongest_ntf_start_idx + 1) % LLCP_MAX_DATA_LINK;
776 if (llcp_cb.dlcb[idx].state == LLCP_DLC_STATE_CONNECTED)
778 llcp_cb.dl_tx_uncongest_ntf_start_idx = idx;
826 if (llcp_cb.lcb.is_sending_data)
829 llcp_cb.lcb.is_sending_data = TRUE;
837 if (llcp_cb.lcb.symm_state == LLCP_LINK_SYMM_LOCAL_XMIT_NEXT)
870 if (llcp_cb.lcb.link_state == LLCP_LINK_STATE_ACTIVATED)
872 if (llcp_cb.lcb.symm_delay > 0)
876 llcp_cb.lcb.is_sending_data = FALSE;
884 if (llcp_cb.num_data_link_connection == 0)
892 llcp_cb.lcb.is_sending_data = FALSE;
897 if (llcp_cb.lcb.link_state == LLCP_LINK_STATE_DEACTIVATING)
900 nfc_start_quick_timer (&llcp_cb.lcb.timer, NFC_TTYPE_LLCP_LINK_MANAGER,
910 llcp_cb.lcb.is_sending_data = FALSE;
1034 llcp_cb.total_rx_ui_pdu++;
1038 if (p_app_cb->ui_rx_q.count > llcp_cb.ll_rx_congest_start)
1044 llcp_cb.total_rx_ui_pdu--;
1267 if (llcp_cb.lcb.symm_state == LLCP_LINK_SYMM_REMOTE_XMIT_NEXT)
1271 if ( (llcp_cb.lcb.link_state == LLCP_LINK_STATE_DEACTIVATING)
1272 &&(llcp_cb.lcb.sig_xmit_q.count == 0) )
1315 if ((!frame_error) && (info_length > llcp_cb.lcb.local_link_miu))
1318 llcp_cb.lcb.local_link_miu, info_length);
1348 llcp_cb.lcb.symm_state = LLCP_LINK_SYMM_LOCAL_XMIT_NEXT;
1380 if (llcp_cb.lcb.sig_xmit_q.p_first)
1384 p_msg = (BT_HDR*) llcp_cb.lcb.sig_xmit_q.p_first;
1389 p_msg = (BT_HDR*) GKI_dequeue (&llcp_cb.lcb.sig_xmit_q);
1398 if (!llcp_cb.lcb.ll_served)
1404 p_app_cb = llcp_util_get_app_cb (llcp_cb.lcb.ll_idx);
1420 llcp_cb.lcb.ll_served = !llcp_cb.lcb.ll_served;
1423 llcp_cb.total_tx_ui_pdu--;
1426 llcp_cb.lcb.ll_idx = (llcp_cb.lcb.ll_idx + 1) % LLCP_NUM_SAPS;
1434 llcp_cb.lcb.ll_idx = (llcp_cb.lcb.ll_idx + 1) % LLCP_NUM_SAPS;
1439 llcp_cb.lcb.ll_served = !llcp_cb.lcb.ll_served;
1447 if (llcp_cb.dlcb[llcp_cb.lcb.dl_idx].state != LLCP_DLC_STATE_IDLE)
1451 *p_next_pdu_length = llcp_dlc_get_next_pdu_length (&llcp_cb.dlcb[llcp_cb.lcb.dl_idx]);
1461 llcp_cb.lcb.dl_idx = (llcp_cb.lcb.dl_idx + 1) % LLCP_MAX_DATA_LINK;
1466 p_msg = llcp_dlc_get_next_pdu (&llcp_cb.dlcb[llcp_cb.lcb.dl_idx]);
1469 llcp_cb.lcb.dl_idx = (llcp_cb.lcb.dl_idx + 1) % LLCP_MAX_DATA_LINK;
1474 llcp_cb.lcb.ll_served = !llcp_cb.lcb.ll_served;
1482 llcp_cb.lcb.dl_idx = (llcp_cb.lcb.dl_idx + 1) % LLCP_MAX_DATA_LINK;
1489 llcp_cb.lcb.ll_served = !llcp_cb.lcb.ll_served;
1558 if (2 + p_msg->len + 2 + next_pdu_length <= llcp_cb.lcb.effective_miu)
1589 if (p_agf->len - LLCP_PDU_HEADER_SIZE + 2 + next_pdu_length <= llcp_cb.lcb.effective_miu)
1633 llcp_cb.lcb.symm_state = LLCP_LINK_SYMM_REMOTE_XMIT_NEXT;
1654 if (llcp_cb.lcb.link_state == LLCP_LINK_STATE_DEACTIVATED)
1672 if ( (llcp_cb.lcb.link_state == LLCP_LINK_STATE_DEACTIVATING)
1673 &&(!llcp_cb.lcb.is_initiator) )
1679 else if (llcp_cb.lcb.link_state != LLCP_LINK_STATE_DEACTIVATED)