In the advertising report, instead of parsing EIR 0x21 like this: Unknown EIR field 0x21: 3a048f2ba97ea6ae1b49c619e973a4a701480d130d We can do bit better Service Data UUID 128: Vendor specific Data: 01480d130d --- monitor/packet.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/monitor/packet.c b/monitor/packet.c index 3031b028f..21e08ccef 100644 --- a/monitor/packet.c +++ b/monitor/packet.c @@ -3997,6 +3997,18 @@ static void print_eir(const uint8_t *eir, uint8_t eir_len, bool le) print_service_data(data, data_len); break; + case BT_EIR_SERVICE_DATA128: + if (data_len <= 16) + break; + + print_field("Service Data UUID 128: %s ", + bt_uuid128_to_str(&data[0])); + + if (data_len > 16) + print_hex_field(" Data", &data[16], + data_len - 16); + + break; case BT_EIR_RANDOM_ADDRESS: if (data_len < 6) break; -- 2.34.1