23 Dec, 2011

1 commit


19 Dec, 2011

8 commits


17 Dec, 2011

3 commits


03 Dec, 2011

1 commit


10 Nov, 2011

1 commit


08 Nov, 2011

4 commits

  • Use HCI error reasons instead of magic numbers.

    Signed-off-by: Andrei Emeltchenko
    Acked-by: Marcel Holtmann
    Signed-off-by: Gustavo F. Padovan

    Andrei Emeltchenko
     
  • This implement priority based scheduler using skbuffer priority set via
    SO_PRIORITY socket option.

    It introduces hci_chan_hash (list of HCI Channel/hci_chan) per connection,
    each item in this list refer to a L2CAP connection and it is used to
    queue the data for transmission.

    Signed-off-by: Luiz Augusto von Dentz
    Acked-by: Marcel Holtmann
    Signed-off-by: Gustavo F. Padovan

    Luiz Augusto von Dentz
     
  • When all items in the list have the same type there is no much of a point
    to use list_for_each except if you want to use the list pointer itself.

    Signed-off-by: Luiz Augusto von Dentz
    Signed-off-by: Gustavo F. Padovan

    Luiz Augusto von Dentz
     
  • This reverts commit 330605423ca6eafafb8dcc27502bce1c585d1b06.
    The commit introduces regression when two 2.1 devices attempt
    establish rfcomm channel. Such connection is refused since there's
    a security block issue on l2cap. It means the link is unencrypted.

    2011-09-16 18:08:46.567616 < ACL data: handle 1 flags 0x00 dlen 24
    0000: 14 00 40 00 06 00 02 00 0f 35 03 19 12 00 ff ff
    ..@......5....˙˙
    0010: 35 05 0a 00 00 ff ff 00 5....˙˙.
    2011-09-16 18:08:46.572377 > HCI Event: Number of Completed Packets
    (0x13) plen 5
    handle 1 packets 1
    2011-09-16 18:08:46.577931 > ACL data: handle 1 flags 0x02 dlen 88
    L2CAP(d): cid 0x0040 len 84 [psm 0]
    0000: 07 00 02 00 4f 00 4c 35 4a 35 48 09 00 00 0a 00
    ....O.L5J5H.....
    0010: 01 00 00 09 00 01 35 03 19 12 00 09 00 05 35 03
    ......5.......5.
    0020: 19 10 02 09 00 09 35 08 35 06 19 12 00 09 01 02
    ......5.5.......
    0030: 09 02 00 09 01 02 09 02 01 09 00 0a 09 02 02 09
    ................
    0040: 00 00 09 02 03 09 00 00 09 02 04 28 01 09 02 05
    ...........(....
    0050: 09 00 02 00 ....
    2011-09-16 18:08:46.626057 < HCI Command: Authentication Requested
    (0x01|0x0011) plen 2
    handle 1
    2011-09-16 18:08:46.627614 > HCI Event: Command Status (0x0f) plen 4
    Authentication Requested (0x01|0x0011) status 0x00 ncmd 1
    2011-09-16 18:08:46.627675 > HCI Event: Link Key Request (0x17) plen 6
    bdaddr 00:00:F2:6A:29:69
    2011-09-16 18:08:46.634999 < HCI Command: Link Key Request Reply
    (0x01|0x000b) plen 22
    bdaddr 00:00:F2:6A:29:69 key 58CD393179FC902E5E8F512A855EE532
    2011-09-16 18:08:46.683278 > HCI Event: Command Complete (0x0e) plen 10
    Link Key Request Reply (0x01|0x000b) ncmd 1
    status 0x00 bdaddr 00:00:F2:6A:29:69
    2011-09-16 18:08:46.764729 > HCI Event: Auth Complete (0x06) plen 3
    status 0x00 handle 1
    2011-09-16 18:08:46.764821 < ACL data: handle 1 flags 0x00 dlen 12
    0000: 08 00 01 00 02 05 04 00 03 00 41 00 ..........A.
    2011-09-16 18:08:46.764851 > HCI Event: Command Status (0x0f) plen 4
    Unknown (0x00|0x0000) status 0x00 ncmd 2
    2011-09-16 18:08:46.768117 > HCI Event: Number of Completed Packets
    (0x13) plen 5
    handle 1 packets 1
    2011-09-16 18:08:46.770894 > ACL data: handle 1 flags 0x02 dlen 16
    L2CAP(s): Connect rsp: dcid 0x0000 scid 0x0041 result 3 status 0
    Connection refused - security block
    2011-09-16 18:08:49.000691 < ACL data: handle 1 flags 0x00 dlen 12
    0000: 08 00 01 00 06 06 04 00 40 00 40 00 ........@.@.
    2011-09-16 18:08:49.015675 > HCI Event: Number of Completed Packets
    (0x13) plen 5
    handle 1 packets 1
    2011-09-16 18:08:49.016927 > ACL data: handle 1 flags 0x02 dlen 12
    L2CAP(s): Disconn rsp: dcid 0x0040 scid 0x0040
    2011-09-16 18:08:51.009480 < HCI Command: Disconnect (0x01|0x0006) plen
    3
    handle 1 reason 0x13
    Reason: Remote User Terminated Connection
    2011-09-16 18:08:51.011525 > HCI Event: Command Status (0x0f) plen 4
    Disconnect (0x01|0x0006) status 0x00 ncmd 1
    2011-09-16 18:08:51.123494 > HCI Event: Disconn Complete (0x05) plen 4
    status 0x00 handle 1 reason 0x16
    Reason: Connection Terminated by Local Host

    Signed-off-by: Arek Lichwa
    Signed-off-by: Gustavo F. Padovan

    Arek Lichwa
     

28 Sep, 2011

1 commit

  • The new connection parameters now match the recommended values for
    Proximity and Health Thermometer profiles. The previous values were
    ramdomly chosen, and are either too low or too high for most cases.

    New values:

    Scan Interval: 60 ms
    Scan Window: 30 ms
    Minimum Connection Interval: 50 ms
    Maximum Connection Interval: 70 ms
    Supervision Timeout: 420 ms

    See "Table 5.2: Recommended Scan Interval and Scan Window Values" and
    "Table 5.3: Recommended Connection Interval Values" for both profiles
    for details. Note that the "fast connection" parameters were chosen,
    because we do not support yet dynamically changing these parameters from
    initiator side.

    Additionally, the Proximity profile recommends (section "4.4 Alert on
    Link Loss"):

    "It is recommended that the Link Supervision Timeout (LSTO) is set to 6x
    the connection interval."

    Minimum_CE_Length and Maximum_CE_Length were also changed from 0x0001 to
    0x0000 because they are informational and optional, and old value was
    not reflecting reality.

    Signed-off-by: Anderson Lizardo
    Signed-off-by: Gustavo F. Padovan

    Anderson Lizardo
     

21 Sep, 2011

1 commit

  • This patch fixes wrong memcpy size when copying rand value to
    HCI_OP_LE_START_ENC command.
    The compiler pretends that the array parameter was declared as a pointer
    and sizeof reports the size of the pointer. [1]

    [1] http://www.c-faq.com/aryptr/aryparmsize.html

    Signed-off-by: Anderson Briglia
    Signed-off-by: Anderson Lizardo
    Signed-off-by: Gustavo F. Padovan

    Anderson Briglia
     

14 Jul, 2011

1 commit


01 Jul, 2011

1 commit


22 Jun, 2011

1 commit


16 Jun, 2011

1 commit

  • In hci_conn_security ( which is used during L2CAP connection
    establishment ) test for HCI_CONN_ENCRYPT_PEND state also
    sets this state, which is bogus and leads to connection time-out
    on L2CAP sockets in certain situations (especially when
    using non-ssp devices )

    Signed-off-by: Ilia Kolomisnky
    Signed-off-by: Gustavo F. Padovan

    Ilia Kolomisnky
     

14 Jun, 2011

3 commits


09 Jun, 2011

6 commits

  • If the link key is secure (authenticated or combination 16 digit)
    the sec_level will be always BT_SECURITY_HIGH. Therefore, instead
    of checking the link key type simply check the sec_level on the link.

    Signed-off-by: Waldemar Rymarkiewicz
    Signed-off-by: Gustavo F. Padovan

    Waldemar Rymarkiewicz
     
  • Add BT_POWER socket option used to control the power
    characteristics of the underlying ACL link. When the remote end
    has put the link in sniff mode and the host stack wants to send
    data we need need to explicitly exit sniff mode to work well with
    certain devices (For example, A2DP on Plantronics Voyager 855).
    However, this causes problems with HID devices.

    Hence, moving into active mode when sending data, irrespective
    of who set the sniff mode has been made as a socket option. By
    default, we will move into active mode. HID devices can set the
    L2CAP socket option to prevent this from happening.

    Currently, this has been implemented for L2CAP sockets. This has been
    tested with incoming and outgoing L2CAP sockets for HID and A2DP.

    Based on discussions on linux-bluetooth and patches submitted by
    Andrei Emeltchenko.

    Signed-off-by: Jaikumar Ganesh
    Signed-off-by: Gustavo F. Padovan

    Jaikumar Ganesh
     
  • Set the 'peer_addr_type' field of the LE Create Connection command
    sent in hci_le_connect().

    Signed-off-by: Andre Guedes
    Acked-by: Ville Tervo
    Signed-off-by: Gustavo F. Padovan

    Andre Guedes
     
  • When connecting to a LE device, we need to check the advertising
    cache in order to know the address type of that device.

    If its advertising entry is not found, the connection is not
    established and hci_connect() returns error.

    Signed-off-by: Andre Guedes
    Acked-by: Ville Tervo
    Signed-off-by: Gustavo F. Padovan

    Andre Guedes
     
  • There is no need to check the connection's state since hci_conn_add()
    has just created a new connection and its state has been set properly.

    Signed-off-by: Andre Guedes
    Acked-by: Ville Tervo
    Signed-off-by: Gustavo F. Padovan

    Andre Guedes
     
  • Legacy devices don't re-authenticate the link properly if a link key
    already exists. Thus, don't update sec_level for this case even if
    hci_auth_complete_evt indicates success. Otherwise the sec_level will
    not reflect a real security on the link.

    Signed-off-by: Waldemar Rymarkiewicz
    Signed-off-by: Gustavo F. Padovan

    Waldemar Rymarkiewicz
     

12 May, 2011

1 commit

  • In case of pre v2.1 devices authentication request will return
    success immediately if the link key already exists without any
    authentication process.

    That means, it's not possible to re-authenticate the link if you
    already have combination key and for instance want to re-authenticate
    to get the high security (use 16 digit pin).

    Therefore, it's necessary to check security requirements on auth
    complete event to prevent not enough secure connection.

    Signed-off-by: Waldemar Rymarkiewicz
    Signed-off-by: Gustavo F. Padovan

    Waldemar Rymarkiewicz
     

29 Apr, 2011

2 commits

  • Some test systems require an arbitrary delay to the auto-accept test
    cases for Secure Simple Pairing in order for the tests to pass.
    Previously when this was handled in user space it was worked around by
    code modifications and recompilation, but now that it's on the kernel
    side it's more convenient if there's a debugfs interface for it.

    Signed-off-by: Johan Hedberg
    Signed-off-by: Gustavo F. Padovan

    Johan Hedberg
     
  • Keep the link key type together with connection and use it to
    map security level to link key requirements. Authenticate and/or
    encrypt connection if the link is insufficiently secure.

    Signed-off-by: Waldemar Rymarkiewicz
    Signed-off-by: Gustavo F. Padovan

    Waldemar Rymarkiewicz
     

28 Feb, 2011

1 commit


22 Feb, 2011

2 commits


17 Feb, 2011

1 commit