scapy.contrib.automotive.gm.gmlan

class scapy.contrib.automotive.gm.gmlan.GMLAN(*args, **kargs)

Bases: scapy.contrib.isotp.ISOTP

aliastypes
answers(other)
static determine_len(x)
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    SERVICE    |
+-+-+-+-+-+-+-+-+

                            Fig. GMLAN                            
GMLAN fields

service

XByteEnumField

0

hashret()
static modifies_ecu_state(pkt, ecu)
payload_guess

Possible sublayers: GMLAN_DDMPR, GMLAN_DDM, GMLAN_DPBA, GMLAN_IDO, GMLAN_NR, GMLAN_PM, GMLAN_RDBIPR, GMLAN_RDBI, GMLAN_RDBPIPR, GMLAN_RDBPI, GMLAN_RDBPKTI, GMLAN_RDI, GMLAN_RD, GMLAN_RFRDPR, GMLAN_RFRD, GMLAN_RMBAPR, GMLAN_RMBA, GMLAN_RPSPR, GMLAN_SAPR, GMLAN_SA, GMLAN_TD, GMLAN_WDBIPR, GMLAN_WDBI

services = {4: 'ClearDiagnosticInformation', 16: 'InitiateDiagnosticOperation', 18: 'ReadFailureRecordData', 26: 'ReadDataByIdentifier', 32: 'ReturnToNormalOperation', 34: 'ReadDataByParameterIdentifier', 35: 'ReadMemoryByAddress', 39: 'SecurityAccess', 40: 'DisableNormalCommunication', 44: 'DynamicallyDefineMessage', 45: 'DefinePIDByAddress', 52: 'RequestDownload', 54: 'TransferData', 59: 'WriteDataByIdentifier', 62: 'TesterPresent', 68: 'ClearDiagnosticInformationPositiveResponse', 80: 'InitiateDiagnosticOperationPositiveResponse', 82: 'ReadFailureRecordDataPositiveResponse', 90: 'ReadDataByIdentifierPositiveResponse', 96: 'ReturnToNormalOperationPositiveResponse', 98: 'ReadDataByParameterIdentifierPositiveResponse', 99: 'ReadMemoryByAddressPositiveResponse', 103: 'SecurityAccessPositiveResponse', 104: 'DisableNormalCommunicationPositiveResponse', 108: 'DynamicallyDefineMessagePositiveResponse', 109: 'DefinePIDByAddressPositiveResponse', 116: 'RequestDownloadPositiveResponse', 118: 'TransferDataPositiveResponse', 123: 'WriteDataByIdentifierPositiveResponse', 126: 'TesterPresentPositiveResponse', 127: 'NegativeResponse', 162: 'ReportProgrammingState', 165: 'ProgrammingMode', 169: 'ReadDiagnosticInformation', 170: 'ReadDataByPacketIdentifier', 174: 'DeviceControl', 226: 'ReportProgrammingStatePositiveResponse', 229: 'ProgrammingModePositiveResponse', 233: 'ReadDiagnosticInformationPositiveResponse', 234: 'ReadDataByPacketIdentifierPositiveResponse', 238: 'DeviceControlPositiveResponse'}
class scapy.contrib.automotive.gm.gmlan.GMLAN_DDM(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DPIDIDENTIFIER|            PIDDATA            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. GMLAN_DDM                          
GMLAN_DDM fields

DPIDIdentifier

XByteField

0

PIDData

StrField

b'\x00\x00'

static get_log(pkt)
class scapy.contrib.automotive.gm.gmlan.GMLAN_DDMPR(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DPIDIDENTIFIER|
+-+-+-+-+-+-+-+-+

                         Fig. GMLAN_DDMPR                         
GMLAN_DDMPR fields

DPIDIdentifier

XByteField

0

static get_log(pkt)
class scapy.contrib.automotive.gm.gmlan.GMLAN_DPBA(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      PARAMETERIDENTIFIER      |         MEMORYADDRESS         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         MEMORYADDRESS                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         MEMORYADDRESS                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   MEMORYSIZE  |
+-+-+-+-+-+-+-+-+

                         Fig. GMLAN_DPBA                          
GMLAN_DPBA fields

parameterIdentifier

XShortField

0

memoryAddress

XShortField (Cond)

0

memoryAddress

X3BytesField (Cond)

0

memoryAddress

XIntField (Cond)

0

memorySize

XByteField

0

static get_log(pkt)
class scapy.contrib.automotive.gm.gmlan.GMLAN_DPBAPR(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      PARAMETERIDENTIFIER      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. GMLAN_DPBAPR                         
GMLAN_DPBAPR fields

parameterIdentifier

XShortField

0

static get_log(pkt)
class scapy.contrib.automotive.gm.gmlan.GMLAN_DTC(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FAILURERECORDNU|  DTCHIGHBYTE  |   DTCLOWBYTE  | DTCFAILURETYPE|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. GMLAN_DTC                          
GMLAN_DTC fields

failureRecordNumber

XByteField

0

DTCHighByte

XByteField

0

DTCLowByte

XByteField

0

DTCFailureType

XByteField

0

class scapy.contrib.automotive.gm.gmlan.GMLAN_IDO(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  SUBFUNCTION  |
+-+-+-+-+-+-+-+-+

                          Fig. GMLAN_IDO                          
GMLAN_IDO fields

subfunction

ByteEnumField

0

static get_log(pkt)
subfunctions = {2: 'disableAllDTCs', 3: 'enableDTCsDuringDevCntrl', 4: 'wakeUpLinks'}
class scapy.contrib.automotive.gm.gmlan.GMLAN_NR(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|REQUESTSERVICEI|   RETURNCODE  |   DEVICECONTROLLIMITEXCEEDED  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. GMLAN_NR                           
GMLAN_NR fields

requestServiceId

XByteEnumField

0

returnCode

ByteEnumField

0

deviceControlLimitExceeded

ShortField

0

static get_log(pkt)
negativeResponseCodes = {17: 'ServiceNotSupported', 18: 'SubFunctionNotSupported', 34: 'ConditionsNotCorrectOrRequestSequenceError', 49: 'RequestOutOfRange', 53: 'InvalidKey', 54: 'ExceedNumberOfAttempts', 55: 'RequiredTimeDelayNotExpired', 120: 'RequestCorrectlyReceived-ResponsePending', 129: 'SchedulerFull', 131: 'VoltageOutOfRange', 133: 'GeneralProgrammingFailure', 137: 'DeviceTypeError', 153: 'ReadyForDownload-DTCStored', 227: 'DeviceControlLimitsExceeded'}
class scapy.contrib.automotive.gm.gmlan.GMLAN_PM(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  SUBFUNCTION  |
+-+-+-+-+-+-+-+-+

                          Fig. GMLAN_PM                           
GMLAN_PM fields

subfunction

ByteEnumField

0

static get_log(pkt)
subfunctions = {1: 'requestProgrammingMode', 2: 'requestProgrammingMode_HighSpeed', 3: 'enableProgrammingMode'}
class scapy.contrib.automotive.gm.gmlan.GMLAN_RD(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|DATAFORMATIDENT|           MEMORYSIZE          |   MEMORYSIZE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|                                               |   MEMORYSIZE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. GMLAN_RD                           
GMLAN_RD fields

dataFormatIdentifier

XByteField

0

memorySize

XShortField (Cond)

0

memorySize

X3BytesField (Cond)

0

memorySize

XIntField (Cond)

0

static get_log(pkt)
class scapy.contrib.automotive.gm.gmlan.GMLAN_RDBI(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
dataIdentifiers = {144: '$90: VehicleIdentificationNumber (VIN)', 146: '$92: SystemSupplierId (SYSSUPPID)', 151: '$97: SystemNameOrEngineType (SNOET)', 152: '$98: RepairShopCodeOrTesterSerialNumber (RSCOTSN)', 153: '$99: ProgrammingDate (PD)', 154: '$9a: DiagnosticDataIdentifier (DDI)', 155: '$9b: XmlConfigurationCompatibilityIdentifier (XMLCCID)', 156: '$9C: XmlDataFilePartNumber (XMLDFPN)', 157: '$9D: XmlDataFileAlphaCode (XMLDFAC)', 159: '$9F: PreviousStoredRepairShopCodeOrTesterSerialNumbers (PSRSCOTSN)', 160: '$A0: manufacturers_enable_counter (MEC)', 161: '$A1: ECUConfigurationOrCustomizationData (ECUCOCGD) 1', 162: '$A2: ECUConfigurationOrCustomizationData (ECUCOCGD) 2', 163: '$A3: ECUConfigurationOrCustomizationData (ECUCOCGD) 3', 164: '$A4: ECUConfigurationOrCustomizationData (ECUCOCGD) 4', 165: '$A5: ECUConfigurationOrCustomizationData (ECUCOCGD) 5', 166: '$A6: ECUConfigurationOrCustomizationData (ECUCOCGD) 6', 167: '$A7: ECUConfigurationOrCustomizationData (ECUCOCGD) 7', 168: '$A8: ECUConfigurationOrCustomizationData (ECUCOCGD) 8', 176: '$B0: ECUDiagnosticAddress (ECUADDR)', 177: '$B1: ECUFunctionalSystemsAndVirtualDevices (ECUFSAVD)', 178: '$B2: GM ManufacturingData (GMMD)', 179: '$B3: Data Universal Numbering System Identification (DUNS)', 180: '$B4: Manufacturing Traceability Characters (MTC)', 181: '$B5: GM BroadcastCode (GMBC)', 182: '$B6: GM Target Vehicle (GMTV)', 183: '$B7: GM Software Usage Description (GMSUD)', 184: '$B8: GM Bench Verification Information (GMBVI)', 185: '$B9: Subnet_Config_List_HighSpeed (SCLHS)', 186: '$BA: Subnet_Config_List_LowSpeed (SCLLS)', 187: '$BB: Subnet_Config_List_MidSpeed (SCLMS)', 188: '$BC: Subnet_Config_List_NonCan 1 (SCLNC 1)', 189: '$BD: Subnet_Config_List_NonCan 2 (SCLNC 2)', 190: '$BE: Subnet_Config_List_LIN (SCLLIN)', 191: '$BF: Subnet_Config_List_GMLANChassisExpansionBus (SCLGCEB)', 192: '$C0: BootSoftwarePartNumber (BSPN)', 193: '$C1: SoftwareModuleIdentifier (SWMI) 01', 194: '$C2: SoftwareModuleIdentifier (SWMI) 02', 195: '$C3: SoftwareModuleIdentifier (SWMI) 03', 196: '$C4: SoftwareModuleIdentifier (SWMI) 04', 197: '$C5: SoftwareModuleIdentifier (SWMI) 05', 198: '$C6: SoftwareModuleIdentifier (SWMI) 06', 199: '$C7: SoftwareModuleIdentifier (SWMI) 07', 200: '$C8: SoftwareModuleIdentifier (SWMI) 08', 201: '$C9: SoftwareModuleIdentifier (SWMI) 09', 202: '$CA: SoftwareModuleIdentifier (SWMI) 10', 203: '$CB: EndModelPartNumber', 204: '$CC: BaseModelPartNumber (BMPN)', 208: '$D0: BootSoftwarePartNumberAlphaCode', 209: '$D1: SoftwareModuleIdentifierAlphaCode (SWMIAC) 01', 210: '$D2: SoftwareModuleIdentifierAlphaCode (SWMIAC) 02', 211: '$D3: SoftwareModuleIdentifierAlphaCode (SWMIAC) 03', 212: '$D4: SoftwareModuleIdentifierAlphaCode (SWMIAC) 04', 213: '$D5: SoftwareModuleIdentifierAlphaCode (SWMIAC) 05', 214: '$D6: SoftwareModuleIdentifierAlphaCode (SWMIAC) 06', 215: '$D7: SoftwareModuleIdentifierAlphaCode (SWMIAC) 07', 216: '$D8: SoftwareModuleIdentifierAlphaCode (SWMIAC) 08', 217: '$D9: SoftwareModuleIdentifierAlphaCode (SWMIAC) 09', 218: '$DA: SoftwareModuleIdentifierAlphaCode (SWMIAC) 10', 219: '$DB: EndModelPartNumberAlphaCode', 220: '$DC: BaseModelPartNumberAlphaCode', 221: '$DD: SoftwareModuleIdentifierDataIdentifiers (SWMIDID)', 222: '$DE: GMLANIdentificationData (GMLANID)', 223: '$DF: ECUOdometerValue (ECUODO)', 224: '$E0: VehicleLevelDataRecord (VLDR) 0', 225: '$E1: VehicleLevelDataRecord (VLDR) 1', 226: '$E2: VehicleLevelDataRecord (VLDR) 2', 227: '$E3: VehicleLevelDataRecord (VLDR) 3', 228: '$E4: VehicleLevelDataRecord (VLDR) 4', 229: '$E5: VehicleLevelDataRecord (VLDR) 5', 230: '$E6: VehicleLevelDataRecord (VLDR) 6', 231: '$E7: VehicleLevelDataRecord (VLDR) 7', 232: '$E8: Subnet_Config_List_GMLANPowertrainExpansionBus (SCLGPEB)', 233: '$E9: Subnet_Config_List_GMLANFrontObjectExpansionBus (SCLGFOEB)', 234: '$EA: Subnet_Config_List_GMLANRearObjectExpansionBus (SCLGROEB)', 235: '$EB: Subnet_Config_List_GMLANExpansionBus1 (SCLGEB1)', 236: '$EC: Subnet_Config_List_GMLANExpansionBus2 (SCLGEB2)', 237: '$ED: Subnet_Config_List_GMLANExpansionBus3 (SCLGEB3)', 238: '$EE: Subnet_Config_List_GMLANExpansionBus4 (SCLGEB4)', 239: '$EF: Subnet_Config_List_GMLANExpansionBus5 (SCLGEB5)'}
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DATAIDENTIFIER|
+-+-+-+-+-+-+-+-+

                         Fig. GMLAN_RDBI                          
GMLAN_RDBI fields

dataIdentifier

XByteEnumField

0

static get_log(pkt)
class scapy.contrib.automotive.gm.gmlan.GMLAN_RDBIPR(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DATAIDENTIFIER|
+-+-+-+-+-+-+-+-+

                        Fig. GMLAN_RDBIPR                         
GMLAN_RDBIPR fields

dataIdentifier

XByteEnumField

0

static get_log(pkt)
class scapy.contrib.automotive.gm.gmlan.GMLAN_RDBPI(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
dataIdentifiers = {5: 'OBD_EngineCoolantTemperature', 12: 'OBD_EngineRPM', 31: 'OBD_TimeSinceEngineStart'}
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          IDENTIFIERS          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. GMLAN_RDBPI                         
GMLAN_RDBPI fields

identifiers

FieldListField

[]

static get_log(pkt)
class scapy.contrib.automotive.gm.gmlan.GMLAN_RDBPIPR(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      PARAMETERIDENTIFIER      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. GMLAN_RDBPIPR                        
GMLAN_RDBPIPR fields

parameterIdentifier

XShortEnumField

0

static get_log(pkt)
class scapy.contrib.automotive.gm.gmlan.GMLAN_RDBPKTI(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  SUBFUNCTION  |         REQUEST DPIDS         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. GMLAN_RDBPKTI                        
GMLAN_RDBPKTI fields

subfunction

XByteEnumField

0

request_DPIDs

FieldListField (Cond)

[]

static get_log(pkt)
subfunctions = {0: 'stopSending', 1: 'sendOneResponse', 2: 'scheduleAtSlowRate', 3: 'scheduleAtMediumRate', 4: 'scheduleAtFastRate'}
class scapy.contrib.automotive.gm.gmlan.GMLAN_RDI(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  SUBFUNCTION  |
+-+-+-+-+-+-+-+-+

                          Fig. GMLAN_RDI                          
GMLAN_RDI fields

subfunction

ByteEnumField

0

static get_log(pkt)
payload_guess

Possible sublayers: GMLAN_RDI_BC, GMLAN_RDI_BM, GMLAN_RDI_BN

subfunctions = {128: 'readStatusOfDTCByDTCNumber', 129: 'readStatusOfDTCByStatusMask', 130: 'sendOnChangeDTCCount'}
class scapy.contrib.automotive.gm.gmlan.GMLAN_RDI_BC(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DTCSTATUSMASK |
+-+-+-+-+-+-+-+-+

                        Fig. GMLAN_RDI_BC                         
GMLAN_RDI_BC fields

DTCStatusMask

XByteField

0

class scapy.contrib.automotive.gm.gmlan.GMLAN_RDI_BM(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DTCSTATUSMASK |
+-+-+-+-+-+-+-+-+

                        Fig. GMLAN_RDI_BM                         
GMLAN_RDI_BM fields

DTCStatusMask

XByteField

0

class scapy.contrib.automotive.gm.gmlan.GMLAN_RDI_BN(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  DTCHIGHBYTE  |   DTCLOWBYTE  | DTCFAILURETYPE|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. GMLAN_RDI_BN                         
GMLAN_RDI_BN fields

DTCHighByte

XByteField

0

DTCLowByte

XByteField

0

DTCFailureType

XByteField

0

class scapy.contrib.automotive.gm.gmlan.GMLAN_RFRD(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  SUBFUNCTION  |              DTC              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. GMLAN_RFRD                          
GMLAN_RFRD fields

subfunction

ByteEnumField

0

dtc

PacketField (Cond)

b''

static get_log(pkt)
subfunctions = {1: 'readFailureRecordIdentifiers', 2: 'readFailureRecordParameters'}
class scapy.contrib.automotive.gm.gmlan.GMLAN_RFRDPR(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  SUBFUNCTION  |
+-+-+-+-+-+-+-+-+

                        Fig. GMLAN_RFRDPR                         
GMLAN_RFRDPR fields

subfunction

ByteEnumField

0

static get_log(pkt)
payload_guess

Possible sublayers: GMLAN_RFRDPR_RFRI, GMLAN_RFRDPR_RFRP

class scapy.contrib.automotive.gm.gmlan.GMLAN_RFRDPR_RFRI(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
failureRecordDataStructureIdentifiers = {0: 'PID', 1: 'DPID'}
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FAILURERECORDDA|              DTCS             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. GMLAN_RFRDPR_RFRI                      
GMLAN_RFRDPR_RFRI fields

failureRecordDataStructureIdentifier

ByteEnumField

0

dtcs

PacketListField

[]

class scapy.contrib.automotive.gm.gmlan.GMLAN_RFRDPR_RFRP(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              DTC              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. GMLAN_RFRDPR_RFRP                      
GMLAN_RFRDPR_RFRP fields

dtc

PacketField

b''

class scapy.contrib.automotive.gm.gmlan.GMLAN_RMBA(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         MEMORYADDRESS         |         MEMORYADDRESS         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |         MEMORYADDRESS         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |           MEMORYSIZE          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. GMLAN_RMBA                          
GMLAN_RMBA fields

memoryAddress

XShortField (Cond)

0

memoryAddress

X3BytesField (Cond)

0

memoryAddress

XIntField (Cond)

0

memorySize

XShortField

0

static get_log(pkt)
class scapy.contrib.automotive.gm.gmlan.GMLAN_RMBAPR(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         MEMORYADDRESS         |         MEMORYADDRESS         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |         MEMORYADDRESS         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |   DATARECORD  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. GMLAN_RMBAPR                         
GMLAN_RMBAPR fields

memoryAddress

XShortField (Cond)

0

memoryAddress

X3BytesField (Cond)

0

memoryAddress

XIntField (Cond)

0

dataRecord

StrField

None

static get_log(pkt)
class scapy.contrib.automotive.gm.gmlan.GMLAN_RPSPR(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|PROGRAMMEDSTATE|
+-+-+-+-+-+-+-+-+

                         Fig. GMLAN_RPSPR                         
GMLAN_RPSPR fields

programmedState

ByteEnumField

0

static get_log(pkt)
programmedStates = {0: 'fully programmed', 1: 'no op s/w or cal data', 2: 'op s/w present, cal data missing', 3: 's/w present, default or no start cal present', 80: 'General Memory Fault', 81: 'RAM Memory Fault', 82: 'NVRAM Memory Fault', 83: 'Boot Memory Failure', 84: 'Flash Memory Failure', 85: 'EEPROM Memory Failure'}
class scapy.contrib.automotive.gm.gmlan.GMLAN_SA(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  SUBFUNCTION  |          SECURITYKEY          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. GMLAN_SA                           
GMLAN_SA fields

subfunction

ByteEnumField

0

securityKey

XShortField (Cond)

b''

static get_log(pkt)
i = 254
subfunctions = {0: 'ReservedByDocument', 1: 'SPSrequestSeed', 2: 'SPSsendKey', 3: 'DevCtrlrequestSeed', 4: 'DevCtrlsendKey', 5: 'ReservedByDocument', 6: 'ReservedByDocument', 7: 'ReservedByDocument', 8: 'ReservedByDocument', 9: 'ReservedByDocument', 10: 'ReservedByDocument', 11: 'Reserved for vehicle manufacturer specific needs', 12: 'Reserved for vehicle manufacturer specific needs', 13: 'Reserved for vehicle manufacturer specific needs', 14: 'Reserved for vehicle manufacturer specific needs', 15: 'Reserved for vehicle manufacturer specific needs', 16: 'Reserved for vehicle manufacturer specific needs', 17: 'Reserved for vehicle manufacturer specific needs', 18: 'Reserved for vehicle manufacturer specific needs', 19: 'Reserved for vehicle manufacturer specific needs', 20: 'Reserved for vehicle manufacturer specific needs', 21: 'Reserved for vehicle manufacturer specific needs', 22: 'Reserved for vehicle manufacturer specific needs', 23: 'Reserved for vehicle manufacturer specific needs', 24: 'Reserved for vehicle manufacturer specific needs', 25: 'Reserved for vehicle manufacturer specific needs', 26: 'Reserved for vehicle manufacturer specific needs', 27: 'Reserved for vehicle manufacturer specific needs', 28: 'Reserved for vehicle manufacturer specific needs', 29: 'Reserved for vehicle manufacturer specific needs', 30: 'Reserved for vehicle manufacturer specific needs', 31: 'Reserved for vehicle manufacturer specific needs', 32: 'Reserved for vehicle manufacturer specific needs', 33: 'Reserved for vehicle manufacturer specific needs', 34: 'Reserved for vehicle manufacturer specific needs', 35: 'Reserved for vehicle manufacturer specific needs', 36: 'Reserved for vehicle manufacturer specific needs', 37: 'Reserved for vehicle manufacturer specific needs', 38: 'Reserved for vehicle manufacturer specific needs', 39: 'Reserved for vehicle manufacturer specific needs', 40: 'Reserved for vehicle manufacturer specific needs', 41: 'Reserved for vehicle manufacturer specific needs', 42: 'Reserved for vehicle manufacturer specific needs', 43: 'Reserved for vehicle manufacturer specific needs', 44: 'Reserved for vehicle manufacturer specific needs', 45: 'Reserved for vehicle manufacturer specific needs', 46: 'Reserved for vehicle manufacturer specific needs', 47: 'Reserved for vehicle manufacturer specific needs', 48: 'Reserved for vehicle manufacturer specific needs', 49: 'Reserved for vehicle manufacturer specific needs', 50: 'Reserved for vehicle manufacturer specific needs', 51: 'Reserved for vehicle manufacturer specific needs', 52: 'Reserved for vehicle manufacturer specific needs', 53: 'Reserved for vehicle manufacturer specific needs', 54: 'Reserved for vehicle manufacturer specific needs', 55: 'Reserved for vehicle manufacturer specific needs', 56: 'Reserved for vehicle manufacturer specific needs', 57: 'Reserved for vehicle manufacturer specific needs', 58: 'Reserved for vehicle manufacturer specific needs', 59: 'Reserved for vehicle manufacturer specific needs', 60: 'Reserved for vehicle manufacturer specific needs', 61: 'Reserved for vehicle manufacturer specific needs', 62: 'Reserved for vehicle manufacturer specific needs', 63: 'Reserved for vehicle manufacturer specific needs', 64: 'Reserved for vehicle manufacturer specific needs', 65: 'Reserved for vehicle manufacturer specific needs', 66: 'Reserved for vehicle manufacturer specific needs', 67: 'Reserved for vehicle manufacturer specific needs', 68: 'Reserved for vehicle manufacturer specific needs', 69: 'Reserved for vehicle manufacturer specific needs', 70: 'Reserved for vehicle manufacturer specific needs', 71: 'Reserved for vehicle manufacturer specific needs', 72: 'Reserved for vehicle manufacturer specific needs', 73: 'Reserved for vehicle manufacturer specific needs', 74: 'Reserved for vehicle manufacturer specific needs', 75: 'Reserved for vehicle manufacturer specific needs', 76: 'Reserved for vehicle manufacturer specific needs', 77: 'Reserved for vehicle manufacturer specific needs', 78: 'Reserved for vehicle manufacturer specific needs', 79: 'Reserved for vehicle manufacturer specific needs', 80: 'Reserved for vehicle manufacturer specific needs', 81: 'Reserved for vehicle manufacturer specific needs', 82: 'Reserved for vehicle manufacturer specific needs', 83: 'Reserved for vehicle manufacturer specific needs', 84: 'Reserved for vehicle manufacturer specific needs', 85: 'Reserved for vehicle manufacturer specific needs', 86: 'Reserved for vehicle manufacturer specific needs', 87: 'Reserved for vehicle manufacturer specific needs', 88: 'Reserved for vehicle manufacturer specific needs', 89: 'Reserved for vehicle manufacturer specific needs', 90: 'Reserved for vehicle manufacturer specific needs', 91: 'Reserved for vehicle manufacturer specific needs', 92: 'Reserved for vehicle manufacturer specific needs', 93: 'Reserved for vehicle manufacturer specific needs', 94: 'Reserved for vehicle manufacturer specific needs', 95: 'Reserved for vehicle manufacturer specific needs', 96: 'Reserved for vehicle manufacturer specific needs', 97: 'Reserved for vehicle manufacturer specific needs', 98: 'Reserved for vehicle manufacturer specific needs', 99: 'Reserved for vehicle manufacturer specific needs', 100: 'Reserved for vehicle manufacturer specific needs', 101: 'Reserved for vehicle manufacturer specific needs', 102: 'Reserved for vehicle manufacturer specific needs', 103: 'Reserved for vehicle manufacturer specific needs', 104: 'Reserved for vehicle manufacturer specific needs', 105: 'Reserved for vehicle manufacturer specific needs', 106: 'Reserved for vehicle manufacturer specific needs', 107: 'Reserved for vehicle manufacturer specific needs', 108: 'Reserved for vehicle manufacturer specific needs', 109: 'Reserved for vehicle manufacturer specific needs', 110: 'Reserved for vehicle manufacturer specific needs', 111: 'Reserved for vehicle manufacturer specific needs', 112: 'Reserved for vehicle manufacturer specific needs', 113: 'Reserved for vehicle manufacturer specific needs', 114: 'Reserved for vehicle manufacturer specific needs', 115: 'Reserved for vehicle manufacturer specific needs', 116: 'Reserved for vehicle manufacturer specific needs', 117: 'Reserved for vehicle manufacturer specific needs', 118: 'Reserved for vehicle manufacturer specific needs', 119: 'Reserved for vehicle manufacturer specific needs', 120: 'Reserved for vehicle manufacturer specific needs', 121: 'Reserved for vehicle manufacturer specific needs', 122: 'Reserved for vehicle manufacturer specific needs', 123: 'Reserved for vehicle manufacturer specific needs', 124: 'Reserved for vehicle manufacturer specific needs', 125: 'Reserved for vehicle manufacturer specific needs', 126: 'Reserved for vehicle manufacturer specific needs', 127: 'Reserved for vehicle manufacturer specific needs', 128: 'Reserved for vehicle manufacturer specific needs', 129: 'Reserved for vehicle manufacturer specific needs', 130: 'Reserved for vehicle manufacturer specific needs', 131: 'Reserved for vehicle manufacturer specific needs', 132: 'Reserved for vehicle manufacturer specific needs', 133: 'Reserved for vehicle manufacturer specific needs', 134: 'Reserved for vehicle manufacturer specific needs', 135: 'Reserved for vehicle manufacturer specific needs', 136: 'Reserved for vehicle manufacturer specific needs', 137: 'Reserved for vehicle manufacturer specific needs', 138: 'Reserved for vehicle manufacturer specific needs', 139: 'Reserved for vehicle manufacturer specific needs', 140: 'Reserved for vehicle manufacturer specific needs', 141: 'Reserved for vehicle manufacturer specific needs', 142: 'Reserved for vehicle manufacturer specific needs', 143: 'Reserved for vehicle manufacturer specific needs', 144: 'Reserved for vehicle manufacturer specific needs', 145: 'Reserved for vehicle manufacturer specific needs', 146: 'Reserved for vehicle manufacturer specific needs', 147: 'Reserved for vehicle manufacturer specific needs', 148: 'Reserved for vehicle manufacturer specific needs', 149: 'Reserved for vehicle manufacturer specific needs', 150: 'Reserved for vehicle manufacturer specific needs', 151: 'Reserved for vehicle manufacturer specific needs', 152: 'Reserved for vehicle manufacturer specific needs', 153: 'Reserved for vehicle manufacturer specific needs', 154: 'Reserved for vehicle manufacturer specific needs', 155: 'Reserved for vehicle manufacturer specific needs', 156: 'Reserved for vehicle manufacturer specific needs', 157: 'Reserved for vehicle manufacturer specific needs', 158: 'Reserved for vehicle manufacturer specific needs', 159: 'Reserved for vehicle manufacturer specific needs', 160: 'Reserved for vehicle manufacturer specific needs', 161: 'Reserved for vehicle manufacturer specific needs', 162: 'Reserved for vehicle manufacturer specific needs', 163: 'Reserved for vehicle manufacturer specific needs', 164: 'Reserved for vehicle manufacturer specific needs', 165: 'Reserved for vehicle manufacturer specific needs', 166: 'Reserved for vehicle manufacturer specific needs', 167: 'Reserved for vehicle manufacturer specific needs', 168: 'Reserved for vehicle manufacturer specific needs', 169: 'Reserved for vehicle manufacturer specific needs', 170: 'Reserved for vehicle manufacturer specific needs', 171: 'Reserved for vehicle manufacturer specific needs', 172: 'Reserved for vehicle manufacturer specific needs', 173: 'Reserved for vehicle manufacturer specific needs', 174: 'Reserved for vehicle manufacturer specific needs', 175: 'Reserved for vehicle manufacturer specific needs', 176: 'Reserved for vehicle manufacturer specific needs', 177: 'Reserved for vehicle manufacturer specific needs', 178: 'Reserved for vehicle manufacturer specific needs', 179: 'Reserved for vehicle manufacturer specific needs', 180: 'Reserved for vehicle manufacturer specific needs', 181: 'Reserved for vehicle manufacturer specific needs', 182: 'Reserved for vehicle manufacturer specific needs', 183: 'Reserved for vehicle manufacturer specific needs', 184: 'Reserved for vehicle manufacturer specific needs', 185: 'Reserved for vehicle manufacturer specific needs', 186: 'Reserved for vehicle manufacturer specific needs', 187: 'Reserved for vehicle manufacturer specific needs', 188: 'Reserved for vehicle manufacturer specific needs', 189: 'Reserved for vehicle manufacturer specific needs', 190: 'Reserved for vehicle manufacturer specific needs', 191: 'Reserved for vehicle manufacturer specific needs', 192: 'Reserved for vehicle manufacturer specific needs', 193: 'Reserved for vehicle manufacturer specific needs', 194: 'Reserved for vehicle manufacturer specific needs', 195: 'Reserved for vehicle manufacturer specific needs', 196: 'Reserved for vehicle manufacturer specific needs', 197: 'Reserved for vehicle manufacturer specific needs', 198: 'Reserved for vehicle manufacturer specific needs', 199: 'Reserved for vehicle manufacturer specific needs', 200: 'Reserved for vehicle manufacturer specific needs', 201: 'Reserved for vehicle manufacturer specific needs', 202: 'Reserved for vehicle manufacturer specific needs', 203: 'Reserved for vehicle manufacturer specific needs', 204: 'Reserved for vehicle manufacturer specific needs', 205: 'Reserved for vehicle manufacturer specific needs', 206: 'Reserved for vehicle manufacturer specific needs', 207: 'Reserved for vehicle manufacturer specific needs', 208: 'Reserved for vehicle manufacturer specific needs', 209: 'Reserved for vehicle manufacturer specific needs', 210: 'Reserved for vehicle manufacturer specific needs', 211: 'Reserved for vehicle manufacturer specific needs', 212: 'Reserved for vehicle manufacturer specific needs', 213: 'Reserved for vehicle manufacturer specific needs', 214: 'Reserved for vehicle manufacturer specific needs', 215: 'Reserved for vehicle manufacturer specific needs', 216: 'Reserved for vehicle manufacturer specific needs', 217: 'Reserved for vehicle manufacturer specific needs', 218: 'Reserved for vehicle manufacturer specific needs', 219: 'Reserved for vehicle manufacturer specific needs', 220: 'Reserved for vehicle manufacturer specific needs', 221: 'Reserved for vehicle manufacturer specific needs', 222: 'Reserved for vehicle manufacturer specific needs', 223: 'Reserved for vehicle manufacturer specific needs', 224: 'Reserved for vehicle manufacturer specific needs', 225: 'Reserved for vehicle manufacturer specific needs', 226: 'Reserved for vehicle manufacturer specific needs', 227: 'Reserved for vehicle manufacturer specific needs', 228: 'Reserved for vehicle manufacturer specific needs', 229: 'Reserved for vehicle manufacturer specific needs', 230: 'Reserved for vehicle manufacturer specific needs', 231: 'Reserved for vehicle manufacturer specific needs', 232: 'Reserved for vehicle manufacturer specific needs', 233: 'Reserved for vehicle manufacturer specific needs', 234: 'Reserved for vehicle manufacturer specific needs', 235: 'Reserved for vehicle manufacturer specific needs', 236: 'Reserved for vehicle manufacturer specific needs', 237: 'Reserved for vehicle manufacturer specific needs', 238: 'Reserved for vehicle manufacturer specific needs', 239: 'Reserved for vehicle manufacturer specific needs', 240: 'Reserved for vehicle manufacturer specific needs', 241: 'Reserved for vehicle manufacturer specific needs', 242: 'Reserved for vehicle manufacturer specific needs', 243: 'Reserved for vehicle manufacturer specific needs', 244: 'Reserved for vehicle manufacturer specific needs', 245: 'Reserved for vehicle manufacturer specific needs', 246: 'Reserved for vehicle manufacturer specific needs', 247: 'Reserved for vehicle manufacturer specific needs', 248: 'Reserved for vehicle manufacturer specific needs', 249: 'Reserved for vehicle manufacturer specific needs', 250: 'Reserved for vehicle manufacturer specific needs', 251: 'Reserved for ECU or system supplier manufacturing needs', 252: 'Reserved for ECU or system supplier manufacturing needs', 253: 'Reserved for ECU or system supplier manufacturing needs', 254: 'Reserved for ECU or system supplier manufacturing needs', 255: 'ReservedByDocument'}
class scapy.contrib.automotive.gm.gmlan.GMLAN_SAPR(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  SUBFUNCTION  |          SECURITYSEED         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. GMLAN_SAPR                          
GMLAN_SAPR fields

subfunction

ByteEnumField

0

securitySeed

XShortField (Cond)

b''

static get_log(pkt)
static modifies_ecu_state(pkt, ecu)
class scapy.contrib.automotive.gm.gmlan.GMLAN_TD(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  SUBFUNCTION  |        STARTINGADDRESS        |STARTINGADDRESS|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|                                               |STARTINGADDRESS|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                               |   DATARECORD  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                          Fig. GMLAN_TD                           
GMLAN_TD fields

subfunction

ByteEnumField

0

startingAddress

XShortField (Cond)

0

startingAddress

X3BytesField (Cond)

0

startingAddress

XIntField (Cond)

0

dataRecord

StrField

None

static get_log(pkt)
subfunctions = {0: 'download', 128: 'downloadAndExecuteOrExecute'}
class scapy.contrib.automotive.gm.gmlan.GMLAN_WDBI(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DATAIDENTIFIER|           DATARECORD          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. GMLAN_WDBI                          
GMLAN_WDBI fields

dataIdentifier

XByteEnumField

0

dataRecord

StrField

b'\x00'

static get_log(pkt)
class scapy.contrib.automotive.gm.gmlan.GMLAN_WDBIPR(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DATAIDENTIFIER|
+-+-+-+-+-+-+-+-+

                        Fig. GMLAN_WDBIPR                         
GMLAN_WDBIPR fields

dataIdentifier

XByteEnumField

0

static get_log(pkt)