scapy.contrib.pnio

class scapy.contrib.pnio.PNIORealTimeCyclicDefaultRawData(_pkt, /, *, data=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.pnio.PNIORealTimeCyclicDefaultRawData'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<StrField (PNIORealTimeCyclicDefaultRawData).data>]
guess_payload_class(payload)[source]
class scapy.contrib.pnio.PNIORealTimeCyclicPDU(_pkt, /, *, data=[], padding=b'', cycleCounter=0, dataStatus=<Flag 53 (primary+validData+run+no_problem)>, transferStatus=0)[source]

Bases: Packet

PROFINET cyclic real-time

aliastypes = [<class 'scapy.contrib.pnio.PNIORealTimeCyclicPDU'>, <class 'scapy.packet.Packet'>]
static build_fixed_len_raw_type(length)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<PacketListField (PNIORealTimeCyclicPDU).data>, <StrFixedLenField (PNIORealTimeCyclicPDU).padding>, <ShortField (PNIORealTimeCyclicPDU).cycleCounter>, <FlagsField (PNIORealTimeCyclicPDU).dataStatus>, <ByteField (PNIORealTimeCyclicPDU).transferStatus>]
static get_layout_from_config(ether_src, ether_dst, frame_id)[source]
get_padding_length()[source]
next_cls_cb(_lst, _p, _remain)[source]
pre_dissect(s)[source]
class scapy.contrib.pnio.PNIORealTime_IOxS(_pkt, /, *, dataState=1, instance=0, reserved=0, extension=0)[source]

Bases: Packet

IOCS and IOPS packets for PROFINET Real-Time payload

aliastypes = [<class 'scapy.contrib.pnio.PNIORealTime_IOxS'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<BitEnumField (PNIORealTime_IOxS).dataState>, <BitEnumField (PNIORealTime_IOxS).instance>, <XBitField (PNIORealTime_IOxS).reserved>, <BitField (PNIORealTime_IOxS).extension>]
classmethod get_len()[source]
guess_payload_class(p)[source]
classmethod is_extension_set(_pkt, _lst, p, _remain)[source]
class scapy.contrib.pnio.PROFIsafe(_pkt, /)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.pnio.PROFIsafe'>, <class 'scapy.packet.Packet'>]
static build_PROFIsafe_class(cls, data_length)[source]
comments: List[bytes] | None
default_fields: Dict[str, Any]
direction: int | None
explicit
fields: Dict[str, Any]
fieldtype: Dict[str, Field[Any, Any] | _FieldContainer]
get_data_length()[source]

Must be overridden in a subclass to return the correct value

get_mandatory_fields_len()[source]
static get_max_data_length()[source]
guess_payload_class(p)[source]
name
original
overload_fields: Dict[Type[Packet], Dict[str, Any]]
overloaded_fields: Dict[str, Any]
packetfields: List[Field[Any, Any] | _FieldContainer]
parent
payload: Packet
post_transforms
process_information: Dict[str, Any] | None
raw_packet_cache: bytes | None
raw_packet_cache_fields: Dict[str, Any] | None
sent_time: EDecimal | float | None
sniffed_on: NetworkInterface | str | None
stop_dissection_after
time: EDecimal | float
underlayer
wirelen: int | None
class scapy.contrib.pnio.PROFIsafeCRCSeed(_pkt, /)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.pnio.PROFIsafeCRCSeed'>, <class 'scapy.packet.Packet'>]
comments: List[bytes] | None
default_fields: Dict[str, Any]
direction: int | None
explicit
fields: Dict[str, Any]
fieldtype: Dict[str, Field[Any, Any] | _FieldContainer]
get_data_length()[source]

Must be overridden in a subclass to return the correct value

get_mandatory_fields_len()[source]
static get_max_data_length()[source]
guess_payload_class(p)[source]
name
original
overload_fields: Dict[Type[Packet], Dict[str, Any]]
overloaded_fields: Dict[str, Any]
packetfields: List[Field[Any, Any] | _FieldContainer]
parent
payload: Packet
post_transforms
process_information: Dict[str, Any] | None
raw_packet_cache: bytes | None
raw_packet_cache_fields: Dict[str, Any] | None
sent_time: EDecimal | float | None
sniffed_on: NetworkInterface | str | None
stop_dissection_after
time: EDecimal | float
underlayer
wirelen: int | None
class scapy.contrib.pnio.PROFIsafeControl(_pkt, /, *, data=b'', control=<Flag 0 ()>, crc=0)[source]

Bases: PROFIsafe

aliastypes = [<class 'scapy.contrib.pnio.PROFIsafeControl'>, <class 'scapy.contrib.pnio.PROFIsafe'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<StrFixedLenField (PROFIsafeControl).data>, <FlagsField (PROFIsafeControl).control>, <X3BytesField (PROFIsafeControl).crc>]
class scapy.contrib.pnio.PROFIsafeControlCRCSeed(_pkt, /, *, data=b'', control=<Flag 0 ()>, crc=0)[source]

Bases: PROFIsafeCRCSeed

aliastypes = [<class 'scapy.contrib.pnio.PROFIsafeControlCRCSeed'>, <class 'scapy.contrib.pnio.PROFIsafeCRCSeed'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<StrFixedLenField (PROFIsafeControlCRCSeed).data>, <FlagsField (PROFIsafeControlCRCSeed).control>, <XIntField (PROFIsafeControlCRCSeed).crc>]
class scapy.contrib.pnio.PROFIsafeStatus(_pkt, /, *, data=b'', status=<Flag 0 ()>, crc=0)[source]

Bases: PROFIsafe

aliastypes = [<class 'scapy.contrib.pnio.PROFIsafeStatus'>, <class 'scapy.contrib.pnio.PROFIsafe'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<StrFixedLenField (PROFIsafeStatus).data>, <FlagsField (PROFIsafeStatus).status>, <X3BytesField (PROFIsafeStatus).crc>]
class scapy.contrib.pnio.PROFIsafeStatusCRCSeed(_pkt, /, *, data=b'', status=<Flag 0 ()>, crc=0)[source]

Bases: PROFIsafeCRCSeed

aliastypes = [<class 'scapy.contrib.pnio.PROFIsafeStatusCRCSeed'>, <class 'scapy.contrib.pnio.PROFIsafeCRCSeed'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<StrFixedLenField (PROFIsafeStatusCRCSeed).data>, <FlagsField (PROFIsafeStatusCRCSeed).status>, <XIntField (PROFIsafeStatusCRCSeed).crc>]
class scapy.contrib.pnio.ProfinetIO(_pkt, /, *, frameID=0)[source]

Bases: Packet

Basic PROFINET IO dispatcher

aliastypes = [<class 'scapy.contrib.pnio.ProfinetIO'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XShortEnumField (ProfinetIO).frameID>]
guess_payload_class(payload)[source]
scapy.contrib.pnio.i2s_frameid(x)[source]

Get representation name of a pnio frame ID

Parameters:

x – a key of the PNIO_FRAME_IDS dictionary

Returns:

str

scapy.contrib.pnio.s2i_frameid(x)[source]

Get pnio frame ID from a representation name

Performs a reverse look-up in PNIO_FRAME_IDS dictionary

Parameters:

x – a value of PNIO_FRAME_IDS dict

Returns:

integer