scapy.contrib.automotive.bmw.definitions

class scapy.contrib.automotive.bmw.definitions.DEV_JOB(_pkt, /, *, identifier=65535)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.DEV_JOB'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ShortEnumField (DEV_JOB).identifier>]
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: List[Tuple[Dict[str, Any], Type[Packet]]] = [({'identifier': 65382}, <class 'scapy.contrib.automotive.bmw.definitions.WEBSERVER'>), ({'identifier': 65535}, <class 'scapy.contrib.automotive.bmw.definitions.READ_MEM'>)]
class scapy.contrib.automotive.bmw.definitions.DEV_JOB_PR(_pkt, /, *, identifier=65535)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.DEV_JOB_PR'>, <class 'scapy.packet.Packet'>]
answers(other)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ShortEnumField (DEV_JOB_PR).identifier>]
payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({'identifier': 65382}, <class 'scapy.contrib.automotive.bmw.definitions.WEBSERVER'>), ({'identifier': 65535}, <class 'scapy.contrib.automotive.bmw.definitions.READ_MEM_PR'>)]
class scapy.contrib.automotive.bmw.definitions.DIAG_SESSION_RESP(_pkt, /, *, DIAG_SESSION_VALUE=0, DIAG_SESSION_TEXT=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.DIAG_SESSION_RESP'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (DIAG_SESSION_RESP).DIAG_SESSION_VALUE>, <StrField (DIAG_SESSION_RESP).DIAG_SESSION_TEXT>]
class scapy.contrib.automotive.bmw.definitions.ENMT_REQ(_pkt, /, *, responseRequired=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.ENMT_REQ'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (ENMT_REQ).responseRequired>]
class scapy.contrib.automotive.bmw.definitions.IOCBLI_REQ(_pkt, /, *, inputOutputLocalIdentifier=1, inputOutputControlParameter=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.IOCBLI_REQ'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (IOCBLI_REQ).inputOutputLocalIdentifier>, <ByteEnumField (IOCBLI_REQ).inputOutputControlParameter>]
class scapy.contrib.automotive.bmw.definitions.IP_CONFIG_RESP(_pkt, /, *, ADDRESS_FORMAT_ID=0, IP='192.168.0.10', SUBNETMASK='255.255.255.0', DEFAULT_GATEWAY='192.168.0.1')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.IP_CONFIG_RESP'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (IP_CONFIG_RESP).ADDRESS_FORMAT_ID>, <IPField (IP_CONFIG_RESP).IP>, <IPField (IP_CONFIG_RESP).SUBNETMASK>, <IPField (IP_CONFIG_RESP).DEFAULT_GATEWAY>]
class scapy.contrib.automotive.bmw.definitions.RDBLI_REQ(_pkt, /, *, recordLocalIdentifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.RDBLI_REQ'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (RDBLI_REQ).recordLocalIdentifier>]
class scapy.contrib.automotive.bmw.definitions.RDS2TCM_REQ(_pkt, /, *, DS2faultNumber=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.RDS2TCM_REQ'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (RDS2TCM_REQ).DS2faultNumber>]
class scapy.contrib.automotive.bmw.definitions.RDTCBS_REQ(_pkt, /, *, statusOfDTC=0, groupOfDTC=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.RDTCBS_REQ'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RDTCBS_REQ).statusOfDTC>, <ShortField (RDTCBS_REQ).groupOfDTC>]
class scapy.contrib.automotive.bmw.definitions.READ_MEM(_pkt, /, *, read_addr=0, read_length=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.READ_MEM'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<IntField (READ_MEM).read_addr>, <IntField (READ_MEM).read_length>]
class scapy.contrib.automotive.bmw.definitions.READ_MEM_PR(_pkt, /, *, data=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.READ_MEM_PR'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<StrField (READ_MEM_PR).data>]
class scapy.contrib.automotive.bmw.definitions.REI_IDENT_REQ(_pkt, /, *, identificationDataTable=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.REI_IDENT_REQ'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (REI_IDENT_REQ).identificationDataTable>]
class scapy.contrib.automotive.bmw.definitions.RRRBA_REQ(_pkt, /, *, routineAddress=0, memoryTypeIdentifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.RRRBA_REQ'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<X3BytesField (RRRBA_REQ).routineAddress>, <ByteEnumField (RRRBA_REQ).memoryTypeIdentifier>]
class scapy.contrib.automotive.bmw.definitions.RRRBLI_REQ(_pkt, /, *, routineLocalID=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.RRRBLI_REQ'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (RRRBLI_REQ).routineLocalID>]
class scapy.contrib.automotive.bmw.definitions.RSODTC_REQ(_pkt, /, *, groupOfDTC=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.RSODTC_REQ'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ShortField (RSODTC_REQ).groupOfDTC>]
class scapy.contrib.automotive.bmw.definitions.SPRBA_REQ(_pkt, /, *, routineAddress=0, memoryTypeIdentifier=0, routineExitOption=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.SPRBA_REQ'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<X3BytesField (SPRBA_REQ).routineAddress>, <ByteEnumField (SPRBA_REQ).memoryTypeIdentifier>, <StrField (SPRBA_REQ).routineExitOption>]
class scapy.contrib.automotive.bmw.definitions.SPRBLI_REQ(_pkt, /, *, localIdentifier=0, routineExitOption=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.SPRBLI_REQ'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (SPRBLI_REQ).localIdentifier>, <StrField (SPRBLI_REQ).routineExitOption>]
class scapy.contrib.automotive.bmw.definitions.STRBA_REQ(_pkt, /, *, routineAddress=0, memoryTypeIdentifier=0, routineEntryOption=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.STRBA_REQ'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<X3BytesField (STRBA_REQ).routineAddress>, <ByteEnumField (STRBA_REQ).memoryTypeIdentifier>, <StrField (STRBA_REQ).routineEntryOption>]
class scapy.contrib.automotive.bmw.definitions.SVK(_pkt, /, *, prog_status1=0, prog_status2=0, entries_count=0, prog_date=0, pad=b'\x00', entries=[])[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.SVK'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (SVK).prog_status1>, <ByteEnumField (SVK).prog_status2>, <ShortField (SVK).entries_count>, <SVK_DateField (SVK).prog_date>, <StrFixedLenField (SVK).pad>, <PacketListField (SVK).entries>]
static get_length(p: Packet)[source]
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(name: str, default: int | None)[source]

Bases: LEThreeBytesField

i2repr(pkt, x)[source]
class scapy.contrib.automotive.bmw.definitions.SVK_Entry(_pkt, /, *, processClass=0, svk_id=b'', mainVersion=0, subVersion=0, patchVersion=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.SVK_Entry'>, <class 'scapy.packet.Packet'>]
extract_padding(p)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (SVK_Entry).processClass>, <XStrFixedLenField (SVK_Entry).svk_id>, <ByteField (SVK_Entry).mainVersion>, <ByteField (SVK_Entry).subVersion>, <ByteField (SVK_Entry).patchVersion>]
process_classes = {1: 'HWEL', 2: 'HWAP', 3: 'HWFR', 4: 'GWTB', 5: 'CAFD', 6: 'BTLD', 7: 'FLSL', 8: 'SWFL', 9: 'SWFF', 10: 'SWPF', 11: 'ONPS', 12: 'IBAD', 13: 'SWFK', 15: 'FAFP', 16: 'FCFA', 26: 'TLRT', 27: 'TPRG', 28: 'BLUP', 29: 'FLUP', 160: 'ENTD', 161: 'NAVD', 162: 'FCFN', 192: 'SWUP', 193: 'SWIP'}

HWEL - Hardware (Elektronik) - Hardware (Electronics) HWAP - Hardwareauspraegung - Hardware Configuration HWFR - Hardwarefarbe - Hardware Color CAFD - Codierdaten - Coding Data BTLD - Bootloader - Bootloader SWFL - Software ECU Speicherimage - Software ECU Storage Image SWFF - Flash File Software - Flash File Software SWPF - Pruefsoftware - Testing Software ONPS - Onboard Programmiersystem - Onboard Programming System FAFP - FA2FP - FA2FP TLRT - Temporaere Loeschroutine - Temporary Deletion Routine TPRG - Temporaere Programmierroutine - Temporary Programming Routine FLSL - Flashloader Slave - Flashloader Slave IBAD - Interaktive Betriebsanleitung Daten - Interactive Operating Manual Data FCFA - Freischaltcode Fahrzeug-Auftrag - Vehicle Order Unlock Code BLUP - Bootloader-Update Applikation - Bootloader Update Application FLUP - Flashloader-Update Applikation - Flashloader Update Application SWUP - Software-Update Package - Software Update Package SWIP - Index Software-Update Package - Software Update Package Index ENTD - Entertainment Daten - Entertainment Data NAVD - Navigation Daten - Navigation Data FCFN - Freischaltcode Funktion - Function Unlock Code GWTB - Gateway-Tabelle - Gateway Table SWFK - BEGU: Detaillierung auf SWE-Ebene - BEGU: Detailing at SWE Level

class scapy.contrib.automotive.bmw.definitions.UDS2S_REQ(_pkt, /, *, DS2ECUAddress=0, DS2requestLength=0, DS2ControlByte=0, DS2requestParameters=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.UDS2S_REQ'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (UDS2S_REQ).DS2ECUAddress>, <ByteField (UDS2S_REQ).DS2requestLength>, <ByteField (UDS2S_REQ).DS2ControlByte>, <StrField (UDS2S_REQ).DS2requestParameters>]
class scapy.contrib.automotive.bmw.definitions.WDBLI_REQ(_pkt, /, *, recordLocalIdentifier=0, recordValue=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.WDBLI_REQ'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (WDBLI_REQ).recordLocalIdentifier>, <StrField (WDBLI_REQ).recordValue>]
class scapy.contrib.automotive.bmw.definitions.WEBSERVER(_pkt, /, *, enable=1, password=66051)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.bmw.definitions.WEBSERVER'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (WEBSERVER).enable>, <ThreeBytesField (WEBSERVER).password>]