mirror of
https://github.com/google/bumble.git
synced 2026-05-09 04:08:02 +00:00
apps: Add a controller loopback throughput test app
Add a command line utility to open a transport to a BT controller, put the controller into local loopback mode, and send and receive ACL data packets. Record the time it takes to send and receive all packets and calculate a throughput measurement in kB/s. This utility is usefull for characterizing the speed of a transport to a BT controller (such as a TCP socket or serial port) without having to deal with a connected peer or the variability of over the air transmissions. The transport CLI argument is required. The packet size and packet count arguments are optional. They default to the same values as the bumble-bench app.
This commit is contained in:
@@ -1987,6 +1987,17 @@ class OwnAddressType(enum.IntEnum):
|
||||
return {'size': 1, 'mapper': lambda x: OwnAddressType(x).name}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
class LoopbackMode(enum.IntEnum):
|
||||
DISABLED = 0
|
||||
LOCAL = 1
|
||||
REMOTE = 2
|
||||
|
||||
@classmethod
|
||||
def type_spec(cls):
|
||||
return {'size': 1, 'mapper': lambda x: LoopbackMode(x).name}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
class HCI_Packet:
|
||||
'''
|
||||
@@ -3313,6 +3324,27 @@ class HCI_Read_Encryption_Key_Size_Command(HCI_Command):
|
||||
'''
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
@HCI_Command.command(
|
||||
return_parameters_fields=[
|
||||
('status', STATUS_SPEC),
|
||||
('loopback_mode', LoopbackMode.type_spec()),
|
||||
],
|
||||
)
|
||||
class HCI_Read_Loopback_Mode_Command(HCI_Command):
|
||||
'''
|
||||
See Bluetooth spec @ 7.6.1 Read Loopback Mode Command
|
||||
'''
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
@HCI_Command.command([('loopback_mode', 1)])
|
||||
class HCI_Write_Loopback_Mode_Command(HCI_Command):
|
||||
'''
|
||||
See Bluetooth spec @ 7.6.2 Write Loopback Mode Command
|
||||
'''
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
@HCI_Command.command([('le_event_mask', 8)])
|
||||
class HCI_LE_Set_Event_Mask_Command(HCI_Command):
|
||||
|
||||
Reference in New Issue
Block a user