1% Scapy OPC DA layer tests 2 3+ Test Request Packet 4= OpcDaRequest 5opcdaRequestPacket_Dissect = hex_bytes(b'050000830000000000640000000000150000003c000600050000c41d0a9c0000d7028c761299f7bf00000000') 6elem1 = raw(OpcDaMessage(opcdaRequestPacket_Dissect)) 7 8opcdaRequestPacket_Build = OpcDaMessage(OpcDaMessage= \ 9OpcDaHeaderMessage (versionMajor=5,versionMinor=0,pduType=0, \ 10 pfc_flags = 131,integerRepresentation='bigEndian',\ 11 characterRepresentation='ascii',floatingPointRepresentation='ieee',\ 12 res=0)/ OpcDaHeaderN(fragLength=100,authLength=0,callID=21)\ 13 / OpcDaRequest(allocHint=60,contextId=6,opNum=5,\ 14 uuid=b'0000c41d-0a9c-0000-d702-8c761299f7bf',stubData=RequestStubData(\ 15 versionMajor=0,versionMinor=0,stubdata=''))) 16elem2 = raw(opcdaRequestPacket_Build) 17 18assert elem1 == elem2 19 20= OpcDaRequestLE 21opcdaRequestLEPacket_Dissect = hex_bytes(b'050000831000000064000000150000003c000000060005001dc400009c0a0000d7028c761299f7bf000000000000000000000000512d4e34ab431449a2cf7784b21b3ea1') 22elem1 = raw(OpcDaMessage(opcdaRequestLEPacket_Dissect)) 23 24opcdaRequestLEPacket_Build = OpcDaMessage(OpcDaMessage= \ 25OpcDaHeaderMessage (versionMajor=5,versionMinor=0,pduType=0, \ 26 pfc_flags = 131,integerRepresentation='littleEndian',\ 27 characterRepresentation='ascii',floatingPointRepresentation='ieee',\ 28 res=0)/ OpcDaHeaderNLE(fragLength=100,authLength=0,callID=21)\ 29 / OpcDaRequestLE (allocHint=60,contextId=6,opNum=5,\ 30 uuid=b'0000c41d-0a9c-0000-d702-8c761299f7bf',\ 31 stubData=RequestStubDataLE(versionMajor=0,versionMinor=0,\ 32 stubdata=b'\x00\x00\x00\x00\x00\x00\x00\x00Q-N4\xabC\x14I\xa2\xcfw\x84\xb2\x1b>\xa1'))) 33elem2 = raw(opcdaRequestLEPacket_Build) 34 35assert elem1 == elem2 36 37 38+ Test Ping Packet 39= OpcDaPing 40opcdaPingPacket_Dissect = hex_bytes(b'0500010310000000640000001500000000') 41elem1 = raw(OpcDaMessage(opcdaPingPacket_Dissect)) 42 43opcdaPingPacket_Build = OpcDaMessage(OpcDaMessage= \ 44 OpcDaHeaderMessage (versionMajor=5,versionMinor=0,pduType=1, \ 45 pfc_flags = 3,integerRepresentation='littleEndian',\ 46 characterRepresentation='ascii',floatingPointRepresentation='ieee',\ 47 res=0)/ OpcDaHeaderNLE(fragLength=100,authLength=0,callID=21)\ 48 / OpcDaPing()) / '\x00' 49elem2 = raw(opcdaPingPacket_Build) 50 51assert elem1 == elem2 52 53 54+ Test Response Packets 55= OpcDaResponse 56opcDaResponsePacket_Dissect = hex_bytes(b'050002030000000000d4000000000015000000bc00060000303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030') 57elem1 = raw(OpcDaMessage(opcDaResponsePacket_Dissect)) 58 59opcDaResponsePacket_Build = OpcDaMessage(OpcDaMessage= \ 60 OpcDaHeaderMessage (versionMajor=5,versionMinor=0,pduType=2, \ 61 pfc_flags = 3,integerRepresentation='bigEndian',\ 62 characterRepresentation='ascii',floatingPointRepresentation='ieee',\ 63 res=0)/ OpcDaHeaderN(fragLength=212,authLength=0,callID=21)\ 64 / OpcDaResponse(allocHint=188,contextId=6,cancelCount=0,reserved=0,\ 65 stubData=b'0'*(212-32))) 66elem2 = raw(opcDaResponsePacket_Build) 67 68assert elem1 == elem2 69 70= OpcDaResponseLE 71opcDaResponseLEPacket_Dissect = hex_bytes(b'0500020310000000d400000015000000bc00000006000000303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030') 72elem1 = raw(OpcDaMessage(opcDaResponseLEPacket_Dissect)) 73 74opcDaResponseLEPacket_Build = OpcDaMessage(OpcDaMessage= \ 75 OpcDaHeaderMessage (versionMajor=5,versionMinor=0,pduType=2, \ 76 pfc_flags = 3,integerRepresentation='littleEndian',\ 77 characterRepresentation='ascii',floatingPointRepresentation='ieee',\ 78 res=0)/ OpcDaHeaderNLE(fragLength=212,authLength=0,callID=21)\ 79 / OpcDaResponseLE(allocHint=188,contextId=6,cancelCount=0,reserved=0,\ 80 stubData=b'0'*(212-32))) 81elem2 = raw(opcDaResponseLEPacket_Build) 82 83assert elem1 == elem2 84 85# + Test Fault Packet 86# No example yet 87# OpcDaFault 88# OpcDaFaultLE 89 90# + Test Working 91# No example yet 92# OpcDaWorking 93 94# + Test No Call Packet 95# No example yet 96# OpcDaNoCall 97# OpcDaNoCallLE 98 99# + Test Reject Packet 100# No example yet 101# OpcDaReject 102# OpcDaRejectLE 103 104# + Test Ack Packet 105# No example yet 106# OpcDaAck 107 108# + Test Cl_cancel Packet 109# No example yet 110# OpcDaCl_cancel 111# OpcDaCl_cancelLE 112 113# + Test Fack Packet 114# No example yet 115# OpcDaFack 116 117# + Test Cancel ack Packet 118# No example yet 119# OpcDaCancel_ack 120# OpcDaCancel_ackLE 121 122# + Test Bind Packet 123# OpcDaBind 124# OpcDaBindLE 125 126# + Test Bind ack Packet 127# OpcDaBind_ack 128 129# + Test Bind no ack Packet 130# No example yet 131# OpcDaBind_nack 132 133 134+ Test Alter_context 135= OpcDaAlter_context 136opcDaAlter_contextPacket_Dissect = hex_bytes(b'05000e0300000000004800000000001716d016d00008294500000001070001000101000000000000c00000000000004600000000045d888aeb1cc9119fe808002b10486002000000') 137elem1 = raw(OpcDaMessage(opcDaAlter_contextPacket_Dissect)) 138 139ocDaAlter_contextPacket_Build = OpcDaMessage(OpcDaMessage= \ 140 OpcDaHeaderMessage (versionMajor=5,versionMinor=0,pduType=14, \ 141 pfc_flags = 3,integerRepresentation='bigEndian',\ 142 characterRepresentation='ascii',floatingPointRepresentation='ieee',\ 143 res=0)/ OpcDaHeaderN(fragLength=72,authLength=0,callID=23)\ 144 / OpcDaAlter_context(maxXmitFrag=5840,maxRecvtFrag=5840,\ 145 assocGroupId=534853)) \ 146 / '\x00\x00\x00\x01\x07\x00\x01\x00\x01\x01\x00\x00\x00\x00\x00\x00\xc0'\ 147 '\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x04\x5d\x88\x8a\xeb\x1c\xc9'\ 148 '\x11\x9f\xe8\x08\x00\x2b\x10\x48\x60\x02\x00\x00\x00' 149elem2 = raw(ocDaAlter_contextPacket_Build) 150 151= OpcDaAlter_contextLE 152opcDaAlter_contextLEPacket_Dissect = hex_bytes(b'05000e03100000004800000017000000d016d0164529080001000000070001000101000000000000c00000000000004600000000045d888aeb1cc9119fe808002b10486002000000') 153elem1 = raw(OpcDaMessage(opcDaAlter_contextLEPacket_Dissect)) 154 155ocDaAlter_contextLEPacket_Build = OpcDaMessage(OpcDaMessage= \ 156 OpcDaHeaderMessage (versionMajor=5,versionMinor=0,pduType=14, \ 157 pfc_flags = 3,integerRepresentation='littleEndian',\ 158 characterRepresentation='ascii',floatingPointRepresentation='ieee',\ 159 res=0)/ OpcDaHeaderNLE(fragLength=72,authLength=0,callID=23)\ 160 / OpcDaAlter_contextLE(maxXmitFrag=5840,maxRecvtFrag=5840,\ 161 assocGroupId=534853)) \ 162 / '\x01\x00\x00\x00\x07\x00\x01\x00\x01\x01\x00\x00\x00\x00\x00\x00\xc0'\ 163 '\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x04\x5d\x88\x8a\xeb\x1c\xc9'\ 164 '\x11\x9f\xe8\x08\x00\x2b\x10\x48\x60\x02\x00\x00\x00' 165elem2 = raw(ocDaAlter_contextLEPacket_Build) 166 167+ Test Alter_context_Resp 168= OpcDaAlter_Context_Resp 169= OpcDaAlter_Context_RespLE 170 171# + Test Shutdown Packet 172# No example yet 173# OpcDaShutdown 174 175# + Test Co_cancel Packet 176# No example yet 177# OpcDaCo_cancel 178# OpcDaCo_cancelLE 179 180# + Test Orphaned Packet 181# No example yet 182# OpcDaOrphaned 183