scapy.contrib.pnio_rpc
PNIO RPC endpoints
- class scapy.contrib.pnio_rpc.ARBlockReq(*args, **kargs)
Bases:
scapy.contrib.pnio_rpc.Block
Application relationship block request
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLOCK TYPE | BLOCK LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |BLOCK VERSION H|BLOCK VERSION L| ARTYPE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ARUUID | + + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SESSIONKEY | CMINITIATORMACADD | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CMINITIATOROBJECTUUID | + + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |A|A|ARPROPERTIE|ARPROPERTIES RESERVED 2|A|ARP|A|ARPRO|A|A|ARPRO| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |CMINITIATORACTIVITYTIMEOUTFACTO| CMINITIATORUDPRTPORT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | STATIONNAMELENGTH | CMINITIATORSTATIONNAME | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ARBlockReq
ARBlockReq fields block_type
257
block_length
None
block_version_high
1
block_version_low
0
ARType
1
ARUUID
None
SessionKey
0
CMInitiatorMacAdd
None
CMInitiatorObjectUUID
None
ARProperties_PullModuleAlarmAllowed
BitField
(1 bit)0
ARProperties_StartupMode
BitEnumField
(1 bit)0
ARProperties_reserved_3
BitField
(6 bits)0
ARProperties_reserved_2
BitField
(12 bits)0
ARProperties_AcknowledgeCompanionAR
BitField
(1 bit)0
ARProperties_CompanionAR
BitEnumField
(2 bits)0
ARProperties_DeviceAccess
BitEnumField
(1 bit)0
ARProperties_reserved_1
BitField
(3 bits)0
ARProperties_ParametrizationServer
BitEnumField
(1 bit)0
ARProperties_SupervisorTakeoverAllowed
BitField
(1 bit)0
ARProperties_State
BitEnumField
(3 bits)1
CMInitiatorActivityTimeoutFactor
1000
CMInitiatorUDPRTPort
34962
StationNameLength
None
CMInitiatorStationName
b''
- get_response()
Generate the response block of this request. Careful: it only sets the fields which can be set from the request
- class scapy.contrib.pnio_rpc.ARBlockRes(*args, **kargs)
Bases:
scapy.contrib.pnio_rpc.Block
Application relationship block response
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLOCK TYPE | BLOCK LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |BLOCK VERSION H|BLOCK VERSION L| ARTYPE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ARUUID | + + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SESSIONKEY | CMRESPONDERMACADD | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CMRESPONDERUDPRTPORT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ARBlockRes
ARBlockRes fields block_type
33025
block_length
None
block_version_high
1
block_version_low
0
ARType
1
ARUUID
None
SessionKey
0
CMResponderMacAdd
None
CMResponderUDPRTPort
34962
- class scapy.contrib.pnio_rpc.Block(*args, **kargs)
Bases:
scapy.packet.Packet
A generic block packet for PNIO RPC
- aliastypes
- extract_padding(s)
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLOCK TYPE | BLOCK LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |BLOCK VERSION H|BLOCK VERSION L| LOAD | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. Block
Block fields block_type
0
block_length
None
block_version_high
1
block_version_low
0
load
b''
- payload_length()
A function for each block, to determine the length of the payload
- post_build(p, pay)
- class scapy.contrib.pnio_rpc.BlockHeader(*args, **kargs)
Bases:
scapy.packet.Packet
Abstract packet to centralize block headers fields
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLOCK TYPE | BLOCK LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |BLOCK VERSION H|BLOCK VERSION L| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BlockHeader
BlockHeader fields block_type
None
block_length
None
block_version_high
1
block_version_low
0
- class scapy.contrib.pnio_rpc.ExpectedSubmodule(*args, **kargs)
Bases:
scapy.packet.Packet
Description of a submodule in an API of an expected submodule
- aliastypes
- extract_padding(s)
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUBSLOTNUMBER | SUBMODULEIDENTNUMBER | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |SUBMODULEPROPER|SUB|S|S|S|S|SUB| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DATADESCRIPTION | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ExpectedSubmodule
ExpectedSubmodule fields SubslotNumber
0
SubmoduleIdentNumber
0
SubmoduleProperties_reserved_2
0
SubmoduleProperties_reserved_1
BitField
(2 bits)0
SubmoduleProperties_DiscardIOXS
BitField
(1 bit)0
SubmoduleProperties_ReduceOutputSubmoduleDataLength
BitField
(1 bit)0
SubmoduleProperties_ReduceInputSubmoduleDataLength
BitField
(1 bit)0
SubmoduleProperties_SharedInput
BitField
(1 bit)0
SubmoduleProperties_Type
BitEnumField
(2 bits)0
DataDescription
[]
- class scapy.contrib.pnio_rpc.ExpectedSubmoduleAPI(*args, **kargs)
Bases:
scapy.packet.Packet
Description of an API in the expected submodules blocks
- aliastypes
- extract_padding(s)
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | API | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SLOTNUMBER | MODULEIDENTNUMBER | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | MODULEPROPERTIES | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NUMBEROFSUBMODULES | SUBMODULES | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ExpectedSubmoduleAPI
ExpectedSubmoduleAPI fields API
0
SlotNumber
0
ModuleIdentNumber
0
ModuleProperties
0
NumberOfSubmodules
None
Submodules
[]
- class scapy.contrib.pnio_rpc.ExpectedSubmoduleBlockReq(*args, **kargs)
Bases:
scapy.contrib.pnio_rpc.Block
Expected submodule block request
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLOCK TYPE | BLOCK LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |BLOCK VERSION H|BLOCK VERSION L| NUMBEROFAPIS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | APIS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ExpectedSubmoduleBlockReq
ExpectedSubmoduleBlockReq fields block_type
260
block_length
None
block_version_high
1
block_version_low
0
NumberOfAPIs
None
APIs
[]
- get_response()
Generate the response block of this request. Careful: it only sets the fields which can be set from the request
- class scapy.contrib.pnio_rpc.ExpectedSubmoduleDataDescription(*args, **kargs)
Bases:
scapy.packet.Packet
Description of the data of a submodule
- aliastypes
- extract_padding(s)
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DATADESCRIPTION | SUBMODULEDATALENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LENGTHIOCS | LENGTHIOPS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ExpectedSubmoduleDataDescription
ExpectedSubmoduleDataDescription fields DataDescription
0
SubmoduleDataLength
0
LengthIOCS
0
LengthIOPS
0
- class scapy.contrib.pnio_rpc.FParametersBlock(*args, **kargs)
Bases:
scapy.packet.Packet
F-Parameters configuration block
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |F|F|F C|F S|F|F|F P|F BLO|F P|F| F SOURCE ADD | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | F DEST ADD | F WD TIME | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | F WD TIME 2 | F IPAR CRC | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | F PAR CRC | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. FParametersBlock
FParametersBlock fields F_Prm_Flag1_Reserved_7
BitField
(1 bit)0
F_CRC_Seed
BitField
(1 bit)0
F_CRC_Length
BitEnumField
(2 bits)0
F_SIL
BitEnumField
(2 bits)2
F_Check_iPar
BitField
(1 bit)0
F_Check_SeqNr
BitField
(1 bit)0
F_Par_Version
BitEnumField
(2 bits)1
F_Block_ID
BitEnumField
(3 bits)0
F_Prm_Flag2_Reserved
BitField
(2 bits)0
F_Passivation
BitField
(1 bit)0
F_Source_Add
0
F_Dest_Add
0
F_WD_Time
0
F_WD_Time_2
ShortField
(Cond)0
F_iPar_CRC
XIntField
(Cond)0
F_Par_CRC
0
- class scapy.contrib.pnio_rpc.IOCRAPI(*args, **kargs)
Bases:
scapy.packet.Packet
API description used in IOCR block
- aliastypes
- extract_padding(s)
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | API | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NUMBEROFIODATAOBJECTS | IODATAOBJECTS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NUMBEROFIOCS | IOCSS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IOCRAPI
IOCRAPI fields API
0
NumberOfIODataObjects
None
IODataObjects
[]
NumberOfIOCS
None
IOCSs
[]
- class scapy.contrib.pnio_rpc.IOCRAPIObject(*args, **kargs)
Bases:
scapy.packet.Packet
API item descriptor used in API description of IOCR blocks
- aliastypes
- extract_padding(s)
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SLOTNUMBER | SUBSLOTNUMBER | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | FRAMEOFFSET | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IOCRAPIObject
IOCRAPIObject fields SlotNumber
0
SubslotNumber
0
FrameOffset
0
- class scapy.contrib.pnio_rpc.IOCRBlockReq(*args, **kargs)
Bases:
scapy.contrib.pnio_rpc.Block
IO Connection Relationship block request
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLOCK TYPE | BLOCK LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |BLOCK VERSION H|BLOCK VERSION L| IOCRTYPE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IOCRREFERENCE | LT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |IOCRPROPERTIES |IOCRPROPERTIES RESERV|IOCRPROPERTIES RE|IOCRPRO| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DATALENGTH | FRAMEID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SENDCLOCKFACTOR | REDUCTIONRATIO | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PHASE | SEQUENCE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | FRAMESENDOFFSET | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | WATCHDOGFACTOR | DATAHOLDFACTOR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |IOCRT|I|IOCRTAGHEADER IOCRVLANI| IOCRMULTICASTMACADD | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NUMBEROFAPIS | APIS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IOCRBlockReq
IOCRBlockReq fields block_type
258
block_length
None
block_version_high
1
block_version_low
0
IOCRType
1
IOCRReference
1
LT
34962
IOCRProperties_reserved3
BitField
(8 bits)0
IOCRProperties_reserved2
BitField
(11 bits)0
IOCRProperties_reserved1
BitField
(9 bits)0
IOCRProperties_RTClass
BitEnumField
(4 bits)0
DataLength
40
FrameID
32768
SendClockFactor
32
ReductionRatio
32
Phase
1
Sequence
0
FrameSendOffset
4294967295
WatchdogFactor
10
DataHoldFactor
10
IOCRTagHeader_IOUserPriority
BitEnumField
(3 bits)6
IOCRTagHeader_reserved
BitField
(1 bit)0
IOCRTagHeader_IOCRVLANID
BitField
(12 bits)0
IOCRMulticastMACAdd
None
NumberOfAPIs
None
APIs
[]
- get_response()
Generate the response block of this request. Careful: it only sets the fields which can be set from the request
- class scapy.contrib.pnio_rpc.IOCRBlockRes(*args, **kargs)
Bases:
scapy.contrib.pnio_rpc.Block
IO Connection Relationship block response
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLOCK TYPE | BLOCK LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |BLOCK VERSION H|BLOCK VERSION L| IOCRTYPE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IOCRREFERENCE | FRAMEID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IOCRBlockRes
IOCRBlockRes fields block_type
33026
block_length
None
block_version_high
1
block_version_low
0
IOCRType
1
IOCRReference
1
FrameID
32768
- class scapy.contrib.pnio_rpc.IODControlReq(*args, **kargs)
Bases:
scapy.contrib.pnio_rpc.Block
IODControl request block
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLOCK TYPE | BLOCK LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |BLOCK VERSION H|BLOCK VERSION L| PADDING | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ARUUID | + + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SESSIONKEY | ALARMSEQUENCENUMBER | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |CONTROLCOMMAND RE|C|C|C|C|C|C|C| CONTROLBLOCKPROPERTIES | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IODControlReq
IODControlReq fields block_type
None
block_length
None
block_version_high
1
block_version_low
0
padding
b''
ARUUID
None
SessionKey
0
AlarmSequenceNumber
0
ControlCommand_reserved
BitField
(9 bits)0
ControlCommand_PrmBegin
BitField
(1 bit)0
ControlCommand_ReadyForRT_CLASS_3
BitField
(1 bit)0
ControlCommand_ReadyForCompanion
BitField
(1 bit)0
ControlCommand_Done
BitField
(1 bit)0
ControlCommand_Release
BitField
(1 bit)0
ControlCommand_ApplicationReady
BitField
(1 bit)0
ControlCommand_PrmEnd
BitField
(1 bit)0
ControlBlockProperties
0
- get_response()
Generate the response block of this request. Careful: it only sets the fields which can be set from the request
- post_build(p, pay)
- class scapy.contrib.pnio_rpc.IODControlRes(*args, **kargs)
Bases:
scapy.contrib.pnio_rpc.Block
IODControl response block
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLOCK TYPE | BLOCK LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |BLOCK VERSION H|BLOCK VERSION L| PADDING | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ARUUID | + + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SESSIONKEY | ALARMSEQUENCENUMBER | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |CONTROLCOMMAND RE|C|C|C|C|C|C|C| CONTROLBLOCKPROPERTIES | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IODControlRes
IODControlRes fields block_type
33040
block_length
None
block_version_high
1
block_version_low
0
padding
b''
ARUUID
None
SessionKey
0
AlarmSequenceNumber
0
ControlCommand_reserved
BitField
(9 bits)0
ControlCommand_PrmBegin
BitField
(1 bit)0
ControlCommand_ReadyForRT_CLASS_3
BitField
(1 bit)0
ControlCommand_ReadyForCompanion
BitField
(1 bit)0
ControlCommand_Done
BitField
(1 bit)1
ControlCommand_Release
BitField
(1 bit)0
ControlCommand_ApplicationReady
BitField
(1 bit)0
ControlCommand_PrmEnd
BitField
(1 bit)0
ControlBlockProperties
0
- class scapy.contrib.pnio_rpc.IODWriteMultipleReq(*args, **kargs)
Bases:
scapy.contrib.pnio_rpc.Block
IODWriteMultiple request
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLOCK TYPE | BLOCK LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |BLOCK VERSION H|BLOCK VERSION L| SEQNUM | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ARUUID | + + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | API | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SLOTNUMBER | SUBSLOTNUMBER | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PADDING | INDEX | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RECORDDATALENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RWPADDING | BLOCKS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IODWriteMultipleReq
IODWriteMultipleReq fields block_type
8
block_length
None
block_version_high
1
block_version_low
0
seqNum
0
ARUUID
None
API
4294967295
slotNumber
65535
subslotNumber
65535
padding
b''
index
57408
recordDataLength
None
RWPadding
b''
blocks
[]
- get_response()
Generate the response block of this request. Careful: it only sets the fields which can be set from the request
- post_build(p, pay)
- class scapy.contrib.pnio_rpc.IODWriteMultipleRes(*args, **kargs)
Bases:
scapy.contrib.pnio_rpc.Block
IODWriteMultiple response
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLOCK TYPE | BLOCK LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |BLOCK VERSION H|BLOCK VERSION L| SEQNUM | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ARUUID | + + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | API | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SLOTNUMBER | SUBSLOTNUMBER | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PADDING | INDEX | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RECORDDATALENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ADDITIONALVALUE1 | ADDITIONALVALUE2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | STATUS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RWPADDING | BLOCKS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IODWriteMultipleRes
IODWriteMultipleRes fields block_type
32776
block_length
None
block_version_high
1
block_version_low
0
seqNum
0
ARUUID
None
API
4294967295
slotNumber
65535
subslotNumber
65535
padding
b''
index
57408
recordDataLength
None
additionalValue1
0
additionalValue2
0
status
0
RWPadding
b''
blocks
[]
- post_build(p, pay)
- class scapy.contrib.pnio_rpc.IODWriteReq(*args, **kargs)
Bases:
scapy.contrib.pnio_rpc.Block
IODWrite request block
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLOCK TYPE | BLOCK LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |BLOCK VERSION H|BLOCK VERSION L| SEQNUM | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ARUUID | + + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | API | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SLOTNUMBER | SUBSLOTNUMBER | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PADDING | INDEX | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RECORDDATALENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RWPADDING | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IODWriteReq
IODWriteReq fields block_type
8
block_length
None
block_version_high
1
block_version_low
0
seqNum
0
ARUUID
None
API
0
slotNumber
0
subslotNumber
0
padding
b''
index
0
recordDataLength
None
RWPadding
b''
- get_response()
Generate the response block of this request. Careful: it only sets the fields which can be set from the request
- payload_guess
Possible sublayers:
FParametersBlock
- payload_length()
- class scapy.contrib.pnio_rpc.IODWriteRes(*args, **kargs)
Bases:
scapy.contrib.pnio_rpc.Block
IODWrite response block
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLOCK TYPE | BLOCK LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |BLOCK VERSION H|BLOCK VERSION L| SEQNUM | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ARUUID | + + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | API | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SLOTNUMBER | SUBSLOTNUMBER | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PADDING | INDEX | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RECORDDATALENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ADDITIONALVALUE1 | ADDITIONALVALUE2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | STATUS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RWPADDING | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. IODWriteRes
IODWriteRes fields block_type
32776
block_length
None
block_version_high
1
block_version_low
0
seqNum
0
ARUUID
None
API
0
slotNumber
0
subslotNumber
0
padding
b''
index
0
recordDataLength
None
additionalValue1
0
additionalValue2
0
status
0
RWPadding
b''
- class scapy.contrib.pnio_rpc.NDRData(*args, **kargs)
Bases:
scapy.packet.Packet
Base NDRData to centralize some fields. It can’t be instantiated
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ARGS LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MAX COUNT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OFFSET | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ACTUAL COUNT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLOCKS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. NDRData
NDRData fields args_length
None
max_count
None
offset
0
actual_count
None
blocks
[]
- class scapy.contrib.pnio_rpc.PNIOServiceReqPDU(*args, **kargs)
Bases:
scapy.packet.Packet
PNIO PDU for RPC Request
- aliastypes
- classmethod can_handle(pkt, rpc)
heuristic guess_payload_class
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ARGS MAX | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ARGS LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MAX COUNT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OFFSET | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ACTUAL COUNT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLOCKS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. PNIOServiceReqPDU
PNIOServiceReqPDU fields args_max
None
args_length
None
max_count
None
offset
0
actual_count
None
blocks
[]
- class scapy.contrib.pnio_rpc.PNIOServiceResPDU(*args, **kargs)
Bases:
scapy.packet.Packet
PNIO PDU for RPC Response
- aliastypes
- classmethod can_handle(pkt, rpc)
heuristic guess_payload_class
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | STATUS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ARGS LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MAX COUNT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OFFSET | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ACTUAL COUNT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLOCKS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. PNIOServiceResPDU
PNIOServiceResPDU fields status
0
args_length
None
max_count
None
offset
0
actual_count
None
blocks
[]
- class scapy.contrib.pnio_rpc.PadFieldWithLen(fld, align, padwith=None)
Bases:
scapy.fields.PadField
PadField which handles the i2len function to include padding
- i2len(pkt, val)
get the length of the field, including the padding length
- scapy.contrib.pnio_rpc.dce_rpc_endianess(pkt)
determine the symbol for the endianness of a the DCE/RPC