From 1684e06a2d5bd65b5fe2986446881895d365ec9c Mon Sep 17 00:00:00 2001 From: Chris Manton Date: Sun, 14 Mar 2021 09:51:53 -0700 Subject: [PATCH] dumpsys: Properly log classic/le ACL Toward loggable code Bug: 163134718 Test: gd/cert/run Tag: #refactor BYPASS_LONG_LINES_REASON: Bluetooth likes 120 lines Change-Id: I2abfb24cdcd174dc026d75f8d37d53abfa983266 --- main/shim/acl.cc | 75 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/main/shim/acl.cc b/main/shim/acl.cc index 9778fcaa3..082368bc3 100644 --- a/main/shim/acl.cc +++ b/main/shim/acl.cc @@ -909,43 +909,45 @@ void DumpsysAcl(int fd) { shim::Stack::GetInstance()->GetAcl()->DumpConnectionHistory(fd); for (int i = 0; i < MAX_L2CAP_LINKS; i++) { - const tACL_CONN& acl_conn = acl_cb.acl_db[i]; - if (!acl_conn.in_use) continue; - - LOG_DUMPSYS(fd, " peer_le_features valid:%s data:%s", - common::ToString(acl_conn.peer_le_features_valid).c_str(), - bd_features_text(acl_conn.peer_le_features).c_str()); - for (int j = 0; j < HCI_EXT_FEATURES_PAGE_MAX + 1; j++) { - LOG_DUMPSYS(fd, " peer_lmp_features[%d] valid:%s data:%s", j, - common::ToString(acl_conn.peer_lmp_feature_valid[j]).c_str(), - bd_features_text(acl_conn.peer_lmp_feature_pages[j]).c_str()); - } - LOG_DUMPSYS(fd, " sniff_subrating:%s", - common::ToString(HCI_SNIFF_SUB_RATE_SUPPORTED( - acl_conn.peer_lmp_feature_pages[0])) - .c_str()); - - LOG_DUMPSYS(fd, "remote_addr:%s", acl_conn.remote_addr.ToString().c_str()); - LOG_DUMPSYS(fd, " handle:0x%04x", acl_conn.hci_handle); - LOG_DUMPSYS(fd, " [le] active_remote_addr:%s", - acl_conn.active_remote_addr.ToString().c_str()); - LOG_DUMPSYS(fd, " [le] conn_addr:%s", - acl_conn.conn_addr.ToString().c_str()); - LOG_DUMPSYS(fd, " link_up_issued:%s", - (acl_conn.link_up_issued) ? "true" : "false"); - LOG_DUMPSYS(fd, " transport:%s", - bt_transport_text(acl_conn.transport).c_str()); - LOG_DUMPSYS(fd, " flush_timeout:0x%04x", - acl_conn.flush_timeout_in_ticks); - LOG_DUMPSYS( - fd, " [classic] link_policy:%s", - link_policy_text(static_cast(acl_conn.link_policy)) - .c_str()); + const tACL_CONN& link = acl_cb.acl_db[i]; + if (!link.in_use) continue; + + LOG_DUMPSYS(fd, "remote_addr:%s handle:0x%04x transport:%s", + link.remote_addr.ToString().c_str(), link.hci_handle, + bt_transport_text(link.transport).c_str()); + LOG_DUMPSYS(fd, " link_up_issued:%5s", + (link.link_up_issued) ? "true" : "false"); + LOG_DUMPSYS(fd, " flush_timeout:0x%04x", link.flush_timeout_in_ticks); LOG_DUMPSYS(fd, " link_supervision_timeout:%.3f sec", - ticks_to_seconds(acl_conn.link_super_tout)); - LOG_DUMPSYS(fd, " pkt_types_mask:0x%04x", acl_conn.pkt_types_mask); - LOG_DUMPSYS(fd, " disconnect_reason:0x%02x", acl_conn.disconnect_reason); - LOG_DUMPSYS(fd, " role:%s", RoleText(acl_conn.link_role).c_str()); + ticks_to_seconds(link.link_super_tout)); + LOG_DUMPSYS(fd, " disconnect_reason:0x%02x", link.disconnect_reason); + + if (link.is_transport_br_edr()) { + for (int j = 0; j < HCI_EXT_FEATURES_PAGE_MAX + 1; j++) { + LOG_DUMPSYS(fd, " peer_lmp_features[%d] valid:%s data:%s", j, + common::ToString(link.peer_lmp_feature_valid[j]).c_str(), + bd_features_text(link.peer_lmp_feature_pages[j]).c_str()); + } + LOG_DUMPSYS(fd, " [classic] link_policy:%s", + link_policy_text(static_cast(link.link_policy)) + .c_str()); + LOG_DUMPSYS(fd, " [classic] sniff_subrating:%s", + common::ToString(HCI_SNIFF_SUB_RATE_SUPPORTED( + link.peer_lmp_feature_pages[0])) + .c_str()); + + LOG_DUMPSYS(fd, " pkt_types_mask:0x%04x", link.pkt_types_mask); + LOG_DUMPSYS(fd, " role:%s", RoleText(link.link_role).c_str()); + } else if (link.is_transport_ble()) { + LOG_DUMPSYS(fd, " [le] peer_features valid:%s data:%s", + common::ToString(link.peer_le_features_valid).c_str(), + bd_features_text(link.peer_le_features).c_str()); + + LOG_DUMPSYS(fd, " [le] active_remote_addr:%s", + link.active_remote_addr.ToString().c_str()); + LOG_DUMPSYS(fd, " [le] conn_addr:%s", + link.conn_addr.ToString().c_str()); + } } } #undef DUMPSYS_TAG @@ -986,7 +988,6 @@ void DumpsysRecord(int fd) { node = list_next(node)) { tBTM_SEC_DEV_REC* p_dev_rec = static_cast(list_node(node)); - LOG_DUMPSYS(fd, "%03u %s", ++cnt, p_dev_rec->ToString().c_str()); } } -- 2.11.0