1. 23 Jul, 2022 4 commits
    • Luiz Augusto von Dentz's avatar
      Bluetooth: ISO: Add broadcast support · f764a6c2
      Luiz Augusto von Dentz authored
      This adds broadcast support for BTPROTO_ISO by extending the
      sockaddr_iso with a new struct sockaddr_iso_bc where the socket user
      can set the broadcast address when receiving, the SID and the BIS
      indexes it wants to synchronize.
      
      When using BTPROTO_ISO for broadcast the roles are:
      
      Broadcaster -> uses connect with address set to BDADDR_ANY:
      > tools/isotest -s 00:00:00:00:00:00
      
      Broadcast Receiver -> uses listen with address set to broadcaster:
      > tools/isotest -d 00:AA:01:00:00:00
      Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
      f764a6c2
    • Luiz Augusto von Dentz's avatar
      Bluetooth: Add initial implementation of BIS connections · eca0ae4a
      Luiz Augusto von Dentz authored
      This adds initial support for BIS/BIG which includes:
      
      == Broadcaster role: Setup a periodic advertising and create a BIG ==
      
      > tools/isotest -s 00:00:00:00:00:00
      isotest[63]: Connected [00:00:00:00:00:00]
      isotest[63]: QoS BIG 0x00 BIS 0x00 Packing 0x00 Framing 0x00]
      isotest[63]: Output QoS [Interval 10000 us Latency 10 ms SDU 40 PHY 0x02
      RTN 2]
      isotest[63]: Sending ...
      isotest[63]: Number of packets: 1
      isotest[63]: Socket jitter buffer: 80 buffer
      < HCI Command: LE Set Perio.. (0x08|0x003e) plen 7
      ...
      > HCI Event: Command Complete (0x0e) plen 4
            LE Set Periodic Advertising Parameters (0x08|0x003e) ncmd 1
              Status: Success (0x00)
      < HCI Command: LE Set Perio.. (0x08|0x003f) plen 7
      ...
      > HCI Event: Command Complete (0x0e) plen 4
            LE Set Periodic Advertising Data (0x08|0x003f) ncmd 1
              Status: Success (0x00)
      < HCI Command: LE Set Perio.. (0x08|0x0040) plen 2
      ...
      > HCI Event: Command Complete (0x0e) plen 4
            LE Set Periodic Advertising Enable (0x08|0x0040) ncmd 1
              Status: Success (0x00)
      < HCI Command: LE Create B.. (0x08|0x0068) plen 31
      ...
      > HCI Event: Command Status (0x0f) plen 4
            LE Create Broadcast Isochronous Group (0x08|0x0068) ncmd 1
              Status: Success (0x00)
      > HCI Event: LE Meta Event (0x3e) plen 21
            LE Broadcast Isochronous Group Complete (0x1b)
            ...
      
      == Broadcast Receiver role: Create a PA Sync and BIG Sync ==
      
      > tools/isotest -i hci1 -d 00:AA:01:00:00:00
      isotest[66]: Waiting for connection 00:AA:01:00:00:00...
      < HCI Command: LE Periodic Advert.. (0x08|0x0044) plen 14
      ...
      > HCI Event: Command Status (0x0f) plen 4
            LE Periodic Advertising Create Sync (0x08|0x0044) ncmd 1
              Status: Success (0x00)
      < HCI Command: LE Set Extended Sca.. (0x08|0x0041) plen 8
      ...
      > HCI Event: Command Complete (0x0e) plen 4
            LE Set Extended Scan Parameters (0x08|0x0041) ncmd 1
              Status: Success (0x00)
      < HCI Command: LE Set Extended Sca.. (0x08|0x0042) plen 6
      ...
      > HCI Event: Command Complete (0x0e) plen 4
            LE Set Extended Scan Enable (0x08|0x0042) ncmd 1
              Status: Success (0x00)
      > HCI Event: LE Meta Event (0x3e) plen 29
            LE Extended Advertising Report (0x0d)
            ...
      > HCI Event: LE Meta Event (0x3e) plen 16
            LE Periodic Advertising Sync Established (0x0e)
            ...
      < HCI Command: LE Broadcast Isoch.. (0x08|0x006b) plen 25
      ...
      > HCI Event: Command Status (0x0f) plen 4
            LE Broadcast Isochronous Group Create Sync (0x08|0x006b) ncmd 1
              Status: Success (0x00)
      > HCI Event: LE Meta Event (0x3e) plen 17
            LE Broadcast Isochronous Group Sync Estabilished (0x1d)
            ...
      Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
      eca0ae4a
    • Luiz Augusto von Dentz's avatar
      Bluetooth: Add BTPROTO_ISO socket type · ccf74f23
      Luiz Augusto von Dentz authored
      This introduces a new socket type BTPROTO_ISO which can be enabled with
      use of ISO Socket experiemental UUID, it can used to initiate/accept
      connections and transfer packets between userspace and kernel similarly
      to how BTPROTO_SCO works:
      
      Central -> uses connect with address set to destination bdaddr:
      > tools/isotest -s 00:AA:01:00:00:00
      
      Peripheral -> uses listen:
      > tools/isotest -d
      Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
      ccf74f23
    • Luiz Augusto von Dentz's avatar
      Bluetooth: Add initial implementation of CIS connections · 26afbd82
      Luiz Augusto von Dentz authored
      This adds the initial implementation of CIS connections and introduces
      the ISO packets/links.
      
      == Central: Set CIG Parameters, create a CIS and Setup Data Path ==
      
      > tools/isotest -s <address>
      
      < HCI Command: LE Extended Create... (0x08|0x0043) plen 26
      ...
      > HCI Event: Command Status (0x0f) plen 4
            LE Extended Create Connection (0x08|0x0043) ncmd 1
              Status: Success (0x00)
      > HCI Event: LE Meta Event (0x3e) plen 31
            LE Enhanced Connection Complete (0x0a)
            ...
      < HCI Command: LE Create Connected... (0x08|0x0064) plen 5
      ...
      > HCI Event: Command Status (0x0f) plen 4
            LE Create Connected Isochronous Stream (0x08|0x0064) ncmd 1
              Status: Success (0x00)
      > HCI Event: LE Meta Event (0x3e) plen 29
            LE Connected Isochronous Stream Established (0x19)
            ...
      < HCI Command: LE Setup Isochronou.. (0x08|0x006e) plen 13
      ...
      > HCI Event: Command Complete (0x0e) plen 6
            LE Setup Isochronous Data Path (0x08|0x006e) ncmd 1
              Status: Success (0x00)
              Handle: 257
      < HCI Command: LE Setup Isochronou.. (0x08|0x006e) plen 13
      ...
      > HCI Event: Command Complete (0x0e) plen 6
            LE Setup Isochronous Data Path (0x08|0x006e) ncmd 1
              Status: Success (0x00)
              Handle: 257
      
      == Peripheral: Accept CIS and Setup Data Path ==
      
      > tools/isotest -d
      
       HCI Event: LE Meta Event (0x3e) plen 7
            LE Connected Isochronous Stream Request (0x1a)
      ...
      < HCI Command: LE Accept Co.. (0x08|0x0066) plen 2
      ...
      > HCI Event: LE Meta Event (0x3e) plen 29
            LE Connected Isochronous Stream Established (0x19)
      ...
      < HCI Command: LE Setup Is.. (0x08|0x006e) plen 13
      ...
      > HCI Event: Command Complete (0x0e) plen 6
            LE Setup Isochronous Data Path (0x08|0x006e) ncmd 1
              Status: Success (0x00)
              Handle: 257
      < HCI Command: LE Setup Is.. (0x08|0x006e) plen 13
      ...
      > HCI Event: Command Complete (0x0e) plen 6
            LE Setup Isochronous Data Path (0x08|0x006e) ncmd 1
              Status: Success (0x00)
              Handle: 257
      Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
      26afbd82
  2. 22 Jul, 2022 36 commits