scapy.contrib.isotp.isotp_packet
- class scapy.contrib.isotp.isotp_packet.ISOTP(_pkt, /, *, data=b'')[source]
Bases:
PacketPacket class for ISOTP messages. This class contains additional slots for source address (tx_id), destination address (rx_id), extended source address (ext_address) and extended destination address (rx_ext_address) information. This information gets filled from ISOTPSockets or the ISOTPMessageBuilder, if it is available. Address information is not used for Packet comparison.
- Parameters:
args – Arguments for Packet init, for example bytes string
kwargs – Keyword arguments for Packet init.
- aliastypes = [<class 'scapy.contrib.isotp.isotp_packet.ISOTP'>, <class 'scapy.packet.Packet'>]
- comments: List[bytes] | None
- default_fields: Dict[str, Any]
- static defragment(can_frames: List[Packet], use_extended_addressing: bool | None = None) ISOTP | None[source]
Helper function to defragment a list of CAN frames to one ISOTP message
- Parameters:
can_frames – A list of CAN frames
use_extended_addressing – Specify if extended ISO-TP addressing is used in the packets for defragmentation.
- Returns:
An ISOTP message containing the data of the CAN frames or None
- direction: int | None
- explicit
- ext_address: int | None
- fields: Dict[str, Any]
- fragment(*args: Any, **kargs: Any) List[Packet][source]
Helper function to fragment an ISOTP message into multiple CAN frames.
- Parameters:
fd – type: Optional[bool]: will fragment the can frames with size CAN_FD_MAX_DLEN
- Returns:
A list of CAN frames
- name
- original
- overloaded_fields: Dict[str, Any]
- parent
- post_transforms
- process_information: Dict[str, Any] | None
- raw_packet_cache: bytes | None
- raw_packet_cache_fields: Dict[str, Any] | None
- rx_ext_address: int | None
- rx_id: int | None
- sniffed_on: NetworkInterface | str | None
- stop_dissection_after
- tx_id: int | None
- underlayer
- validate_fields() None[source]
Helper function to validate information in tx_id, rx_id, ext_address and rx_ext_address slots
- wirelen: int | None
- class scapy.contrib.isotp.isotp_packet.ISOTPHeader(_pkt, /, *, flags=<Flag 0 ()>, identifier=0, length=None, reserved=0)[source]
Bases:
CAN- aliastypes = [<class 'scapy.contrib.isotp.isotp_packet.ISOTPHeader'>, <class 'scapy.layers.can.CAN'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<FlagsField (ISOTPHeader).flags>, <XBitField (ISOTPHeader).identifier>, <ByteField (ISOTPHeader).length>, <ThreeBytesField (ISOTPHeader).reserved>]
- class scapy.contrib.isotp.isotp_packet.ISOTPHeaderEA(_pkt, /, *, flags=<Flag 0 ()>, identifier=0, length=None, reserved=0, extended_address=0)[source]
Bases:
ISOTPHeader- aliastypes = [<class 'scapy.contrib.isotp.isotp_packet.ISOTPHeaderEA'>, <class 'scapy.contrib.isotp.isotp_packet.ISOTPHeader'>, <class 'scapy.layers.can.CAN'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.isotp.isotp_packet.ISOTPHeaderEA_FD(_pkt, /, *, flags=<Flag 0 ()>, identifier=0, length=None, fd_flags=<Flag 4 (fd_frame)>, reserved=0, extended_address=0)[source]
Bases:
ISOTPHeaderEA- aliastypes = [<class 'scapy.contrib.isotp.isotp_packet.ISOTPHeaderEA_FD'>, <class 'scapy.contrib.isotp.isotp_packet.ISOTPHeaderEA'>, <class 'scapy.contrib.isotp.isotp_packet.ISOTPHeader'>, <class 'scapy.layers.can.CAN'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<FlagsField (ISOTPHeaderEA_FD).flags>, <XBitField (ISOTPHeaderEA_FD).identifier>, <ByteField (ISOTPHeaderEA_FD).length>, <FlagsField (ISOTPHeaderEA_FD).fd_flags>, <ShortField (ISOTPHeaderEA_FD).reserved>, <XByteField (ISOTPHeaderEA_FD).extended_address>]
- class scapy.contrib.isotp.isotp_packet.ISOTPHeader_FD(_pkt, /, *, flags=<Flag 0 ()>, identifier=0, length=None, fd_flags=<Flag 4 (fd_frame)>, reserved=0)[source]
Bases:
ISOTPHeader- aliastypes = [<class 'scapy.contrib.isotp.isotp_packet.ISOTPHeader_FD'>, <class 'scapy.contrib.isotp.isotp_packet.ISOTPHeader'>, <class 'scapy.layers.can.CAN'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.isotp.isotp_packet.ISOTP_CF(_pkt, /, *, type=2, index=0, data=b'')[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.isotp.isotp_packet.ISOTP_CF'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.isotp.isotp_packet.ISOTP_FC(_pkt, /, *, type=3, fc_flag=0, block_size=0, separation_time=0)[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.isotp.isotp_packet.ISOTP_FC'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.isotp.isotp_packet.ISOTP_FF(_pkt, /, *, type=1, message_size=0, extended_message_size=0, data=b'')[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.isotp.isotp_packet.ISOTP_FF'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.isotp.isotp_packet.ISOTP_FF_FD(_pkt, /, *, type=1, zero_field=0, message_size=0, data=b'')[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.isotp.isotp_packet.ISOTP_FF_FD'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.isotp.isotp_packet.ISOTP_SF(_pkt, /, *, type=0, message_size=None, data=b'')[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.isotp.isotp_packet.ISOTP_SF'>, <class 'scapy.packet.Packet'>]