From 1780e37a0bc4e6e65fd2f47cf4376656e07e54f0 Mon Sep 17 00:00:00 2001 From: Hansong Zhang Date: Thu, 24 Sep 2020 16:45:19 -0700 Subject: [PATCH] AVDTP: Use the same MTU in config request MTU in config request indicates how many bytes _we_ can process at most. Instead of using different number for signalling and audio channel, we use the same number, which is the greater one . This won't require the remote side to have a larger buffer size, as they can still send the same packet size as before. We won't need to worry about memory implication either, because audio buffer will go away quickly. Bug: 159815595 Tag: #refactor Test: compile & verify basic functions working Change-Id: Iab025784699a77d89d784926d1f393a3cc2fe767 --- stack/avdt/avdt_ad.cc | 4 ++-- stack/avdt/avdt_api.cc | 2 +- stack/avdt/avdt_int.h | 3 +-- stack/avdt/avdt_l2c.cc | 6 +++--- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/stack/avdt/avdt_ad.cc b/stack/avdt/avdt_ad.cc index 90d28e650..fed9cffe8 100644 --- a/stack/avdt/avdt_ad.cc +++ b/stack/avdt/avdt_ad.cc @@ -527,10 +527,10 @@ void avdt_ad_open_req(uint8_t type, AvdtpCcb* p_ccb, AvdtpScb* p_scb, if (type == AVDT_CHAN_SIG) { /* if signaling, get mtu from registration control block */ - p_tbl->my_mtu = kSignalMtu; + p_tbl->my_mtu = kAvdtpMtu; } else { /* otherwise get mtu from scb */ - p_tbl->my_mtu = kAudioMtu; + p_tbl->my_mtu = kAvdtpMtu; /* also set scb_hdl in rt_tbl */ avdtp_cb.ad.rt_tbl[avdt_ccb_to_idx(p_ccb)][p_tbl->tcid].scb_hdl = diff --git a/stack/avdt/avdt_api.cc b/stack/avdt/avdt_api.cc index 1d6c5dc49..539d474b3 100644 --- a/stack/avdt/avdt_api.cc +++ b/stack/avdt/avdt_api.cc @@ -93,7 +93,7 @@ void avdt_scb_transport_channel_timer_timeout(void* data) { void AVDT_Register(AvdtpRcb* p_reg, tAVDT_CTRL_CBACK* p_cback) { /* register PSM with L2CAP */ L2CA_Register2(AVDT_PSM, avdt_l2c_appl, true /* enable_snoop */, nullptr, - L2CAP_DEFAULT_MTU, BTA_SEC_AUTHENTICATE); + kAvdtpMtu, BTA_SEC_AUTHENTICATE); /* initialize AVDTP data structures */ avdt_scb_init(); diff --git a/stack/avdt/avdt_int.h b/stack/avdt/avdt_int.h index 2fcc77865..425974ea4 100644 --- a/stack/avdt/avdt_int.h +++ b/stack/avdt/avdt_int.h @@ -1002,7 +1002,6 @@ extern const uint8_t avdt_msg_rej_2_evt[]; void avdt_l2c_disconnect(uint16_t lcid); -constexpr uint16_t kSignalMtu = 672; -constexpr uint16_t kAudioMtu = MAX_3MBPS_AVDTP_MTU; +constexpr uint16_t kAvdtpMtu = 1024; #endif /* AVDT_INT_H */ diff --git a/stack/avdt/avdt_l2c.cc b/stack/avdt/avdt_l2c.cc index d7b132ddb..682aa70f0 100644 --- a/stack/avdt/avdt_l2c.cc +++ b/stack/avdt/avdt_l2c.cc @@ -97,7 +97,7 @@ static void avdt_sec_check_complete_term(const RawAddress* bd_addr, /* Send L2CAP config req */ memset(&cfg, 0, sizeof(tL2CAP_CFG_INFO)); cfg.mtu_present = true; - cfg.mtu = kSignalMtu; + cfg.mtu = kAvdtpMtu; L2CA_ConfigReq(p_tbl->lcid, &cfg); } else { L2CA_ConnectRsp(*bd_addr, p_tbl->id, p_tbl->lcid, L2CAP_CONN_SECURITY_BLOCK, @@ -136,7 +136,7 @@ static void avdt_sec_check_complete_orig(const RawAddress* bd_addr, /* Send L2CAP config req */ memset(&cfg, 0, sizeof(tL2CAP_CFG_INFO)); cfg.mtu_present = true; - cfg.mtu = kSignalMtu; + cfg.mtu = kAvdtpMtu; L2CA_ConfigReq(p_tbl->lcid, &cfg); } else { avdt_l2c_disconnect(p_tbl->lcid); @@ -177,7 +177,7 @@ void avdt_l2c_connect_ind_cback(const RawAddress& bd_addr, uint16_t lcid, } else { /* allocate and set up entry; first channel is always signaling */ p_tbl = avdt_ad_tc_tbl_alloc(p_ccb); - p_tbl->my_mtu = kSignalMtu; + p_tbl->my_mtu = kAvdtpMtu; p_tbl->tcid = AVDT_CHAN_SIG; p_tbl->lcid = lcid; p_tbl->id = id; -- 2.11.0