scapy.contrib.automotive.bmw.definitions

class scapy.contrib.automotive.bmw.definitions.DEV_JOB(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           IDENTIFIER          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           Fig. DEV_JOB                           
DEV_JOB fields

identifier

ShortEnumField

'65535'

identifiers = {20977: 'ControlReciprocalMonitor', 51933: 'EnableDebugCan', 57005: 'LockJtag1', 57006: 'LockJtag2', 57007: 'UnlockJtag', 62736: 'ControlFuSiIO', 65280: 'ReadTransportMessageStatus', 65296: 'ControlEthernetActivation', 65361: 'ControlPwfMaster', 65382: 'ControlWebsite', 65399: 'ControlIdleMessage', 65456: 'ReadManufacturerData', 65457: 'ReadBuildNumber', 65488: 'ReadFzmSentryStates', 65489: 'ReadFzmSlaveStates', 65490: 'ReadFzmMasterState', 65491: 'ControlLifecycle', 65493: 'IsCertificateValid', 65530: 'SetDiagRouting', 65535: 'ReadMemory'}
payload_guess

Possible sublayers: READ_MEM, WEBSERVER

class scapy.contrib.automotive.bmw.definitions.DEV_JOB_PR(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
answers(other)
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           IDENTIFIER          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. DEV_JOB_PR                          
DEV_JOB_PR fields

identifier

ShortEnumField

'65535'

payload_guess

Possible sublayers: READ_MEM_PR, WEBSERVER

class scapy.contrib.automotive.bmw.definitions.DIAG_SESSION_RESP(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|DIAG SESSION VA|       DIAG SESSION TEXT       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. DIAG_SESSION_RESP                      
DIAG_SESSION_RESP fields

DIAG_SESSION_VALUE

ByteField

'0'

DIAG_SESSION_TEXT

StrField

"b''"

class scapy.contrib.automotive.bmw.definitions.ENMT_REQ(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|RESPONSEREQUIRE|
+-+-+-+-+-+-+-+-+

                          Fig. ENMT_REQ                           
ENMT_REQ fields

responseRequired

ByteEnumField

'0'

class scapy.contrib.automotive.bmw.definitions.IOCBLI_REQ(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|INPUTOUTPUTLOCA|INPUTOUTPUTCONT|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. IOCBLI_REQ                          
IOCBLI_REQ fields

inputOutputLocalIdentifier

ByteField

'1'

inputOutputControlParameter

ByteEnumField

'0'

class scapy.contrib.automotive.bmw.definitions.IP_CONFIG_RESP(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|ADDRESS FORMAT |                       IP                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |                   SUBNETMASK                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |                DEFAULT GATEWAY                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                       Fig. IP_CONFIG_RESP                        
IP_CONFIG_RESP fields

ADDRESS_FORMAT_ID

ByteField

'0'

IP

IPField

"Net('')"

SUBNETMASK

IPField

"Net('')"

DEFAULT_GATEWAY

IPField

"Net('')"

class scapy.contrib.automotive.bmw.definitions.RDBLI_REQ(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|RECORDLOCALIDEN|
+-+-+-+-+-+-+-+-+

                          Fig. RDBLI_REQ                          
RDBLI_REQ fields

recordLocalIdentifier

ByteField

'0'

class scapy.contrib.automotive.bmw.definitions.RDS2TCM_REQ(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DS2FAULTNUMBER|
+-+-+-+-+-+-+-+-+

                         Fig. RDS2TCM_REQ                         
RDS2TCM_REQ fields

DS2faultNumber

ByteField

'0'

class scapy.contrib.automotive.bmw.definitions.RDTCBS_REQ(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  STATUSOFDTC  |           GROUPOFDTC          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. RDTCBS_REQ                          
RDTCBS_REQ fields

statusOfDTC

ByteEnumField

'0'

groupOfDTC

ShortField

'0'

class scapy.contrib.automotive.bmw.definitions.READ_MEM(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           READ ADDR                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          READ LENGTH                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. READ_MEM                           
READ_MEM fields

read_addr

IntField

'0'

read_length

IntField

'0'

class scapy.contrib.automotive.bmw.definitions.READ_MEM_PR(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              DATA             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. READ_MEM_PR                         
READ_MEM_PR fields

data

StrField

"b''"

class scapy.contrib.automotive.bmw.definitions.REI_IDENT_REQ(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|IDENTIFICATIOND|
+-+-+-+-+-+-+-+-+

                        Fig. REI_IDENT_REQ                        
REI_IDENT_REQ fields

identificationDataTable

ByteEnumField

'0'

class scapy.contrib.automotive.bmw.definitions.RRRBA_REQ(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         ROUTINEADDRESS                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|MEMORYTYPEIDENT|
+-+-+-+-+-+-+-+-+

                          Fig. RRRBA_REQ                          
RRRBA_REQ fields

routineAddress

X3BytesField

'0'

memoryTypeIdentifier

ByteEnumField

'0'

class scapy.contrib.automotive.bmw.definitions.RRRBLI_REQ(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ROUTINELOCALID|
+-+-+-+-+-+-+-+-+

                         Fig. RRRBLI_REQ                          
RRRBLI_REQ fields

routineLocalID

ByteField

'0'

class scapy.contrib.automotive.bmw.definitions.RSODTC_REQ(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           GROUPOFDTC          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. RSODTC_REQ                          
RSODTC_REQ fields

groupOfDTC

ShortField

'0'

class scapy.contrib.automotive.bmw.definitions.SPRBA_REQ(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         ROUTINEADDRESS                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|MEMORYTYPEIDENT|       ROUTINEEXITOPTION       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. SPRBA_REQ                          
SPRBA_REQ fields

routineAddress

X3BytesField

'0'

memoryTypeIdentifier

ByteEnumField

'0'

routineExitOption

StrField

'0'

class scapy.contrib.automotive.bmw.definitions.SPRBLI_REQ(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|LOCALIDENTIFIER|       ROUTINEEXITOPTION       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. SPRBLI_REQ                          
SPRBLI_REQ fields

localIdentifier

ByteEnumField

'0'

routineExitOption

StrField

"b''"

class scapy.contrib.automotive.bmw.definitions.STRBA_REQ(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         ROUTINEADDRESS                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|MEMORYTYPEIDENT|       ROUTINEENTRYOPTION      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. STRBA_REQ                          
STRBA_REQ fields

routineAddress

X3BytesField

'0'

memoryTypeIdentifier

ByteEnumField

'0'

routineEntryOption

StrField

'0'

class scapy.contrib.automotive.bmw.definitions.SVK(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  PROG STATUS1 |  PROG STATUS2 |         ENTRIES COUNT         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           PROG DATE                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      PAD1     |                  PROG MILAGE                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |              PAD2             |    ENTRIES    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                             Fig. SVK                             
SVK fields

prog_status1

ByteEnumField

'0'

prog_status2

ByteEnumField

'0'

entries_count

ShortField

'0'

prog_date

SVK_DateField

"b'\\x00\\x00\\x00'"

pad1

ByteField

'0'

prog_milage

LEIntField

'0'

pad2

StrFixedLenField

'0'

entries

PacketListField

'[]'

prog_status_enum = {1: 'signature check and programming-dependencies check passed', 2: 'software entry invalid or programming-dependencies check failed', 3: 'software entry incompatible to hardware entry', 4: 'software entry incompatible with other software entry'}
class scapy.contrib.automotive.bmw.definitions.SVK_DateField(*args, **kwds)

Bases: scapy.fields.LEThreeBytesField

i2repr(pkt, x)
class scapy.contrib.automotive.bmw.definitions.SVK_Entry(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
extract_padding(p)
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  PROCESSCLASS |             SVK ID            |  MAINVERSION  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   SUBVERSION  |  PATCHVERSION |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. SVK_Entry                          
SVK_Entry fields

processClass

ByteEnumField

'0'

svk_id

StrFixedLenField

"b''"

mainVersion

ByteField

'0'

subVersion

ByteField

'0'

patchVersion

ByteField

'0'

class scapy.contrib.automotive.bmw.definitions.UDS2S_REQ(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DS2ECUADDRESS |DS2REQUESTLENGT| DS2CONTROLBYTE|DS2REQUESTPARAM|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                          Fig. UDS2S_REQ                          
UDS2S_REQ fields

DS2ECUAddress

ByteField

'0'

DS2requestLength

ByteField

'0'

DS2ControlByte

ByteField

'0'

DS2requestParameters

StrField

'0'

class scapy.contrib.automotive.bmw.definitions.WDBLI_REQ(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|RECORDLOCALIDEN|          RECORDVALUE          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. WDBLI_REQ                          
WDBLI_REQ fields

recordLocalIdentifier

ByteEnumField

'0'

recordValue

StrField

"b''"

class scapy.contrib.automotive.bmw.definitions.WEBSERVER(*args, **kargs)

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     ENABLE    |                    PASSWORD                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                          Fig. WEBSERVER                          
WEBSERVER fields

enable

ByteField

'1'

password

ThreeBytesField

"b'123'"