• Hilda Wu's avatar
    Bluetooth: msft: Extended monitor tracking by address filter · 9e14606d
    Hilda Wu authored
    Since limited tracking device per condition, this feature is to support
    tracking multiple devices concurrently.
    When a pattern monitor detects the device, this feature issues an address
    monitor for tracking that device. Let pattern monitor can keep monitor
    new devices.
    This feature adds an address filter when receiving a LE monitor device
    event which monitor handle is for a pattern, and the controller started
    monitoring the device. And this feature also has cancelled the monitor
    advertisement from address filters when receiving a LE monitor device
    event when the controller stopped monitoring the device specified by an
    address and monitor handle.
    
    Below is an example to know the feature adds the address filter.
    
    //Add MSFT pattern monitor
    < HCI Command: Vendor (0x3f|0x00f0) plen 14          #142 [hci0] 55.552420
            03 b8 a4 03 ff 01 01 06 09 05 5f 52 45 46        .........._REF
    > HCI Event: Command Complete (0x0e) plen 6          #143 [hci0] 55.653960
          Vendor (0x3f|0x00f0) ncmd 2
            Status: Success (0x00)
            03 00
    
    //Got event from the pattern monitor
    > HCI Event: Vendor (0xff) plen 18                   #148 [hci0] 58.384953
            23 79 54 33 77 88 97 68 02 00 fb c1 29 eb 27 b8  #yT3w..h....).'.
            00 01                                            ..
    
    //Add MSFT address monitor (Sample address: B8:27:EB:29:C1:FB)
    < HCI Command: Vendor (0x3f|0x00f0) plen 13          #149 [hci0] 58.385067
            03 b8 a4 03 ff 04 00 fb c1 29 eb 27 b8           .........).'.
    
    //Report to userspace about found device (ADV Monitor Device Found)
    @ MGMT Event: Unknown (0x002f) plen 38           {0x0003} [hci0] 58.680042
            01 00 fb c1 29 eb 27 b8 01 ce 00 00 00 00 16 00  ....).'.........
            0a 09 4b 45 59 42 44 5f 52 45 46 02 01 06 03 19  ..KEYBD_REF.....
            c1 03 03 03 12 18                                ......
    
    //Got event from address monitor
    > HCI Event: Vendor (0xff) plen 18                   #152 [hci0] 58.672956
            23 79 54 33 77 88 97 68 02 00 fb c1 29 eb 27 b8  #yT3w..h....).'.
            01 01
    Signed-off-by: default avatarAlex Lu <alex_lu@realsil.com.cn>
    Signed-off-by: default avatarHilda Wu <hildawu@realtek.com>
    Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
    Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
    9e14606d
msft.c 30.1 KB