Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fc5ec4fc authored by Jakub Tyszkowski's avatar Jakub Tyszkowski Committed by Automerger Merge Worker
Browse files

iso: Fix handling same sequence number am: de7e3ad5 am: cfbaea36

Original change: https://android-review.googlesource.com/c/platform/system/bt/+/1559667

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I0f311b4c1d9af4193064e0356d9c68403d21ef78
parents a3ad98f5 cfbaea36
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -630,7 +630,8 @@ struct iso_impl {
    uint32_t ts = bluetooth::common::time_get_os_boottime_us();
    uint32_t new_calc_seq_nb =
        (ts - iso->sync_info.first_sync_ts) / iso->sdu_itv;
    if (new_calc_seq_nb == iso->sync_info.seq_nb) ++new_calc_seq_nb;
    if (new_calc_seq_nb <= iso->sync_info.seq_nb)
      new_calc_seq_nb = iso->sync_info.seq_nb + 1;

    if (iso->sync_info.seq_nb == 0) {
      evt.evt_lost = 0;
+24 −0
Original line number Diff line number Diff line
@@ -2176,3 +2176,27 @@ TEST_F(IsoManagerTest, HandleDisconnectDisconnectedCig) {
  handle = volatile_test_cig_create_cmpl_evt_.conn_handles[1];
  IsoManager::GetInstance()->HandleDisconnect(handle, 16);
}

TEST_F(IsoManagerTest, HandleIsoDataSameSeqNb) {
  IsoManager::GetInstance()->CreateCig(
      volatile_test_cig_create_cmpl_evt_.cig_id, kDefaultCigParams);

  auto handle = volatile_test_cig_create_cmpl_evt_.conn_handles[0];
  IsoManager::GetInstance()->EstablishCis({{{handle, 1}}});

  EXPECT_CALL(
      *cig_callbacks_,
      OnCisEvent(bluetooth::hci::iso_manager::kIsoEventCisDataAvailable, _))
      .Times(2);

  std::vector<uint8_t> dummy_msg(18);
  uint8_t* p = dummy_msg.data();
  UINT16_TO_STREAM(p, BT_EVT_TO_BTU_HCI_ISO);
  UINT16_TO_STREAM(p, 10);  // .len
  UINT16_TO_STREAM(p, 0);   // .offset
  UINT16_TO_STREAM(p, 0);   // .layer_specific
  UINT16_TO_STREAM(p, handle);

  IsoManager::GetInstance()->HandleIsoData(dummy_msg.data());
  IsoManager::GetInstance()->HandleIsoData(dummy_msg.data());
}