Re: [PATCH v2 11/16] Bluetooth: Add 'eir_len' param to mgmt_device_found()

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

 



Hi,

On Wed, Aug 10, 2011 at 3:51 PM, Andre Guedes
<andre.guedes@xxxxxxxxxxxxx> wrote:
> The advertising report event has the 'Length' field to inform the
> 'Data' field length, so I believe it has a variable length.
> According to its description, the 'Length' field may vary from 0x00
> to 0x1F (31) bytes.

You are right. Although the section 11 gives the impression the size
is always 31, this is not what happens on actual hardware, which
usually sends only the significant bytes (and the length is know from
the "Length" field.

> The only drawback I see so far is copying extra ~200 bytes each time
> we get a advertising report data.

I agree. If this event is being sent on each adv. data report event,
it will be more than 6 times the amount of data (with non-significant
bytes containing only zeroes) sent to userspace.

Now one idea: if we guarantee that the EIR/Adv. data field will always
be the last one, can we assume all remaining bytes on the event are
EIR/Adv info? I.e. the equivalent in C of:

struct device_found {
    bdaddr_t addr;
    uint8_t class_of_device[3];
    int8_t rssi;
    uint8_t eir[];
};

Regards,
--
Anderson Lizardo
Instituto Nokia de Tecnologia - INdT
Manaus - Brazil
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[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