scapy.contrib.pnio_rpc¶
PNIO RPC endpoints
-
class
scapy.contrib.pnio_rpc.ARBlockReq(*args, **kargs)¶ Bases:
scapy.contrib.pnio_rpc.BlockApplication 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. ARBlockReqARBlockReq fields¶ block_type
257block_length
Noneblock_version_high
1block_version_low
0ARType
1ARUUID
NoneSessionKey
0CMInitiatorMacAdd
NoneCMInitiatorObjectUUID
NoneARProperties_PullModuleAlarmAllowed
BitField(1 bit)0ARProperties_StartupMode
BitEnumField(1 bit)0ARProperties_reserved_3
BitField(6 bits)0ARProperties_reserved_2
BitField(12 bits)0ARProperties_AcknowledgeCompanionAR
BitField(1 bit)0ARProperties_CompanionAR
BitEnumField(2 bits)0ARProperties_DeviceAccess
BitEnumField(1 bit)0ARProperties_reserved_1
BitField(3 bits)0ARProperties_ParametrizationServer
BitEnumField(1 bit)0ARProperties_SupervisorTakeoverAllowed
BitField(1 bit)0ARProperties_State
BitEnumField(3 bits)1CMInitiatorActivityTimeoutFactor
1000CMInitiatorUDPRTPort
34962StationNameLength
NoneCMInitiatorStationName
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.BlockApplication 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. ARBlockResARBlockRes fields¶ block_type
33025block_length
Noneblock_version_high
1block_version_low
0ARType
1ARUUID
NoneSessionKey
0CMResponderMacAdd
NoneCMResponderUDPRTPort
34962
-
-
class
scapy.contrib.pnio_rpc.Block(*args, **kargs)¶ Bases:
scapy.packet.PacketA 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. BlockBlock fields¶ block_type
0block_length
Noneblock_version_high
1block_version_low
0load
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.PacketAbstract 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. BlockHeaderBlockHeader fields¶ block_type
Noneblock_length
Noneblock_version_high
1block_version_low
0
-
-
class
scapy.contrib.pnio_rpc.ExpectedSubmodule(*args, **kargs)¶ Bases:
scapy.packet.PacketDescription 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. ExpectedSubmoduleExpectedSubmodule fields¶ SubslotNumber
0SubmoduleIdentNumber
0SubmoduleProperties_reserved_2
0SubmoduleProperties_reserved_1
BitField(2 bits)0SubmoduleProperties_DiscardIOXS
BitField(1 bit)0SubmoduleProperties_ReduceOutputSubmoduleDataLength
BitField(1 bit)0SubmoduleProperties_ReduceInputSubmoduleDataLength
BitField(1 bit)0SubmoduleProperties_SharedInput
BitField(1 bit)0SubmoduleProperties_Type
BitEnumField(2 bits)0DataDescription
[]
-
-
class
scapy.contrib.pnio_rpc.ExpectedSubmoduleAPI(*args, **kargs)¶ Bases:
scapy.packet.PacketDescription 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. ExpectedSubmoduleAPIExpectedSubmoduleAPI fields¶ API
0SlotNumber
0ModuleIdentNumber
0ModuleProperties
0NumberOfSubmodules
NoneSubmodules
[]
-
-
class
scapy.contrib.pnio_rpc.ExpectedSubmoduleBlockReq(*args, **kargs)¶ Bases:
scapy.contrib.pnio_rpc.BlockExpected 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. ExpectedSubmoduleBlockReqExpectedSubmoduleBlockReq fields¶ block_type
260block_length
Noneblock_version_high
1block_version_low
0NumberOfAPIs
NoneAPIs
[]
-
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.PacketDescription 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. ExpectedSubmoduleDataDescriptionExpectedSubmoduleDataDescription fields¶ DataDescription
0SubmoduleDataLength
0LengthIOCS
0LengthIOPS
0
-
-
class
scapy.contrib.pnio_rpc.FParametersBlock(*args, **kargs)¶ Bases:
scapy.packet.PacketF-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. FParametersBlockFParametersBlock fields¶ F_Prm_Flag1_Reserved_7
BitField(1 bit)0F_CRC_Seed
BitField(1 bit)0F_CRC_Length
BitEnumField(2 bits)0F_SIL
BitEnumField(2 bits)2F_Check_iPar
BitField(1 bit)0F_Check_SeqNr
BitField(1 bit)0F_Par_Version
BitEnumField(2 bits)1F_Block_ID
BitEnumField(3 bits)0F_Prm_Flag2_Reserved
BitField(2 bits)0F_Passivation
BitField(1 bit)0F_Source_Add
0F_Dest_Add
0F_WD_Time
0F_WD_Time_2
ShortField(Cond)0F_iPar_CRC
XIntField(Cond)0F_Par_CRC
0
-
-
class
scapy.contrib.pnio_rpc.IOCRAPI(*args, **kargs)¶ Bases:
scapy.packet.PacketAPI 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. IOCRAPIIOCRAPI fields¶ API
0NumberOfIODataObjects
NoneIODataObjects
[]NumberOfIOCS
NoneIOCSs
[]
-
-
class
scapy.contrib.pnio_rpc.IOCRAPIObject(*args, **kargs)¶ Bases:
scapy.packet.PacketAPI 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. IOCRAPIObjectIOCRAPIObject fields¶ SlotNumber
0SubslotNumber
0FrameOffset
0
-
-
class
scapy.contrib.pnio_rpc.IOCRBlockReq(*args, **kargs)¶ Bases:
scapy.contrib.pnio_rpc.BlockIO 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. IOCRBlockReqIOCRBlockReq fields¶ block_type
258block_length
Noneblock_version_high
1block_version_low
0IOCRType
1IOCRReference
1LT
34962IOCRProperties_reserved3
BitField(8 bits)0IOCRProperties_reserved2
BitField(11 bits)0IOCRProperties_reserved1
BitField(9 bits)0IOCRProperties_RTClass
BitEnumField(4 bits)0DataLength
40FrameID
32768SendClockFactor
32ReductionRatio
32Phase
1Sequence
0FrameSendOffset
4294967295WatchdogFactor
10DataHoldFactor
10IOCRTagHeader_IOUserPriority
BitEnumField(3 bits)6IOCRTagHeader_reserved
BitField(1 bit)0IOCRTagHeader_IOCRVLANID
BitField(12 bits)0IOCRMulticastMACAdd
NoneNumberOfAPIs
NoneAPIs
[]
-
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.BlockIO 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. IOCRBlockResIOCRBlockRes fields¶ block_type
33026block_length
Noneblock_version_high
1block_version_low
0IOCRType
1IOCRReference
1FrameID
32768
-
-
class
scapy.contrib.pnio_rpc.IODControlReq(*args, **kargs)¶ Bases:
scapy.contrib.pnio_rpc.BlockIODControl 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. IODControlReqIODControlReq fields¶ block_type
Noneblock_length
Noneblock_version_high
1block_version_low
0padding
b''ARUUID
NoneSessionKey
0AlarmSequenceNumber
0ControlCommand_reserved
BitField(9 bits)0ControlCommand_PrmBegin
BitField(1 bit)0ControlCommand_ReadyForRT_CLASS_3
BitField(1 bit)0ControlCommand_ReadyForCompanion
BitField(1 bit)0ControlCommand_Done
BitField(1 bit)0ControlCommand_Release
BitField(1 bit)0ControlCommand_ApplicationReady
BitField(1 bit)0ControlCommand_PrmEnd
BitField(1 bit)0ControlBlockProperties
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.BlockIODControl 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. IODControlResIODControlRes fields¶ block_type
33040block_length
Noneblock_version_high
1block_version_low
0padding
b''ARUUID
NoneSessionKey
0AlarmSequenceNumber
0ControlCommand_reserved
BitField(9 bits)0ControlCommand_PrmBegin
BitField(1 bit)0ControlCommand_ReadyForRT_CLASS_3
BitField(1 bit)0ControlCommand_ReadyForCompanion
BitField(1 bit)0ControlCommand_Done
BitField(1 bit)1ControlCommand_Release
BitField(1 bit)0ControlCommand_ApplicationReady
BitField(1 bit)0ControlCommand_PrmEnd
BitField(1 bit)0ControlBlockProperties
0
-
-
class
scapy.contrib.pnio_rpc.IODWriteMultipleReq(*args, **kargs)¶ Bases:
scapy.contrib.pnio_rpc.BlockIODWriteMultiple 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. IODWriteMultipleReqIODWriteMultipleReq fields¶ block_type
8block_length
Noneblock_version_high
1block_version_low
0seqNum
0ARUUID
NoneAPI
4294967295slotNumber
65535subslotNumber
65535padding
b''index
57408recordDataLength
NoneRWPadding
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.BlockIODWriteMultiple 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. IODWriteMultipleResIODWriteMultipleRes fields¶ block_type
32776block_length
Noneblock_version_high
1block_version_low
0seqNum
0ARUUID
NoneAPI
4294967295slotNumber
65535subslotNumber
65535padding
b''index
57408recordDataLength
NoneadditionalValue1
0additionalValue2
0status
0RWPadding
b''blocks
[]
-
post_build(p, pay)¶
-
-
class
scapy.contrib.pnio_rpc.IODWriteReq(*args, **kargs)¶ Bases:
scapy.contrib.pnio_rpc.BlockIODWrite 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. IODWriteReqIODWriteReq fields¶ block_type
8block_length
Noneblock_version_high
1block_version_low
0seqNum
0ARUUID
NoneAPI
0slotNumber
0subslotNumber
0padding
b''index
0recordDataLength
NoneRWPadding
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.BlockIODWrite 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. IODWriteResIODWriteRes fields¶ block_type
32776block_length
Noneblock_version_high
1block_version_low
0seqNum
0ARUUID
NoneAPI
0slotNumber
0subslotNumber
0padding
b''index
0recordDataLength
NoneadditionalValue1
0additionalValue2
0status
0RWPadding
b''
-
-
class
scapy.contrib.pnio_rpc.NDRData(*args, **kargs)¶ Bases:
scapy.packet.PacketBase 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. NDRDataNDRData fields¶ args_length
Nonemax_count
Noneoffset
0actual_count
Noneblocks
[]
-
-
class
scapy.contrib.pnio_rpc.PNIOServiceReqPDU(*args, **kargs)¶ Bases:
scapy.packet.PacketPNIO 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. PNIOServiceReqPDUPNIOServiceReqPDU fields¶ args_max
Noneargs_length
Nonemax_count
Noneoffset
0actual_count
Noneblocks
[]
-
-
class
scapy.contrib.pnio_rpc.PNIOServiceResPDU(*args, **kargs)¶ Bases:
scapy.packet.PacketPNIO 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. PNIOServiceResPDUPNIOServiceResPDU fields¶ status
0args_length
Nonemax_count
Noneoffset
0actual_count
Noneblocks
[]
-
-
class
scapy.contrib.pnio_rpc.PadFieldWithLen(fld, align, padwith=None)¶ Bases:
scapy.fields.PadFieldPadField 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