8.6.5.2 Test Procedure (revision 2.7, subset level 2)

Device under test: Step Function I/O dnp3 outstation

10:57:22.140 Running procedure: 8.6.5.2
10:57:22.141 step: 1
10:57:22.141 - Cycle power to the DUT
10:57:22.141 [PLG] Cycling power
10:57:22.142 step: 2
10:57:22.142 - Issue a RESET_LINK_STATES (0xC0) using link control block 0xC0
10:57:22.142 - Verify that the DUT answers with a well-formed link frame
10:57:22.142 - Verify that the frame uses link control block 0x00
10:57:22.142 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: RESET_LINK_STATES(0x00) 0xC0 length: 5 dest: 1024 src: 1
10:57:22.142 --P-> 05 64 05 C0 00 04 01 00 D7 F7
10:57:22.143 <-P-- 05 64 05 00 01 00 00 04 27 70
10:57:22.143 <-L-- master: 0 pri: 0 fcb: 0 fcv: 0 func: ACK(0x00) 0x00 length: 5 dest: 1 src: 1024
10:57:22.143 step: 3
10:57:22.143 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
10:57:22.143 - g60v2, All Objects
10:57:22.143 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
10:57:22.143 g60v2, All Objects
10:57:22.143 --T-> fir: 1 fin: 1 seq: 0
10:57:22.143 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
10:57:22.143 --P-> 05 64 0B C4 00 04 01 00 CA 8A
10:57:22.143 C0 C1 01 3C 02 06 52 C3
10:57:22.143 step: 4
10:57:22.143 - Read any number of valid responses beginning w/ sequence(0x01) and incrementing by 1 modulo 16
10:57:22.143 - Verify that the IIN field contains IIN(DeviceRestart)
10:57:22.143 - Verify that each fragment followed by another, or carrying events, asks for an application layer confirmation.
10:57:22.143 - Confirm each response that asks for a confirmation
10:57:22.143 <-P-- 05 64 0A 44 01 00 00 04 67 88
10:57:22.143 C0 C1 81 90 00 73 EE
10:57:22.143 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 10 dest: 1 src: 1024
10:57:22.143 <-T-- fir: 1 fin: 1 seq: 0
10:57:22.143 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01 IIN(DeviceRestart, NeedTime)
10:57:22.143 step: 5
10:57:22.143 - Write(0x02) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02 using link options: { control == 0xF3, destination == 0xFFFF }
10:57:22.143 - g80v1, 1-Byte Start/Stop, start: 7 stop: 7
10:57:22.143 - [7] - BooleanValue(false)
10:57:22.144 --A-> Write(0x02) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02
10:57:22.144 g80v1, 1-Byte Start/Stop, start: 7 stop: 7
10:57:22.144 [7] - BooleanValue(false)
10:57:22.144 --T-> fir: 1 fin: 1 seq: 0
10:57:22.144 --L-> master: 1 pri: 1 fcb: 1 fcv: 1 func: CONFIRMED_USER_DATA(0x03) 0xF3 length: 14 dest: 65535 src: 1
10:57:22.144 --P-> 05 64 0E F3 FF FF 01 00 CB AC
10:57:22.144 C0 C2 02 50 01 00 07 07 00 08 65
10:57:22.144 steps: 6 to 7
10:57:22.144 - Verify that no link layer frames are received within 2000 ms
10:57:24.146 frame receive timeout
10:57:24.146 step: 8
10:57:24.146 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03
10:57:24.146 - g60v2, All Objects
10:57:24.146 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03
10:57:24.146 g60v2, All Objects
10:57:24.146 --T-> fir: 1 fin: 1 seq: 0
10:57:24.146 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
10:57:24.146 --P-> 05 64 0B C4 00 04 01 00 CA 8A
10:57:24.146 C0 C3 01 3C 02 06 5E 85
10:57:24.147 steps: 9 to 10
10:57:24.147 - Read any number of valid responses beginning w/ sequence(0x03) and incrementing by 1 modulo 16
10:57:24.147 - Verify that the IIN field does not contain bits IIN(DeviceRestart)
10:57:24.147 - Verify that each fragment followed by another, or carrying events, asks for an application layer confirmation.
10:57:24.147 - Verify that the IIN field contains IIN(Broadcast)
10:57:24.147 - Confirm each response that asks for a confirmation
10:57:24.147 <-P-- 05 64 0A 44 01 00 00 04 67 88
10:57:24.147 C1 C3 81 11 00 BD B5
10:57:24.147 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 10 dest: 1 src: 1024
10:57:24.147 <-T-- fir: 1 fin: 1 seq: 1
10:57:24.147 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03 IIN(NeedTime, Broadcast)
10:57:24.148 step: 11
10:57:24.148 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04
10:57:24.148 - g60v2, All Objects
10:57:24.148 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04
10:57:24.148 g60v2, All Objects
10:57:24.148 --T-> fir: 1 fin: 1 seq: 0
10:57:24.148 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
10:57:24.148 --P-> 05 64 0B C4 00 04 01 00 CA 8A
10:57:24.148 C0 C4 01 3C 02 06 4C 6C
10:57:24.148 step: 12
10:57:24.148 - Read a single fragment response w/ sequence(0x04)
10:57:24.148 - Verify that the response is empty
10:57:24.148 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:57:24.148 - Verify that the IIN field does not contain bits IIN(DeviceRestart, Broadcast)
10:57:24.148 <-P-- 05 64 0A 44 01 00 00 04 67 88
10:57:24.148 C2 C4 81 10 00 93 AD
10:57:24.148 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 10 dest: 1 src: 1024
10:57:24.148 <-T-- fir: 1 fin: 1 seq: 2
10:57:24.148 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04 IIN(NeedTime)
10:57:24.148 Passed procedure: 8.6.5.2