Re: [PATCH 2/8] monitor: Decode LE Periodic Advertising Sync Transfer Received Event

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Wednesday, 8 January 2020 00:43:44 CET Luiz Augusto von Dentz wrote:
> Hi Szymon,
> 
> On Tue, Jan 7, 2020 at 1:20 AM Szymon Czapracki
> 
> <szymon.czapracki@xxxxxxxxxxx> wrote:
> > Change-Id: I5a7c2d36ca5aee61441c2aab6adeb16058ab062f
> > ---
> > 
> >  monitor/bt.h     | 14 ++++++++++++++
> >  monitor/packet.c | 27 +++++++++++++++++++++++++++
> >  2 files changed, 41 insertions(+)
> > 
> > diff --git a/monitor/bt.h b/monitor/bt.h
> > index ecf3782c9..e14c1771f 100644
> > --- a/monitor/bt.h
> > +++ b/monitor/bt.h
> > @@ -3140,6 +3140,20 @@ struct bt_hci_evt_le_chan_select_alg {
> > 
> >         uint8_t  algorithm;
> >  
> >  } __attribute__ ((packed));
> > 
> > +#define BT_HCI_EVT_LE_PER_ADV_SYNC_TRANS_REC           0x18
> > +struct bt_hci_evt_le_per_adv_sync_trans_rec {
> > +       uint8_t  status;
> > +       uint16_t handle;
> > +       uint16_t service_data;
> > +       uint16_t sync_handle;
> > +       uint8_t  sid;
> > +       uint8_t  addr_type;
> > +       uint8_t  addr[6];
> > +       uint8_t  phy;
> > +       uint16_t interval;
> > +       uint8_t  clock_accuracy;
> > +} __attribute__ ((packed));
> > +
> > 
> >  #define BT_HCI_ERR_SUCCESS                     0x00
> >  #define BT_HCI_ERR_UNKNOWN_COMMAND             0x01
> >  #define BT_HCI_ERR_UNKNOWN_CONN_ID             0x02
> > 
> > diff --git a/monitor/packet.c b/monitor/packet.c
> > index 64f75cf8e..76bb9f239 100644
> > --- a/monitor/packet.c
> > +++ b/monitor/packet.c
> > @@ -600,6 +600,12 @@ static void print_addr_type(const char *label,
> > uint8_t addr_type)> 
> >         case 0x01:
> >                 str = "Random";
> >                 break;
> > 
> > +       case 0x02:
> > +               str = "Public Identity Address";
> > +               break;
> > +       case 0x03:
> > +               str = "Random Identity Address";
> > +               break;
> 
> Usually the term Address is already part of the label so we don't need
> to repeat here, Random Identity also doesn't sound right, it should
> probably be Static Random or perhaps have Resolved Public and Resolved
> Static Random to indicate they are actually resolved address from RPA.

Those names are from spec actually but I agree that those are somewhat odd.
How about just using print_peer_addr_type() to print this?
Then we have: public, random, resolved public and resolved Random. This is
short and also makes output consistent with other events.

> 
> >         default:
> >                 str = "Reserved";
> >                 break;
> > 
> > @@ -9788,6 +9794,24 @@ static void le_chan_select_alg_evt(const void
> > *data, uint8_t size)> 
> >         print_field("Algorithm: %s (0x%2.2x)", str, evt->algorithm);
> >  
> >  }
> > 
> > +static void le_per_adv_sync_trans_rec_evt(const void *data, uint8_t size)
> > +{
> > +       const struct bt_hci_evt_le_per_adv_sync_trans_rec *evt = data;
> > +
> > +       print_status(evt->status);
> > +       print_field("Handle: %d", evt->handle);
> > +       print_field("Connection handle: %d", evt->handle);
> > +       print_field("Service data: 0x%4.4x", evt->service_data);
> > +       print_field("Sync handle: %d", evt->sync_handle);
> > +       print_field("SID: 0x%2.2x", evt->sid);
> > +       print_addr_type("Address type:", evt->addr_type);
> > +       print_addr("Addres:", evt->addr, evt->addr_type);
> > +       print_le_phy("PHY:", evt->phy);
> > +       print_field("Periodic advertising Interval: %.3f",
> > +                                                       1.25 *
> > evt->interval); +       print_clock_accuracy(evt->clock_accuracy);
> > +}
> > +
> > 
> >  struct subevent_data {
> >  
> >         uint8_t subevent;
> >         const char *str;
> > 
> > @@ -9871,6 +9895,9 @@ static const struct subevent_data
> > le_meta_event_table[] = {> 
> >                                 le_scan_req_received_evt, 8, true},
> >         
> >         { 0x14, "LE Channel Selection Algorithm",
> >         
> >                                 le_chan_select_alg_evt, 3, true},
> > 
> > +       { 0x18, "LE Periodic Advertising Sync Transfer Received",
> > +                                       le_per_adv_sync_trans_rec_evt, 19,
> > +                                       true},
> > 
> >         { }
> >  
> >  };
> > 
> > --
> > 2.24.1


-- 
pozdrawiam
Szymon Janc





[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux