scapy.layers.bluetooth4LE

Bluetooth 4LE layer

class scapy.layers.bluetooth4LE.BDAddrField(name, default, resolve=False)[source]

Bases: scapy.fields.Field[Optional[str], bytes]

i2m(pkt, x)[source]
m2i(pkt, x)[source]
class scapy.layers.bluetooth4LE.BTLE(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
static compute_crc(pdu, init=5592405)[source]
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          ACCESS ADDR                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              CRC                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            Fig. BTLE                             
BTLE fields

access_addr

XLEIntField

2391391958

crc

X3BytesField

None

hashret()[source]
payload_guess

Possible sublayers: BTLE_ADV, BTLE_DATA

post_build(p, pay)[source]
post_dissect(s)[source]
pre_dissect(s)[source]
class scapy.layers.bluetooth4LE.BTLEChanMapField(name, default)[source]

Bases: scapy.fields.Field[int, int]

addfield(pkt, s, val)[source]
getfield(pkt, s)[source]
class scapy.layers.bluetooth4LE.BTLEFeatureField(name, default)[source]

Bases: scapy.fields._BitField[Optional[Union[int, scapy.fields.FlagValue]]]

class scapy.layers.bluetooth4LE.BTLEPhysField(name, default)[source]

Bases: scapy.fields._BitField[Optional[Union[int, scapy.fields.FlagValue]]]

class scapy.layers.bluetooth4LE.BTLE_ADV(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R|T|RFU|PDU TYP|UNU|   LENGTH  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. BTLE_ADV                           
BTLE_ADV fields

RxAdd

BitEnumField

0

TxAdd

BitEnumField

0

RFU

BitField (2 bits)

0

PDU_type

BitEnumField

0

unused

BitField (2 bits)

0

Length

XBitField (6 bits)

None

payload_guess

Possible sublayers: BTLE_ADV_DIRECT_IND, BTLE_ADV_IND, BTLE_ADV_NONCONN_IND, BTLE_ADV_SCAN_IND, BTLE_CONNECT_REQ, BTLE_SCAN_REQ, BTLE_SCAN_RSP

post_build(p, pay)[source]
class scapy.layers.bluetooth4LE.BTLE_ADV_DIRECT_IND(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ADVA                             |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |             INITA             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. BTLE_ADV_DIRECT_IND                     
BTLE_ADV_DIRECT_IND fields

AdvA

BDAddrField

None

InitA

BDAddrField

None

class scapy.layers.bluetooth4LE.BTLE_ADV_IND(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ADVA                             |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |              DATA             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. BTLE_ADV_IND                         
BTLE_ADV_IND fields

AdvA

BDAddrField

None

data

PacketListField

[]

class scapy.layers.bluetooth4LE.BTLE_ADV_NONCONN_IND(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ADVA                             |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |              DATA             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. BTLE_ADV_NONCONN_IND                     
BTLE_ADV_NONCONN_IND fields

AdvA

BDAddrField

None

data

PacketListField

[]

class scapy.layers.bluetooth4LE.BTLE_ADV_SCAN_IND(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ADVA                             |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |              DATA             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. BTLE_ADV_SCAN_IND                      
BTLE_ADV_SCAN_IND fields

AdvA

BDAddrField

None

data

PacketListField

[]

class scapy.layers.bluetooth4LE.BTLE_CONNECT_REQ(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             INITA                             |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |              ADVA             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               AA                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            CRC INIT                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    WIN SIZE   |           WIN OFFSET          |    INTERVAL   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            LATENCY            |    TIMEOUT    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |                      CHM                      |
+-+-+-+-+-+-+-+-+                                               +
|                                                               |
+               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               | SCA |   HOP   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. BTLE_CONNECT_REQ                       
BTLE_CONNECT_REQ fields

InitA

BDAddrField

None

AdvA

BDAddrField

None

AA

XIntField

0

crc_init

X3BytesField

0

win_size

XByteField

0

win_offset

XLEShortField

0

interval

XLEShortField

0

latency

XLEShortField

0

timeout

XLEShortField

0

chM

BTLEChanMapField

0

SCA

BitField (3 bits)

0

hop

BitField (5 bits)

0

class scapy.layers.bluetooth4LE.BTLE_CTRL(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     OPCODE    |
+-+-+-+-+-+-+-+-+

                          Fig. BTLE_CTRL                          
BTLE_CTRL fields

opcode

ByteEnumField

0

payload_guess

Possible sublayers: LL_CHANNEL_MAP_IND, LL_CONNECTION_PARAM_REQ, LL_CONNECTION_PARAM_RSP, LL_CONNECTION_UPDATE_IND, LL_ENC_REQ, LL_ENC_RSP, LL_FEATURE_REQ, LL_FEATURE_RSP, LL_LENGTH_REQ, LL_LENGTH_RSP, LL_MIN_USED_CHANNELS_IND, LL_PAUSE_ENC_REQ, LL_PAUSE_ENC_RSP, LL_PHY_REQ, LL_PHY_RSP, LL_PHY_UPDATE_IND, LL_PING_REQ, LL_PING_RSP, LL_REJECT_EXT_IND, LL_REJECT_IND, LL_SLAVE_FEATURE_REQ, LL_START_ENC_REQ, LL_START_ENC_RSP, LL_TERMINATE_IND, LL_UNKNOWN_RSP, LL_VERSION_IND

class scapy.layers.bluetooth4LE.BTLE_DATA(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RFU |M|S|N|LLI|      LEN      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. BTLE_DATA                          
BTLE_DATA fields

RFU

BitField (3 bits)

0

MD

BitField (1 bit)

0

SN

BitField (1 bit)

0

NESN

BitField (1 bit)

0

LLID

BitEnumField

0

len

ByteField

None

payload_guess

Possible sublayers: L2CAP_Hdr, BTLE_CTRL, BTLE_EMPTY_PDU

post_build(p, pay)[source]
class scapy.layers.bluetooth4LE.BTLE_EMPTY_PDU(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
class scapy.layers.bluetooth4LE.BTLE_PPI(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

Cooked BTLE PPI header

See ppi_btle_t in https://github.com/greatscottgadgets/libbtbb/blob/master/lib/src/pcap.c

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  BTLE VERSION |          BTLE CHANNEL         | BTLE CLKN HIGH|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         BTLE CLK 100NS                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    RSSI MAX   |    RSSI MIN   |    RSSI AVG   |   RSSI COUNT  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. BTLE_PPI                           
BTLE_PPI fields

btle_version

ByteField

0

btle_channel

LEShortField

None

btle_clkn_high

ByteField

None

btle_clk_100ns

LEIntField

None

rssi_max

SignedByteField

None

rssi_min

SignedByteField

None

rssi_avg

SignedByteField

None

rssi_count

ByteField

None

class scapy.layers.bluetooth4LE.BTLE_RF(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

Cooked BTLE link-layer pseudoheader.

https://www.tcpdump.org/linktypes/LINKTYPE_BLUETOOTH_LE_LL_WITH_PHDR.html

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   RF CHANNEL  |     SIGNAL    |     NOISE     |ACCESS ADDRESS |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    REFERENCE ACCESS ADDRESS                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|D|S|N|D|R|A|C|              TYPE             |C|C|M|M|   PHY   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     |
+-+-+-+-+-+-+-+-+-+-+-+

                           Fig. BTLE_RF                           
BTLE_RF fields

rf_channel

ByteField

0

signal

SignedByteField

-128

noise

SignedByteField

-128

access_address_offenses

ByteField

0

reference_access_address

XLEIntField

0

dewhitened

LEBitField (1 bit)

0

sig_power_valid

LEBitField (1 bit)

0

noise_power_valid

LEBitField (1 bit)

0

decrypted

LEBitField (1 bit)

0

reference_access_address_valid

LEBitField (1 bit)

0

access_address_offenses_valid

LEBitField (1 bit)

0

channel_aliased

LEBitField (1 bit)

0

type

LEBitEnumField (3 bits)

0

crc_checked

LEBitField (1 bit)

0

crc_valid

LEBitField (1 bit)

0

mic_checked

LEBitField (1 bit)

0

mic_valid

LEBitField (1 bit)

0

phy

LEBitEnumField (2 bits)

0

payload_guess

Possible sublayers: BTLE

class scapy.layers.bluetooth4LE.BTLE_SCAN_REQ(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
answers(other)[source]
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             SCANA                             |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |              ADVA             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. BTLE_SCAN_REQ                        
BTLE_SCAN_REQ fields

ScanA

BDAddrField

None

AdvA

BDAddrField

None

class scapy.layers.bluetooth4LE.BTLE_SCAN_RSP(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
answers(other)[source]
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ADVA                             |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |              DATA             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. BTLE_SCAN_RSP                        
BTLE_SCAN_RSP fields

AdvA

BDAddrField

None

data

PacketListField

[]

class scapy.layers.bluetooth4LE.LL_CHANNEL_MAP_IND(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              CHM                              |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            INSTANT            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. LL_CHANNEL_MAP_IND                      
LL_CHANNEL_MAP_IND fields

chM

BTLEChanMapField

1099511627774

instant

XLEShortField

0

class scapy.layers.bluetooth4LE.LL_CONNECTION_PARAM_REQ(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          INTERVAL MIN         |          INTERVAL MAX         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            LATENCY            |            TIMEOUT            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|PREFERRED PERIO|    REFERENCE CONN EVT COUNT   |    OFFSET0    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            OFFSET1            |    OFFSET2    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            OFFSET3            |    OFFSET4    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            OFFSET5            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. LL_CONNECTION_PARAM_REQ                   
LL_CONNECTION_PARAM_REQ fields

interval_min

XShortField

6

interval_max

XShortField

6

latency

XShortField

0

timeout

XShortField

0

preferred_periodicity

XByteField

0

reference_conn_evt_count

XShortField

0

offset0

XShortField

0

offset1

XShortField

0

offset2

XShortField

0

offset3

XShortField

0

offset4

XShortField

0

offset5

XShortField

0

class scapy.layers.bluetooth4LE.LL_CONNECTION_PARAM_RSP(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          INTERVAL MIN         |          INTERVAL MAX         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            LATENCY            |            TIMEOUT            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|PREFERRED PERIO|    REFERENCE CONN EVT COUNT   |    OFFSET0    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            OFFSET1            |    OFFSET2    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            OFFSET3            |    OFFSET4    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            OFFSET5            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. LL_CONNECTION_PARAM_RSP                   
LL_CONNECTION_PARAM_RSP fields

interval_min

XShortField

6

interval_max

XShortField

6

latency

XShortField

0

timeout

XShortField

0

preferred_periodicity

XByteField

0

reference_conn_evt_count

XShortField

0

offset0

XShortField

0

offset1

XShortField

0

offset2

XShortField

0

offset3

XShortField

0

offset4

XShortField

0

offset5

XShortField

0

class scapy.layers.bluetooth4LE.LL_CONNECTION_UPDATE_IND(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    WIN SIZE   |           WIN OFFSET          |    INTERVAL   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            LATENCY            |    TIMEOUT    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            INSTANT            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Fig. LL_CONNECTION_UPDATE_IND                   
LL_CONNECTION_UPDATE_IND fields

win_size

XByteField

0

win_offset

XLEShortField

0

interval

XLEShortField

6

latency

XLEShortField

0

timeout

XLEShortField

50

instant

XLEShortField

6

class scapy.layers.bluetooth4LE.LL_ENC_REQ(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              RAND                             |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              EDIV             |              SKDM             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                                                               |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |              IVM              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. LL_ENC_REQ                          
LL_ENC_REQ fields

rand

XLELongField

0

ediv

XLEShortField

0

skdm

XLELongField

0

ivm

XLEIntField

0

class scapy.layers.bluetooth4LE.LL_ENC_RSP(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              SKDS                             |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              IVS                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. LL_ENC_RSP                          
LL_ENC_RSP fields

skds

XLELongField

0

ivs

XLEIntField

0

class scapy.layers.bluetooth4LE.LL_FEATURE_REQ(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          FEATURE SET                          |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. LL_FEATURE_REQ                        
LL_FEATURE_REQ fields

feature_set

BTLEFeatureField

<Flag 0 ()>

class scapy.layers.bluetooth4LE.LL_FEATURE_RSP(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          FEATURE SET                          |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. LL_FEATURE_RSP                        
LL_FEATURE_RSP fields

feature_set

BTLEFeatureField

<Flag 0 ()>

class scapy.layers.bluetooth4LE.LL_LENGTH_REQ(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          MAX RX BYTES         |          MAX RX TIME          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          MAX TX BYTES         |          MAX TX TIME          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. LL_LENGTH_REQ                        
LL_LENGTH_REQ fields

max_rx_bytes

XLEShortField

251

max_rx_time

XLEShortField

2120

max_tx_bytes

XLEShortField

251

max_tx_time

XLEShortField

2120

class scapy.layers.bluetooth4LE.LL_LENGTH_RSP(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          MAX RX BYTES         |          MAX RX TIME          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          MAX TX BYTES         |          MAX TX TIME          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. LL_LENGTH_RSP                        
LL_LENGTH_RSP fields

max_rx_bytes

XLEShortField

251

max_rx_time

XLEShortField

2120

max_tx_bytes

XLEShortField

251

max_tx_time

XLEShortField

2120

class scapy.layers.bluetooth4LE.LL_MIN_USED_CHANNELS_IND(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      PHYS     |MIN USED CHANNE|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Fig. LL_MIN_USED_CHANNELS_IND                   
LL_MIN_USED_CHANNELS_IND fields

phys

BTLEPhysField

<Flag 0 ()>

min_used_channels

ByteField

2

class scapy.layers.bluetooth4LE.LL_PAUSE_ENC_REQ(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
class scapy.layers.bluetooth4LE.LL_PAUSE_ENC_RSP(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
class scapy.layers.bluetooth4LE.LL_PHY_REQ(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    TX PHYS    |    RX PHYS    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. LL_PHY_REQ                          
LL_PHY_REQ fields

tx_phys

BTLEPhysField

<Flag 0 ()>

rx_phys

BTLEPhysField

<Flag 0 ()>

class scapy.layers.bluetooth4LE.LL_PHY_RSP(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    TX PHYS    |    RX PHYS    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. LL_PHY_RSP                          
LL_PHY_RSP fields

tx_phys

BTLEPhysField

<Flag 0 ()>

rx_phys

BTLEPhysField

<Flag 0 ()>

class scapy.layers.bluetooth4LE.LL_PHY_UPDATE_IND(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     TX PHY    |     RX PHY    |            INSTANT            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. LL_PHY_UPDATE_IND                      
LL_PHY_UPDATE_IND fields

tx_phy

BTLEPhysField

<Flag 0 ()>

rx_phy

BTLEPhysField

<Flag 0 ()>

instant

XShortField

0

class scapy.layers.bluetooth4LE.LL_PING_REQ(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
class scapy.layers.bluetooth4LE.LL_PING_RSP(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
class scapy.layers.bluetooth4LE.LL_REJECT_EXT_IND(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| REJECT OPCODE |   ERROR CODE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. LL_REJECT_EXT_IND                      
LL_REJECT_EXT_IND fields

reject_opcode

XByteField

0

error_code

XByteField

0

class scapy.layers.bluetooth4LE.LL_REJECT_IND(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      CODE     |
+-+-+-+-+-+-+-+-+

                        Fig. LL_REJECT_IND                        
LL_REJECT_IND fields

code

XByteField

0

class scapy.layers.bluetooth4LE.LL_SLAVE_FEATURE_REQ(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          FEATURE SET                          |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. LL_SLAVE_FEATURE_REQ                     
LL_SLAVE_FEATURE_REQ fields

feature_set

BTLEFeatureField

<Flag 0 ()>

class scapy.layers.bluetooth4LE.LL_START_ENC_REQ(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
class scapy.layers.bluetooth4LE.LL_START_ENC_RSP(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
class scapy.layers.bluetooth4LE.LL_TERMINATE_IND(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      CODE     |
+-+-+-+-+-+-+-+-+

                      Fig. LL_TERMINATE_IND                       
LL_TERMINATE_IND fields

code

XByteField

0

class scapy.layers.bluetooth4LE.LL_UNKNOWN_RSP(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      CODE     |
+-+-+-+-+-+-+-+-+

                       Fig. LL_UNKNOWN_RSP                        
LL_UNKNOWN_RSP fields

code

XByteField

0

class scapy.layers.bluetooth4LE.LL_VERSION_IND(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    VERSION    |            COMPANY            |   SUBVERSION  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                       Fig. LL_VERSION_IND                        
LL_VERSION_IND fields

version

ByteEnumField

8

company

LEShortEnumField

0

subversion

XShortField

0