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

Commit 259646a8 authored by Hansong Zhang's avatar Hansong Zhang
Browse files

LE L2cap: Add COC config to registration

So we can send connect rsp for user.

Tag: #gd-refactor
Bug: 141555841
Test: cert/run --host
Change-Id: I6423f9c27e75c9665d91482fd6ca218492b18414
parent d473cd56
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ struct EattExtension::impl {
    reg_info_.pL2CA_Error_Cb = eatt_error_cb;
    reg_info_.pL2CA_DataInd_Cb = eatt_data_ind;

    if (L2CA_RegisterLECoc(BT_PSM_EATT, reg_info_, BTM_SEC_NONE) == 0) {
    if (L2CA_RegisterLECoc(BT_PSM_EATT, reg_info_, BTM_SEC_NONE, {}) == 0) {
      LOG(ERROR) << __func__ << " cannot register EATT";
    } else {
      eatt_impl_ = std::make_unique<eatt_impl>();
+2 −1
Original line number Diff line number Diff line
@@ -248,7 +248,8 @@ uint16_t GAP_ConnOpen(const char* p_serv_name, uint8_t service_id,
  }

  if (transport == BT_TRANSPORT_LE) {
    p_ccb->psm = L2CA_RegisterLECoc(psm, conn.reg_info, security);
    p_ccb->psm =
        L2CA_RegisterLECoc(psm, conn.reg_info, security, p_ccb->local_coc_cfg);
    if (p_ccb->psm == 0) {
      LOG(ERROR) << StringPrintf("%s: Failure registering PSM 0x%04x", __func__,
                                 psm);
+3 −3
Original line number Diff line number Diff line
@@ -167,8 +167,8 @@ static_assert(L2CAP_LE_CREDIT_THRESHOLD < L2CAP_LE_CREDIT_DEFAULT,
 */
struct tL2CAP_LE_CFG_INFO {
  uint16_t result; /* Only used in confirm messages */
  uint16_t mtu;
  uint16_t mps;
  uint16_t mtu = 100;
  uint16_t mps = 100;
  uint16_t credits = L2CAP_LE_CREDIT_DEFAULT;
};

@@ -409,7 +409,7 @@ extern uint16_t L2CA_ConnectReq(uint16_t psm, const RawAddress& p_bd_addr);
 ******************************************************************************/
extern uint16_t L2CA_RegisterLECoc(uint16_t psm,
                                   const tL2CAP_APPL_INFO& p_cb_info,
                                   uint16_t sec_level);
                                   uint16_t sec_level, tL2CAP_LE_CFG_INFO cfg);

/*******************************************************************************
 *
+2 −1
Original line number Diff line number Diff line
@@ -370,7 +370,7 @@ uint16_t L2CA_ConnectReq(uint16_t psm, const RawAddress& p_bd_addr) {
 *
 ******************************************************************************/
uint16_t L2CA_RegisterLECoc(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info,
                            uint16_t sec_level) {
                            uint16_t sec_level, tL2CAP_LE_CFG_INFO cfg) {
  if (bluetooth::shim::is_gd_l2cap_enabled()) {
    return bluetooth::shim::L2CA_RegisterLECoc(psm, p_cb_info, sec_level);
  }
@@ -425,6 +425,7 @@ uint16_t L2CA_RegisterLECoc(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info,

  p_rcb->api = p_cb_info;
  p_rcb->real_psm = psm;
  p_rcb->coc_cfg = cfg;

  return vpsm;
}
+1 −0
Original line number Diff line number Diff line
@@ -215,6 +215,7 @@ typedef struct {
                     /* this is the real PSM that we need to connect to */
  tL2CAP_APPL_INFO api;
  tL2CAP_ERTM_INFO ertm_info;
  tL2CAP_LE_CFG_INFO coc_cfg;
  uint16_t my_mtu;
  uint16_t required_remote_mtu;
} tL2C_RCB;
Loading