1. 19 9月, 2013 4 次提交
  2. 17 9月, 2013 2 次提交
    • M
      Bluetooth: Introduce new HCI socket channel for user operation · 23500189
      Marcel Holtmann 提交于
      This patch introcuces a new HCI socket channel that allows user
      applications to take control over a specific HCI device. The application
      gains exclusive access to this device and forces the kernel to stay away
      and not manage it. In case of the management interface it will actually
      hide the device.
      
      Such operation is useful for security testing tools that need to operate
      underneath the Bluetooth stack and need full control over a device. The
      advantage here is that the kernel still provides the service of hardware
      abstraction and HCI level access. The use of Bluetooth drivers for
      hardware access also means that sniffing tools like btmon or hcidump
      are still working and the whole set of transaction can be traced with
      existing tools.
      
      With the new channel it is possible to send HCI commands, ACL and SCO
      data packets and receive HCI events, ACL and SCO packets from the
      device. The format follows the well established H:4 protocol.
      
      The new HCI user channel can only be established when a device has been
      through its setup routine and is currently powered down. This is
      enforced to not cause any problems with current operations. In addition
      only one user channel per HCI device is allowed. It is exclusive access
      for one user application. Access to this channel is limited to process
      with CAP_NET_RAW capability.
      
      Using this new facility does not require any external library or special
      ioctl or socket filters. Just create the socket and bind it. After that
      the file descriptor is ready to speak H:4 protocol.
      
              struct sockaddr_hci addr;
              int fd;
      
              fd = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI);
      
              memset(&addr, 0, sizeof(addr));
              addr.hci_family = AF_BLUETOOTH;
              addr.hci_dev = 0;
              addr.hci_channel = HCI_CHANNEL_USER;
      
              bind(fd, (struct sockaddr *) &addr, sizeof(addr));
      
      The example shows on how to create a user channel for hci0 device. Error
      handling has been left out of the example. However with the limitations
      mentioned above it is advised to handle errors. Binding of the user
      cahnnel socket can fail for various reasons. Specifically if the device
      is currently activated by BlueZ or if the access permissions are not
      present.
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NGustavo Padovan <gustavo.padovan@collabora.co.uk>
      23500189
    • M
      Bluetooth: Introduce user channel flag for HCI devices · 0736cfa8
      Marcel Holtmann 提交于
      This patch introduces a new user channel flag that allows to give full
      control of a HCI device to a user application. The kernel will stay away
      from the device and does not allow any further modifications of the
      device states.
      
      The existing raw flag is not used since it has a bit of unclear meaning
      due to its legacy. Using a new flag makes the code clearer.
      
      A device with the user channel flag set can still be enumerate using the
      legacy API, but it does not longer enumerate using the new management
      interface used by BlueZ 5 and beyond. This is intentional to not confuse
      users of modern systems.
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NGustavo Padovan <gustavo.padovan@collabora.co.uk>
      0736cfa8
  3. 21 8月, 2013 1 次提交
  4. 25 7月, 2013 1 次提交
  5. 23 6月, 2013 1 次提交
  6. 18 4月, 2013 3 次提交
  7. 19 3月, 2013 4 次提交
  8. 23 1月, 2013 3 次提交
  9. 20 11月, 2012 1 次提交
    • S
      Bluetooth: Increase HCI command tx timeout · d1244adc
      Szymon Janc 提交于
      Read Local OOB Data command can take more than 1 second on some chips.
      e.g. on CSR 0a12:0001 first call to Read Local OOB Data after reset
      takes about 1300ms resulting in tx timeout error.
      
      [27698.368655] Bluetooth: hci0 command 0x0c57 tx timeout
      
      2012-10-31 15:53:36.178585 < HCI Command: Read Local OOB Data (0x03|0x0057) plen 0
      2012-10-31 15:53:37.496996 > HCI Event: Command Complete (0x0e) plen 36
          Read Local OOB Data (0x03|0x0057) ncmd 1
          status 0x00
          hash 0x92219d9b447f2aa9dc12dda2ae7bae6a
          randomizer 0xb1948d0febe4ea38ce85c4e66313beba
      Signed-off-by: NSzymon Janc <szymon.janc@tieto.com>
      Signed-off-by: NGustavo Padovan <gustavo.padovan@collabora.co.uk>
      d1244adc
  10. 19 11月, 2012 3 次提交
  11. 02 11月, 2012 1 次提交
  12. 24 10月, 2012 1 次提交
  13. 15 10月, 2012 1 次提交
  14. 28 9月, 2012 3 次提交
  15. 19 9月, 2012 1 次提交
  16. 22 8月, 2012 1 次提交
  17. 07 8月, 2012 2 次提交
  18. 19 6月, 2012 1 次提交
  19. 12 6月, 2012 1 次提交
  20. 09 6月, 2012 1 次提交
  21. 05 6月, 2012 4 次提交