Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nimble: Eatt initial implementation #1549

Merged
merged 16 commits into from
Aug 24, 2023

Commits on Aug 7, 2023

  1. nimble/host: Make gap init before att

    This is needed as eatt is registering listener in gap nowadays
    rymanluk authored and KKopyscinski committed Aug 7, 2023
    Configuration menu
    Copy the full SHA
    301c0cb View commit details
    Browse the repository at this point in the history
  2. nimble/gatt: Prepare GATT for EATT

    This patch adds CID to the data path for all the GATT operations.
    It also updates unit tests after the change.
    rymanluk authored and KKopyscinski committed Aug 7, 2023
    Configuration menu
    Copy the full SHA
    ab32156 View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2023

  1. nimble/host: Initial EATT support

    The idea for EATT in Mynewt is as follow.
    EATT is not exposed to the user i.e. GATT API stays the same. User can
    define number of EATT channels supported by the host and it is host
    managing those channels.
    EATT will be fist choice channel for every ATT operation. In the future
    we can make it smarted and make a choice based on the ATT data in the
    packet
    
    TODO:
    * handle reading and setting client/server Supported features in the
    stack instead of eatt code
    * add test API to choose channel to use (needed by PTS)
    rymanluk authored and KKopyscinski committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    d7b9288 View commit details
    Browse the repository at this point in the history
  2. nimble/gatt: Add support for newt ATT opcodes

    This is initial implementation of handling new GATT opcodes.
    Gatt Client supports now:
    ATT multi Variable read req
    receiving ATT multi notifications
    
    Gatt server supports now:
    ATT multi Variable read rsp
    rymanluk authored and KKopyscinski committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    6588e13 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d093078 View commit details
    Browse the repository at this point in the history
  4. nimle/tests: reset conn->client_att_busy between requests

    In real case, requests are scheduled to be sent after previous one
    completes. That happens after response is received. In unittests,
    internal API is used for holding pending requests, from which they can
    be manually dequeued. Because dequeue operation is always manual and
    does not happed after response reception (when will never arrive, there
    is no second device) we need to clear flag to be able to start another
    procedure.
    KKopyscinski committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    eae6c0d View commit details
    Browse the repository at this point in the history
  5. host: add error handler cb for Read Multiple Variable Length

    This is needed to properly handle failed procedure, and pass error to
    the app.
    KKopyscinski committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    32addcb View commit details
    Browse the repository at this point in the history
  6. host/ble_att.c: add missing op code for BLE_ATT_OP_READ_MULT_VAR REQ/RSP

    This was missing and assert in ble_eatt_l2cap_event_fn was hit
    KKopyscinski committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    a8fea85 View commit details
    Browse the repository at this point in the history
  7. apps/bttester: add support for GATT Read Multiple Variable Length

    Adds required command and response event.
    KKopyscinski committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    777be1e View commit details
    Browse the repository at this point in the history
  8. host/gatts: save reported Client Supported Features per connection

    GATT Client by writing to Client Supported Features characteristic
    reports to server what features it supports. These features should be
    saved for future use so appropriate subprocedures can be selected.
    KKopyscinski committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    ff66d04 View commit details
    Browse the repository at this point in the history
  9. host/ble_att_ctl.c: release eatt chan in ble_att_clt_tx_notify

    Channel was taken and function returns before release.
    KKopyscinski committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    be57139 View commit details
    Browse the repository at this point in the history
  10. host/ble_att.c: add missing OP code in ble_att_is_request_op

    Assert was hit when BLE_ATT_OP_NOTIFY_MULTI_REQ was received.
    KKopyscinski committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    2962025 View commit details
    Browse the repository at this point in the history
  11. host/ble_svc_gatt.c: return local Client supported features based on …

    …config
    
    EATT supported bit is returned when EATT channel number is greater than 0
    and Multiple Handle notification based on BLE_ATT_SVR_NOTIFY_MULTI.
    KKopyscinski committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    ca01e57 View commit details
    Browse the repository at this point in the history
  12. host/ble_att.c: fix ATT MTU for EATT channels

    For EATT bearer, ATT MTU is same for bot RX and TX and is minimum of the
    two. L2CAP Credit Based Reconfigure Request can be used to change its
    value.
    KKopyscinski committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    38e56a7 View commit details
    Browse the repository at this point in the history
  13. host/ble_eatt: improve PDU rx management

    Added check for link encryption. Removed unused flags for client/server
    process. Before processing it is checked if PDU is an ATT one, and
    channel is disconnected if not. If after processing PDU next one can't
    be received link is discconnected.
    KKopyscinski committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    93aae47 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    1fb6ee0 View commit details
    Browse the repository at this point in the history