This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2651R3SIPA:滤波器策略 GAP_ADV_WL_POLICY_WL_ALL_REQ 不符合 I'无法正常工作

Guru**** 1133960 points
Other Parts Discussed in Thread: CC2651R3SIPA
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1252742/cc2651r3sipa-filter-policy-gap_adv_wl_policy_wl_all_req-doesn-t-work

器件型号:CC2651R3SIPA

您好、TI 专家、

首先、这是我们的项目中的配置、

器件:CC2651R3SIPA
编译器:TI Clang v2.1.2 LTS
SimpleLink SDK:simplelink_cc13xx_cc26xx_sdk_6_30_01_03

我们要使用滤波器策略 GAP_ADV_WL_POLICY_WL_ALL_REQ 来仅允许与绑定器件的连接。 但这不起作用、因为当我们在  另一器件上的系统中激活 GAP_ADV_WL_POLICY_WL_ALL_REQ 时、我们会在尝试连接时看到 GATT 错误133。 这是来自 init 的代码片段:

memcpy (advParams1.peerAddr、memory->peerRandomStaticAddress、B_ADDR_LEN);
advParams1.peerAddrType = peer_ADDRTYPE_random_or_random_ID
advParams1.filterPolicy = GAP_ADV_WL_POLICY_WL_ALL_REQ;

当我们将滤波器策略设置为 GAP_ADV_WL_POLICY_WL_SCAN_REQ 时、  会发生 GAP_LINK_SETTING_EVENT、但地址类型为0x03。 我们预期为0x01、因为我们在两侧都使用 random_static_address。 这是 GAP_LINK_REGATED_EVENT 的快照

 来自另一侧的连接数据包包含该标头

那么、这种行为的原因是什么?

提前感谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Victor:

    我将尝试使用我们的 Project Zero 重现此问题。

    同时、如果您提供所执行的步骤、直到遇到此问题、这将非常有用。

    但是、 如果尚未完成、我建议您  在安全基础内查看我们的 SLA、有一个很好的解释联系。  

    此致、  

    亚历克斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alex:

    感谢您的答复。

    1.我们从未绑定的设备开始。 我们使用以下广播器配置:

    GapAdv_params_t advParams1 = {
      .eventProps =   GAP_ADV_PROP_CONNECTABLE | GAP_ADV_PROP_LEGACY | GAP_ADV_PROP_SCANNABLE,
      .primIntMin =   160,
      .primIntMax =   160,
      .primChanMap =  GAP_ADV_CHAN_ALL,
      .peerAddrType = PEER_ADDRTYPE_RANDOM_OR_RANDOM_ID,
      .peerAddr =     { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa },
      .filterPolicy = GAP_ADV_WL_POLICY_ANY_REQ,
      .txPower =      GAP_ADV_TX_POWER_NO_PREFERENCE,
      .primPhy =      GAP_ADV_PRIM_PHY_1_MBPS,
      .secPhy =       GAP_ADV_SEC_PHY_1_MBPS,
      .sid =          0
    };

    使用此配置可以建立与对等器件的连接、并且绑定也可以成功执行-事件 GAPBOND_PAMASING_STATE_encrypted 和 GAPBOND_PAXING_STATE_Bond_SAVED 成功执行。

    2.下一次启动时,我们更改广播器配置:

    memcpy(advParams1.peerAddr, peerRandomStaticAddress, B_ADDR_LEN);
    advParams1.filterPolicy = GAP_ADV_WL_POLICY_WL_SCAN_REQ;

    但在本例中、GAP_LINK_Establed_event 不再发生、对等器件在连接请求时得到错误133

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Viktor:

    您是否已经访问过我们的 SLASIS实施 链路学院?  

    BLE 安全基础(TI.com)

    我们提供了一个示例、用于说明键合如何与 CC2651配合使用。

    此致、
    亚历克斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alex:

    感谢您的提示。 我们解决了这个问题。 这是我们的更改:

    HCI_LE_ClearWhiteListCmd("");
    HCI_LE_AddWhiteListCmd(peerAddressMode, peerRandomStaticAddress);
    
    memcpy(advParams1.peerAddr, peerRandomStaticAddress, B_ADDR_LEN);
    advParams1.filterPolicy = GAP_ADV_WL_POLICY_WL_ALL_REQ;

    感谢您的帮助!

    此致