8.6.5.2 Test Procedure (revision 2.7, subset level 2)

Device under test: Step Function I/O dnp3 outstation

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