@@ -1219,6 +1219,30 @@ class EIR_Device_ID(EIR_Element):
12191219 ]
12201220
12211221
1222+ class EIR_ServiceSolicitation16BitUUID (EIR_Element ):
1223+ name = "EIR Service Solicitation - 16-bit UUID"
1224+ fields_desc = [
1225+ XLEShortField ("svc_uuid" , None )
1226+ ]
1227+
1228+ def extract_padding (self , s ):
1229+ # Needed to end each EIR_Element packet and make PacketListField work.
1230+ plen = EIR_Element .length_from (self ) - 2
1231+ return s [:plen ], s [plen :]
1232+
1233+
1234+ class EIR_ServiceSolicitation128BitUUID (EIR_Element ):
1235+ name = "EIR Service Solicitation - 128-bit UUID"
1236+ fields_desc = [
1237+ UUIDField ('svc_uuid' , None , uuid_fmt = UUIDField .FORMAT_REV )
1238+ ]
1239+
1240+ def extract_padding (self , s ):
1241+ # Needed to end each EIR_Element packet and make PacketListField work.
1242+ plen = EIR_Element .length_from (self ) - 2
1243+ return s [:plen ], s [plen :]
1244+
1245+
12221246class EIR_ServiceData16BitUUID (EIR_Element ):
12231247 name = "EIR Service Data - 16-bit UUID"
12241248 fields_desc = [
@@ -2348,6 +2372,8 @@ class HCI_LE_Meta_Long_Term_Key_Request(Packet):
23482372bind_layers (EIR_Hdr , EIR_SecureSimplePairingRandomizerR192 , type = 0x0f )
23492373bind_layers (EIR_Hdr , EIR_SecurityManagerOOBFlags , type = 0x11 )
23502374bind_layers (EIR_Hdr , EIR_PeripheralConnectionIntervalRange , type = 0x12 )
2375+ bind_layers (EIR_Hdr , EIR_ServiceSolicitation16BitUUID , type = 0x14 )
2376+ bind_layers (EIR_Hdr , EIR_ServiceSolicitation128BitUUID , type = 0x15 )
23512377bind_layers (EIR_Hdr , EIR_ServiceData16BitUUID , type = 0x16 )
23522378bind_layers (EIR_Hdr , EIR_PublicTargetAddress , type = 0x17 )
23532379bind_layers (EIR_Hdr , EIR_ServiceData32BitUUID , type = 0x20 )
0 commit comments