Skip to content
Snippets Groups Projects
  1. Apr 07, 2023
  2. May 01, 2021
    • Myles Watson's avatar
      GD: Split tests into module vs unit tests · ebb9c823
      Myles Watson authored
      Move simpler, single-threaded tests into their own set of unit tests.
      
      Bug: 176832968
      Test: atest bluetooth_test_gd_unit
      Tag: #gd-refactor
      Change-Id: Ic3fa06454d119764aa547f975843583c00c32fc4
      ebb9c823
  3. Feb 14, 2021
    • Bob Badour's avatar
      [LSC] Add LOCAL_LICENSE_KINDS to system/bt · 92ecf7c4
      Bob Badour authored
      Added SPDX-license-identifier-Apache-2.0 to:
        apex/Android.bp
        audio_a2dp_hw/Android.bp
        audio_bluetooth_hw/Android.bp
        audio_hal_interface/Android.bp
        audio_hearing_aid_hw/Android.bp
        binder/Android.bp
        bta/Android.bp
        btcore/Android.bp
        btif/Android.bp
        build/Android.bp
        common/Android.bp
        conf/Android.bp
        device/Android.bp
        embdrv/g722/fuzzer/Android.bp
        embdrv/sbc/Android.bp
        embdrv/sbc/decoder/Android.bp
        embdrv/sbc/encoder/Android.bp
        gd/att/Android.bp
        gd/common/Android.bp
        gd/dumpsys/Android.bp
        gd/dumpsys/bundler/Android.bp
        gd/fuzz/Android.bp
        gd/hal/Android.bp
        gd/hci/Android.bp
        gd/iso/Android.bp
        gd/l2cap/Android.bp
        gd/l2cap/fuzz/Android.bp
        gd/neighbor/Android.bp
        gd/os/Android.bp
        gd/packet/Android.bp
        gd/packet/parser/Android.bp
        gd/packet/parser/test/Android.bp
        gd/proto/Android.bp
        gd/rust/common/Android.bp
        gd/rust/facade/Android.bp
        gd/rust/gddi/Android.bp
        gd/rust/hal/Android.bp
        gd/rust/hci/Android.bp
        gd/rust/link/Android.bp
        gd/rust/main/Android.bp
        gd/rust/shim/Android.bp
        gd/security/Android.bp
        gd/security/channel/Android.bp
        gd/security/pairing/Android.bp
        gd/security/record/Android.bp
        gd/shim/Android.bp
        gd/storage/Android.bp
        hci/Android.bp
        include/Android.bp
        internal_include/Android.bp
        main/Android.bp
        main/shim/Android.bp
        osi/test/fuzzers/Android.bp
        osi/test/fuzzers/alarm/Android.bp
        osi/test/fuzzers/allocation_tracker/Android.bp
        osi/test/fuzzers/allocator/Android.bp
        osi/test/fuzzers/array/Android.bp
        osi/test/fuzzers/buffer/Android.bp
        osi/test/fuzzers/compat/Android.bp
        osi/test/fuzzers/fixed_queue/Android.bp
        osi/test/fuzzers/future/Android.bp
        osi/test/fuzzers/list/Android.bp
        osi/test/fuzzers/ringbuffer/Android.bp
        packet/Android.bp
        packet/avrcp/Android.bp
        packet/base/Android.bp
        packet/tests/fuzzers/Android.bp
        profile/avrcp/Android.bp
        profile/sdp/Android.bp
        service/Android.bp
        service/common/Android.bp
        stack/test/fuzzers/Android.bp
        stack/test/fuzzers/a2dp/Android.bp
        stack/test/fuzzers/a2dp/codec/Android.bp
        stack/test/fuzzers/sdp/Android.bp
        test/Android.bp
        test/headless/Android.bp
        test/rootcanal/Android.bp
        test/suite/Android.bp
        types/Android.bp
        udrv/Android.bp
        utils/Android.bp
        vendor_libs/Android.bp
        vendor_libs/linux/Android.bp
        vendor_libs/linux/interface/Android.bp
        vendor_libs/test_vendor_lib/Android.bp
        vendor_libs/test_vendor_lib/types/Android.bp
      
      Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:
        gd/Android.bp
        gd/crypto_toolbox/Android.bp
        stack/Android.bp
      
      Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD
          SPDX-license-identifier-MIT legacy_unencumbered
      to:
        Android.bp
      
      Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD
          legacy_unencumbered
      to:
        embdrv/g722/Android.bp
      
      Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT
      to:
        osi/Android.bp
      
      Bug: 68860345
      Bug: 151177513
      Bug: 151953481
      
      Test: m all
      
      Exempt-From-Owner-Approval: janitorial work
      Change-Id: I883bd6b68223a5bc77fdac89e0280993f617d6d0
      92ecf7c4
  4. Aug 01, 2020
  5. May 09, 2020
  6. May 08, 2020
    • Hansong Zhang's avatar
      L2cap: Add SecurityModuleInterface · 5b55f72c
      Hansong Zhang authored
      Before we send or respond to a ConnectionRequest, we ask SecurityManager
      to enforce that we have sufficient link layer security.
      
      SecurityManager needs to implement SecurityModuleInterface, and inject
      the implementation to L2cap module. L2cap provides a default
      implementation which rejects all connection which requires link key.
      
      Test: cert/run --host
      Bug: 141555841
      Tag: #gd-refactor
      Change-Id: I2f6b841ddc34e4bd9611b6d0f06657cc342c6612
      5b55f72c
  7. Mar 26, 2020
    • Hansong Zhang's avatar
      L2CAP: LE Link Layer Options API · 51ee4ec2
      Hansong Zhang authored
      Add the API for L2CAP channel user to get/set link layer options, such
      as connection parameter update, and get role.
      
      Add the corresponding PTS test case for it. The next step is to
      determine the command from remote feature.
      
      Test: cert/run --host
      Change-Id: I7a4e046bc59619c43f975267fe806b88a96b289d
      51ee4ec2
  8. Mar 11, 2020
  9. Feb 21, 2020
  10. Feb 04, 2020
  11. Dec 04, 2019
  12. Nov 25, 2019
  13. Nov 22, 2019
    • Hansong Zhang's avatar
      L2CAP: LE Credit Based Channel Data Controller · 687b6e24
      Hansong Zhang authored
      Segment and reassemble LE information frame. Next step is to integrate
      command signals to handle credit, and update MTU and MPS.
      
      Test: bluetooth_test_gd
      Bug: 144954675
      Change-Id: I37defeedb5b7f73e77c61960d3b8e0d41722c9e9
      687b6e24
  14. Nov 21, 2019
  15. Nov 18, 2019
    • Hansong Zhang's avatar
      L2CAP Data pipeline rework · 935fbc39
      Hansong Zhang authored
      Currently Scheduler is the overall manager for data pipeline subsystem.
      Make a separate manager in the next step.
      
      Bug: 144097774
      Test: run_cert.sh
      Change-Id: Id331494a49435ca64ae253157e30e5e09c8ae500
      935fbc39
  16. Nov 14, 2019
    • Hansong Zhang's avatar
      L2CAP: Decouple scheduler and segmenter · 3a7def0c
      Hansong Zhang authored
      Scheduler is used for enqueuing PDUs from segmenters to link queue end.
      Segmenter is used for dequeuing SDUs from channels to scheduler.
      Segmenter needs to handle converting PDUs into SDUs.
      
      Bug: 144375926
      Test: run_cert.sh and bluetooth_test_gd
      Change-Id: Ia4a1707d7e0147f9f63c137e62d15ecdc877a813
      3a7def0c
  17. Nov 13, 2019
    • Hansong Zhang's avatar
      L2CAP: Add Reassembler to separate outgoing and incoming queue · 8e8badfb
      Hansong Zhang authored
      Previously Scheduler handles both outgoing and incoming packet path, but
      they are actually not related to each other. Separating them to
      decouple. Now Scheduler only serves outgoing packets, and the new
      Reassembler serves incoming packets.
      
      Currently only basic mode is supported. When we add enhanced retransmission
      mode, we add logic to it separately.
      
      Bug: 144375926
      Test: run_cert.sh and bluetooth_test_gd
      Change-Id: I411c0696fc2e6c834ab11e2485ee26d36104095d
      8e8badfb
  18. Oct 18, 2019
    • Jack He's avatar
      Add FUZZ test generator for packets and L2CAP fuzz tests · c0cffb79
      Jack He authored
      * Add fuzz test generator for packet generator to generate macros for
        fuzz tests
      * Add a few fuzz tests for L2CAP packets
      
      Bug: 142684649
      Test: bluetooth_gd_fuzz_test
      Change-Id: I75bf726b40caef3c7895596039d01c395d34506f
      c0cffb79
  19. Oct 17, 2019
    • Zongheng Wang's avatar
      Add a fuzzer in bluetooth gd for l2cap dynamic channel allocator · 3fd1373b
      Zongheng Wang authored
      Initialized fuzz test for Bluetooth GD library. There is one fuzz target
      gd/fuzz_test.cc and it will call all fuzz tests in gd.
      
      Created a fuzzer for l2cap classic internal dynamic channel allocator to
      test DynamicChannelAllocator::IsPsmUsed(Psm psm).
      
      Bug: 142684649
      Test: bluetooth_gd_fuzz_test
      Change-Id: If7c66d6aefc5d52448824f7f96f3118607a37215
      3fd1373b
  20. Oct 09, 2019
  21. Oct 04, 2019
    • Jack He's avatar
      Split L2CAP Classic and LE stacks into separate modules · 28ee68c0
      Jack He authored
      * Although L2CAP LE and Classic stacks look similar, they are actually very different when diving into details
      * Splitting them into two separate modules will benefit in the following ways:
       * One can start a LE only stack
       * One can turn off Classic stack entirely when not needed
       * Dependencies are more obvious, e.g. LE-CoC only depends on LE L2CAP and A2DP only depends on Classic L2CAP
      * Changed test names as GTEST does not allow test name collisions
      * New directory structure after the change:
        - l2cap: common headers that should be exposed to public
          - internal: common internal libraries shared between LE and classic
          - classic: classic headers that should be exposed to public
            - internal: internal libraries for classic
            - cert: certification stack for classic
         - le: LE headers that should be exposed to public
            - internal: internal libraries for LE
            - cert: certification stack for LE
      
      Using Bash
       for file in classic_*; do git mv "$file" "classic/${file/classic_/}"; done
       for file in le_*; do git mv "$file" "le/${file/le_/}"; done
       for file in internal/le_*; do git mv "$file" "le/${file/le_/}"; done
       for file in internal/classic_*; do git mv "$file" "classic/${file/classic_/}"; done
       for file in classic/*; do if [ -f "$file" ]; then sed -i -e 's/Classic//g' "$file"; fi; done
       for file in classic/internal/*; do if [ -f "$file" ]; then sed -i -e 's/Classic//g' "$file"; fi; done
       for file in le/*; do if [ -f "$file" ]; then sed -i -e 's/Le//g' "$file"; fi; done
       for file in le/internal/*; do if [ -f "$file" ]; then sed -i -e 's/Le//g' "$file"; fi; done
      
      Using IDE:
       replace "namespace l2cap {" with "namespace l2cap { namespace classic {" in classic/
       replace "}  // namespace l2cap" with "} }" in classic/
       replace "namespace l2cap {" with "namespace l2cap { namespace le {" in le/
       replace "}  // namespace l2cap" with "} }" in le/
       replace "l2cap/classic_" with "l2cap/classic/" in classic/
       replace "l2cap/internal/classic_" with "l2cap/classic/internal/" in classic/
       replace "l2cap/le_" with "l2cap/le/" in le/
       replace "l2cap/internal/le_" with "l2cap/le/internal/" in le/
      
      Bug: 140938432
      Test: bluetooth_test_gd
      Change-Id: I29eafefc5b6be4033e5db811776230d28ca312b2
      28ee68c0
  22. Oct 03, 2019
    • Hansong Zhang's avatar
      L2cap dynamic channel and service · c5f55c61
      Hansong Zhang authored
      Add internal implementation for ClassicDynamicChannel
      Signalling packets will be handled in next commit
      
      Test: cert/run_cert.sh and bluetooth_test_gd
      Bug: 138260719
      Change-Id: I3b0fee9837034988e6490372ffbfd5ece90250f7
      c5f55c61
  23. Oct 02, 2019
    • Jack He's avatar
      Use the same fixed channel allocator for both Classic and LE connections · 8c8edf61
      Jack He authored
      * Merge identical logic for fixed channel allocation among Classic and
        LE fixed channel connections
      * Use Classic mocks as a place holder to write tests for
        L2capFixedChannelAllocatorTest
      
      Test: bluetooth_test_gd
      Bug: 140938432
      Change-Id: Ibff6cb2c3120d967efe828e91cb8f9f2bdefc398
      8c8edf61
    • Jack He's avatar
      Implement LE L2CAP Fixed Channel · ad242dce
      Jack He authored
      * Implemented LE fixed channel implementation with reference from classic
        fixed channel implementation
      * Adjusted LE specific logic in link manager and other related
        components
      * Added address type across the LE fixed channel stack
      * Adjusted unit test for LE fixed channel cases
      
      Bug: 140938432
      Test: bluetooth_test_gd
      Change-Id: I7c5cd27e917efa1e72dce05828c26146c10797c2
      ad242dce
  24. Oct 01, 2019
    • Hansong Zhang's avatar
      L2CAP Classic dynamic channel and allocator impl · 49ba8dc8
      Hansong Zhang authored
      Reland I15f40c6b55d180003afaa14252c576b1b2a5e25e L2CAP Classic dynamic
      channel and allocator impl, with the fix of NPE
      
      Test: bluetooth_test_gd and cert/run_cert.sh
      Bug: 138260719
      Change-Id: I5c42dcb5871086903ac0f87441235ff75bfc8fdf
      49ba8dc8
  25. Sep 30, 2019
  26. Sep 27, 2019
  27. Sep 26, 2019
    • Hansong Zhang's avatar
      L2CAP dynamic channel API · 28d7978e
      Hansong Zhang authored
      Add API for Classic Dynamic Channel
      Test: cert/run_cert.sh and bluetooth_test_gd
      Bug: 138260719
      
      Change-Id: I7afb0d7e540ae1c133c967045163e400f86e312a
      28d7978e
  28. Sep 10, 2019
    • Jack He's avatar
      L2CAP: Classic fixed channel reference counting · f2452034
      Jack He authored
      * Add a mechanism to disconnect ACL after a link is idle for kClassicLinkIdleDisconnectTimeout
        seconds. The current setting is 20.
      * Add Acquire() and Release() method to ClassicFixedChannel for user to
        indicate if a fixed channel should hold the current ACL link or should
        it be oportunistic
      * Implemented methods to register for disconnection callbacks
      * Add tests to verify fixed channel acquire/release and register
        disconnction callback methods
      * Add tests to verify classic link idle timeout disconnect methods
      
      Bug: 138261142
      Test: bluetooth_test_gd
      Change-Id: I78129afb1b988311c56019f87cbb3f78e9a08cc5
      f2452034
  29. Aug 21, 2019
  30. Aug 20, 2019
    • Jack He's avatar
      L2CAP: Add Classic Link Manager Implementation · 9328951a
      Jack He authored
      * Implement ClassicLinkManager and APIs for classic fixed channel
      * Implement mechanism to create new ACL connections using ACL manager
      * Updated dependencies among internal L2CAP components
      * Remove SetOnChannelFail() and other unused methods from
        ClassicFixedChannelServiceImpl
      * Add mocks and unit tests to verify the functionality of
        ClassicLinkManager
      * Add common/testing/bind_test_util.h so that we can bind lambdas with
        capture in unit tests, although this is not allowed in production code
      * Add error and result code for classic fixed channel service
        registration failure and connection failures
      
      Bug: 138261142
      Test: bluetooth_test_gd, cert/run_cert.sh
      Change-Id: Ib2794a0073dbc73f46b8c6fd5f5cf0ae1c8c559a
      9328951a
  31. Aug 13, 2019
  32. Aug 09, 2019
    • Jack He's avatar
      L2CAP: Add Classic Fixed Channel APIs · d91c695b
      Jack He authored
      * Add ClassicFixedChannelManager
      * Add ClassicFixedChannelService
      * Add ClassicFixedChannel
      * Modify cid and constants definition
      
      Bug: 138261142
      Test: bluetooth_test_gd
      Change-Id: Iae4e398e938436c74d16b49834a4bd5146b03873
      d91c695b
  33. Aug 01, 2019
    • Jack He's avatar
      L2CAP: Add L2CAP Module · d6bd62e3
      Jack He authored
      * Add an empty L2CAP module
      * Add facades for L2CAP module
      * Add cert facades for L2CAP module
      * Add SimpleL2CapTest to run_cert.sh
      
      Test: cert/run_cert.h
      Change-Id: I00b3fe1bfb6e72dbbf1ca441ceed7dd4d62afb26
      d6bd62e3
  34. Jul 19, 2019
  35. Apr 18, 2019
    • Myles Watson's avatar
      l2cap: Add FCS support · e6f7c92a
      Myles Watson authored
      Test: bluetooth_gd_test --gtest_filter=*Fcs*
      Change-Id: I321e12bfb3ec8b5652d26d2b2e5066dc6a80895c
      e6f7c92a
Loading