scapy.contrib.automotive.ccp
- class scapy.contrib.automotive.ccp.ACTION_SERVICE(_pkt, /, *, action_service=0, ccp_reserved=b'\xff\xff\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ACTION SERVICE | CCP RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ACTION_SERVICE
action_service
0
ccp_reserved
b'\xff\xff\xff\xff'
- class scapy.contrib.automotive.ccp.ACTION_SERVICE_DTO(_pkt, /, *, data_length=0, data_type=0, ccp_reserved=b'\xff\xff\xff')[source]
Bases:
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 LENGTH | DATA TYPE | CCP RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. ACTION_SERVICE_DTO
data_length
0
data_type
0
ccp_reserved
b'\xff\xff\xff'
- class scapy.contrib.automotive.ccp.BUILD_CHKSUM(_pkt, /, *, size=0, ccp_reserved=b'\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SIZE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CCP RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BUILD_CHKSUM
size
0
ccp_reserved
b'\xff\xff'
- class scapy.contrib.automotive.ccp.BUILD_CHKSUM_DTO(_pkt, /, *, checksum_size=0, checksum_data=b'\x00\x00\x00\x00', ccp_reserved=b'')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CHECKSUM SIZE | CHECKSUM DATA | CCP RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. BUILD_CHKSUM_DTO
checksum_size
0
checksum_data
b'\x00\x00\x00\x00'
ccp_reserved
b''
- class scapy.contrib.automotive.ccp.CCP(_pkt, /, *, flags=<Flag 0 ()>, identifier=0, length=8, reserved=0)[source]
Bases:
CAN
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |FLAGS| IDENTIFIER | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LENGTH | RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. CCP
flags
<Flag 0 ()>
identifier
XBitField
(29 bits)0
length
8
reserved
0
- class scapy.contrib.automotive.ccp.CLEAR_MEMORY(_pkt, /, *, size=0, ccp_reserved=b'\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SIZE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CCP RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. CLEAR_MEMORY
size
0
ccp_reserved
b'\xff\xff'
- class scapy.contrib.automotive.ccp.CONNECT(_pkt, /, *, station_address=0, ccp_reserved=b'\xff\xff\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | STATION ADDRESS | CCP RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. CONNECT
station_address
0
ccp_reserved
b'\xff\xff\xff\xff'
- class scapy.contrib.automotive.ccp.CRO(_pkt, /, *, cmd=1, ctr=0)[source]
Bases:
Packet
- aliastypes
- commands = {1: 'CONNECT', 2: 'SET_MTA', 3: 'DNLOAD', 4: 'UPLOAD', 5: 'TEST', 6: 'START_STOP', 7: 'DISCONNECT', 8: 'START_STOP_ALL', 9: 'GET_ACTIVE_CAL_PAGE', 12: 'SET_S_STATUS', 13: 'GET_S_STATUS', 14: 'BUILD_CHKSUM', 15: 'SHORT_UP', 16: 'CLEAR_MEMORY', 17: 'SELECT_CAL_PAGE', 18: 'GET_SEED', 19: 'UNLOCK', 20: 'GET_DAQ_SIZE', 21: 'SET_DAQ_PTR', 22: 'WRITE_DAQ', 23: 'EXCHANGE_ID', 24: 'PROGRAM', 25: 'MOVE', 27: 'GET_CCP_VERSION', 32: 'DIAG_SERVICE', 33: 'ACTION_SERVICE', 34: 'PROGRAM_6', 35: 'DNLOAD_6'}
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CMD | CTR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. CRO
cmd
1
ctr
0
- payload_guess
Possible sublayers:
ACTION_SERVICE
,BUILD_CHKSUM
,CLEAR_MEMORY
,CONNECT
,DIAG_SERVICE
,DISCONNECT
,DNLOAD_6
,DNLOAD
,EXCHANGE_ID
,GET_ACTIVE_CAL_PAGE
,GET_CCP_VERSION
,GET_DAQ_SIZE
,GET_SEED
,GET_S_STATUS
,MOVE
,PROGRAM_6
,PROGRAM
,SELECT_CAL_PAGE
,SET_DAQ_PTR
,SET_MTA
,SET_S_STATUS
,SHORT_UP
,START_STOP_ALL
,START_STOP
,TEST
,UNLOCK
,UPLOAD
,WRITE_DAQ
- class scapy.contrib.automotive.ccp.DEFAULT_DTO(_pkt, /, *, load=b'\xff\xff\xff\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LOAD | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. DEFAULT_DTO
load
b'\xff\xff\xff\xff\xff'
- class scapy.contrib.automotive.ccp.DIAG_SERVICE(_pkt, /, *, diag_service=0, ccp_reserved=b'\xff\xff\xff\xff')[source]
Bases:
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 SERVICE | CCP RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. DIAG_SERVICE
diag_service
0
ccp_reserved
b'\xff\xff\xff\xff'
- class scapy.contrib.automotive.ccp.DIAG_SERVICE_DTO(_pkt, /, *, data_length=0, data_type=0, ccp_reserved=b'\xff\xff\xff')[source]
Bases:
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 LENGTH | DATA TYPE | CCP RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. DIAG_SERVICE_DTO
data_length
0
data_type
0
ccp_reserved
b'\xff\xff\xff'
- class scapy.contrib.automotive.ccp.DISCONNECT(_pkt, /, *, type=0, ccp_reserved0=b'\xff', station_address=0, ccp_reserved=b'\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TYPE | CCP RESERVED0 | STATION ADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CCP RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. DISCONNECT
type
0
ccp_reserved0
b'\xff'
station_address
0
ccp_reserved
b'\xff\xff'
- class scapy.contrib.automotive.ccp.DNLOAD(_pkt, /, *, size=0, data=b'\x00\x00\x00\x00\x00')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SIZE | DATA | +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. DNLOAD
size
0
data
b'\x00\x00\x00\x00\x00'
- class scapy.contrib.automotive.ccp.DNLOAD_6(_pkt, /, *, data=b'\x00\x00\x00\x00\x00\x00')[source]
Bases:
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. DNLOAD_6
data
b'\x00\x00\x00\x00\x00\x00'
- class scapy.contrib.automotive.ccp.DNLOAD_6_DTO(_pkt, /, *, MTA0_extension=0, MTA0_address=0)[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MTA0 EXTENSION| MTA0 ADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. DNLOAD_6_DTO
MTA0_extension
0
MTA0_address
0
- class scapy.contrib.automotive.ccp.DNLOAD_DTO(_pkt, /, *, MTA0_extension=0, MTA0_address=0)[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MTA0 EXTENSION| MTA0 ADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. DNLOAD_DTO
MTA0_extension
0
MTA0_address
0
- class scapy.contrib.automotive.ccp.DTO(_pkt, /, *, packet_id=255, return_code=0, ctr=0)[source]
Bases:
Packet
- aliastypes
- answers(other)[source]
In CCP, the payload of a DTO packet is dependent on the cmd field of a corresponding CRO packet. Two packets correspond, if there ctr field is equal. If answers detect the corresponding CRO, it will interpret the payload of a DTO with the correct class. In CCP, there is no other way, to determine the class of a DTO payload. Since answers is called on sr and sr1, this modification of the original answers implementation will give a better user experience.
- comment: bytes | None
- default_fields: Dict[str, Any]
- direction: int | None
- explicit
- fields: Dict[str, Any]
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PACKET ID | RETURN CODE | CTR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. DTO
packet_id
255
return_code
0
ctr
0
- fieldtype: Dict[str, AnyField]
- name
- original
- overloaded_fields: Dict[str, Any]
- packetfields: List[AnyField]
- parent
- payload_cls
- post_transforms
- raw_packet_cache: bytes | None
- raw_packet_cache_fields: Dict[str, Any] | None
- return_codes = {0: 'acknowledge / no error', 1: 'DAQ processor overload', 16: 'command processor busy', 17: 'DAQ processor busy', 18: 'internal timeout', 24: 'key request', 25: 'session status request', 32: 'cold start request', 33: 'cal. data init. request', 34: 'DAQ list init. request', 35: 'code update request', 48: 'unknown command', 49: 'command syntax', 50: 'parameter(s) out of range', 51: 'access denied', 52: 'overload', 53: 'access locked', 54: 'resource/function not available'}
- sniffed_on: _GlobInterfaceType | None
- stop_dissection_after
- underlayer
- wirelen: int | None
- class scapy.contrib.automotive.ccp.EXCHANGE_ID(_pkt, /, *, ccp_master_device_id=b'\x00\x00\x00\x00\x00\x00')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CCP MASTER DEVICE ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. EXCHANGE_ID
ccp_master_device_id
b'\x00\x00\x00\x00\x00\x00'
- class scapy.contrib.automotive.ccp.EXCHANGE_ID_DTO(_pkt, /, *, slave_device_ID_length=0, data_type_qualifier=0, resource_availability_mask=0, resource_protection_mask=0, ccp_reserved=b'\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |SLAVE DEVICE ID|DATA TYPE QUALI|RESOURCE AVAILA|RESOURCE PROTEC| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CCP RESERVED | +-+-+-+-+-+-+-+-+ Fig. EXCHANGE_ID_DTO
slave_device_ID_length
0
data_type_qualifier
0
resource_availability_mask
0
resource_protection_mask
0
ccp_reserved
b'\xff'
- class scapy.contrib.automotive.ccp.GET_ACTIVE_CAL_PAGE(_pkt, /, *, ccp_reserved=b'\xff\xff\xff\xff\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CCP RESERVED | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. GET_ACTIVE_CAL_PAGE
ccp_reserved
b'\xff\xff\xff\xff\xff\xff'
- class scapy.contrib.automotive.ccp.GET_ACTIVE_CAL_PAGE_DTO(_pkt, /, *, address_extension=0, address=0)[source]
Bases:
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 EXTENSI| ADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. GET_ACTIVE_CAL_PAGE_DTO
address_extension
0
address
0
- class scapy.contrib.automotive.ccp.GET_CCP_VERSION(_pkt, /, *, main_protocol_version=0, release_version=0, ccp_reserved=b'\xff\xff\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |MAIN PROTOCOL V|RELEASE VERSION| CCP RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. GET_CCP_VERSION
main_protocol_version
0
release_version
0
ccp_reserved
b'\xff\xff\xff\xff'
- class scapy.contrib.automotive.ccp.GET_CCP_VERSION_DTO(_pkt, /, *, main_protocol_version=0, release_version=0, ccp_reserved=b'\x00\x00\x00')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |MAIN PROTOCOL V|RELEASE VERSION| CCP RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. GET_CCP_VERSION_DTO
main_protocol_version
0
release_version
0
ccp_reserved
b'\x00\x00\x00'
- class scapy.contrib.automotive.ccp.GET_DAQ_SIZE(_pkt, /, *, DAQ_num=0, ccp_reserved=0, DTO_identifier=0)[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DAQ NUM | CCP RESERVED | DTO IDENTIFIER | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. GET_DAQ_SIZE
DAQ_num
0
ccp_reserved
0
DTO_identifier
0
- class scapy.contrib.automotive.ccp.GET_DAQ_SIZE_DTO(_pkt, /, *, DAQ_list_size=0, first_pid=0, ccp_reserved=b'\xff\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DAQ LIST SIZE | FIRST PID | CCP RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. GET_DAQ_SIZE_DTO
DAQ_list_size
0
first_pid
0
ccp_reserved
b'\xff\xff\xff'
- class scapy.contrib.automotive.ccp.GET_SEED(_pkt, /, *, resource=0, ccp_reserved=b'\xff\xff\xff\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RESOURCE | CCP RESERVED | +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. GET_SEED
resource
0
ccp_reserved
b'\xff\xff\xff\xff\xff'
- class scapy.contrib.automotive.ccp.GET_SEED_DTO(_pkt, /, *, protection_status=0, seed=b'\x00\x00\x00\x00')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |PROTECTION STAT| SEED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. GET_SEED_DTO
protection_status
0
seed
b'\x00\x00\x00\x00'
- class scapy.contrib.automotive.ccp.GET_S_STATUS(_pkt, /, *, ccp_reserved=b'\xff\xff\xff\xff\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CCP RESERVED | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. GET_S_STATUS
ccp_reserved
b'\xff\xff\xff\xff\xff\xff'
- class scapy.contrib.automotive.ccp.GET_S_STATUS_DTO(_pkt, /, *, session_status=<Flag 0 ()>, information_qualifier=0, information=b'\x00\x00\x00')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SESSION STATUS|INFORMATION QUA| INFORMATION | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. GET_S_STATUS_DTO
session_status
<Flag 0 ()>
information_qualifier
0
information
b'\x00\x00\x00'
- class scapy.contrib.automotive.ccp.MOVE(_pkt, /, *, size=0, ccp_reserved=b'\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SIZE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CCP RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. MOVE
size
0
ccp_reserved
b'\xff\xff'
- class scapy.contrib.automotive.ccp.PROGRAM(_pkt, /, *, size=0, data=b'', ccp_reserved=b'\xff\xff\xff\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SIZE | DATA | CCP RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. PROGRAM
size
0
data
b''
ccp_reserved
b'\xff\xff\xff\xff\xff'
- class scapy.contrib.automotive.ccp.PROGRAM_6(_pkt, /, *, data=b'\x00\x00\x00\x00\x00\x00')[source]
Bases:
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. PROGRAM_6
data
b'\x00\x00\x00\x00\x00\x00'
- class scapy.contrib.automotive.ccp.PROGRAM_6_DTO(_pkt, /, *, MTA0_extension=0, MTA0_address=0)[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MTA0 EXTENSION| MTA0 ADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. PROGRAM_6_DTO
MTA0_extension
0
MTA0_address
0
- class scapy.contrib.automotive.ccp.PROGRAM_DTO(_pkt, /, *, MTA0_extension=0, MTA0_address=0)[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MTA0 EXTENSION| MTA0 ADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. PROGRAM_DTO
MTA0_extension
0
MTA0_address
0
- class scapy.contrib.automotive.ccp.SELECT_CAL_PAGE(_pkt, /, *, ccp_reserved=b'\xff\xff\xff\xff\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CCP RESERVED | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. SELECT_CAL_PAGE
ccp_reserved
b'\xff\xff\xff\xff\xff\xff'
- class scapy.contrib.automotive.ccp.SET_DAQ_PTR(_pkt, /, *, DAQ_num=0, ODT_num=0, ODT_element=0, ccp_reserved=b'\xff\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DAQ NUM | ODT NUM | ODT ELEMENT | CCP RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. SET_DAQ_PTR
DAQ_num
0
ODT_num
0
ODT_element
0
ccp_reserved
b'\xff\xff\xff'
- class scapy.contrib.automotive.ccp.SET_MTA(_pkt, /, *, mta_num=0, address_extension=0, address=0)[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MTA NUM |ADDRESS EXTENSI| ADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. SET_MTA
mta_num
0
address_extension
0
address
0
- class scapy.contrib.automotive.ccp.SET_S_STATUS(_pkt, /, *, session_status=<Flag 0 ()>, ccp_reserved=b'\xff\xff\xff\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SESSION STATUS| CCP RESERVED | +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. SET_S_STATUS
session_status
<Flag 0 ()>
ccp_reserved
b'\xff\xff\xff\xff\xff'
- class scapy.contrib.automotive.ccp.SHORT_UP(_pkt, /, *, size=0, address_extension=0, address=0)[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SIZE |ADDRESS EXTENSI| ADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. SHORT_UP
size
0
address_extension
0
address
0
- class scapy.contrib.automotive.ccp.SHORT_UP_DTO(_pkt, /, *, data=b'\x00\x00\x00\x00\x00')[source]
Bases:
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. SHORT_UP_DTO
data
b'\x00\x00\x00\x00\x00'
- class scapy.contrib.automotive.ccp.START_STOP(_pkt, /, *, mode=0, DAQ_num=0, ODT_num=0, event_channel=0, transmission_rate=0)[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MODE | DAQ NUM | ODT NUM | EVENT CHANNEL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TRANSMISSION RATE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. START_STOP
mode
0
DAQ_num
0
ODT_num
0
event_channel
0
transmission_rate
0
- class scapy.contrib.automotive.ccp.START_STOP_ALL(_pkt, /, *, type=0, ccp_reserved=b'\xff\xff\xff\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TYPE | CCP RESERVED | +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. START_STOP_ALL
type
0
ccp_reserved
b'\xff\xff\xff\xff\xff'
- class scapy.contrib.automotive.ccp.TEST(_pkt, /, *, station_address=0, ccp_reserved=b'\xff\xff\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | STATION ADDRESS | CCP RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. TEST
station_address
0
ccp_reserved
b'\xff\xff\xff\xff'
- class scapy.contrib.automotive.ccp.UNLOCK(_pkt, /, *, key=b'\x00\x00\x00\x00\x00\x00')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | KEY | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. UNLOCK
key
b'\x00\x00\x00\x00\x00\x00'
- class scapy.contrib.automotive.ccp.UNLOCK_DTO(_pkt, /, *, privilege_status=0, ccp_reserved=b'\xff\xff\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |PRIVILEGE STATU| CCP RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. UNLOCK_DTO
privilege_status
0
ccp_reserved
b'\xff\xff\xff\xff'
- class scapy.contrib.automotive.ccp.UPLOAD(_pkt, /, *, size=0, ccp_reserved=b'\xff\xff\xff\xff\xff')[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SIZE | CCP RESERVED | +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. UPLOAD
size
0
ccp_reserved
b'\xff\xff\xff\xff\xff'
- class scapy.contrib.automotive.ccp.UPLOAD_DTO(_pkt, /, *, data=b'\x00\x00\x00\x00\x00')[source]
Bases:
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. UPLOAD_DTO
data
b'\x00\x00\x00\x00\x00'
- class scapy.contrib.automotive.ccp.WRITE_DAQ(_pkt, /, *, DAQ_size=0, address_extension=0, address=0)[source]
Bases:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DAQ SIZE |ADDRESS EXTENSI| ADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. WRITE_DAQ
DAQ_size
0
address_extension
0
address
0