8.11.2a Unsolicited Response Configuration/Startup (revision 3.1r1, subset level 3)

Device under test: Step Function I/O dnp3 outstation

10:58:15.557 Running procedure: 8.11.2a
10:58:15.560 This procedure is enabled because the following options:
10:58:15.560 - supports.unsolicitedResponse == true
10:58:15.560 step: 1
10:58:15.560 - Verify that offline configuration can enable or disable unsolicited responses
10:58:15.560 - Configure the unsolicited response mode to 'true'
10:58:15.560 [PLG] Unsolicited responses were enabled
10:58:15.560 [PLG] Cycling power
10:58:15.561 step: 2
10:58:15.561 - Not verified by this tool: that offline configuration can set the unsolicited confirmation timeout from 1 second or less to 1 minute or more
10:58:15.561 step: 3
10:58:15.561 - Set the unsolicited confirmation timeout to 2000 milliseconds (to follow the test spec, prefer 5 seconds in the configuration)
10:58:15.561 [PLG] Confirm timeout, for solicited and unsolicited responses, was set to 2000 ms
10:58:15.561 [PLG] Cycling power
10:58:15.562 step: 4
10:58:15.562 - Verify that offline configuration can set the destination master address for unsolicited responses
10:58:15.562 - Configure the DUT to transmit unsolicited responses to master address 2
10:58:15.562 [PLG] Master address was set to 2
10:58:15.562 [PLG] Cycling power
10:58:15.564 step: 5
10:58:15.564 - Cycle power to the DUT
10:58:15.564 [PLG] Cycling power
10:58:15.565 step: 6
10:58:15.565 - Read an unsolicited response
10:58:15.565 - Verify that the response is empty
10:58:15.565 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:58:15.565 <-P-- 05 64 0A 44 02 00 00 04 26 82
10:58:15.565 C0 F0 82 90 00 43 A2
10:58:15.566 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 10 dest: 2 src: 1024
10:58:15.566 <-T-- fir: 1 fin: 1 seq: 0
10:58:15.566 <-A-- Unsolicited Response(0x82) fir: 1 fin: 1 con: 1 uns: 1 seq: 0x00 IIN(DeviceRestart, NeedTime)
10:58:15.566 step: 7
10:58:15.566 - Configure the DUT to transmit unsolicited responses to master address 1
10:58:15.566 [PLG] Master address was set to 1
10:58:15.566 [PLG] Cycling power
10:58:15.566 step: 8
10:58:15.566 - Cycle power to the DUT
10:58:15.566 [PLG] Cycling power
10:58:15.567 steps: 9 to 14
10:58:15.567 - Read an unsolicited response
10:58:15.567 - Verify that the IIN field contains IIN(DeviceRestart)
10:58:15.567 - Verify that the response is empty
10:58:15.567 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:58:15.567 - Leave the response unconfirmed for now
10:58:15.568 <-P-- 05 64 0A 44 01 00 00 04 67 88
10:58:15.568 C0 F0 82 90 00 43 A2
10:58:15.568 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 10 dest: 1 src: 1024
10:58:15.568 <-T-- fir: 1 fin: 1 seq: 0
10:58:15.568 <-A-- Unsolicited Response(0x82) fir: 1 fin: 1 con: 1 uns: 1 seq: 0x00 IIN(DeviceRestart, NeedTime)
10:58:15.568 steps: 15 to 18
10:58:15.568 - Expect a retry 2000 ms (+/- 500 ms) after the previous unsolicited response
10:58:15.568 - Verify that the IIN field contains IIN(DeviceRestart)
10:58:15.568 - Verify that the response is empty
10:58:15.568 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:58:15.568 - Expect a retry 2000 ms (+/- 500 ms) after the previous unsolicited response
10:58:15.568 - Verify that the IIN field contains IIN(DeviceRestart)
10:58:15.568 - Verify that the response is empty
10:58:15.568 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:58:17.569 <-P-- 05 64 0A 44 01 00 00 04 67 88
10:58:17.569 C1 F1 82 90 00 AD 43
10:58:17.569 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 10 dest: 1 src: 1024
10:58:17.569 <-T-- fir: 1 fin: 1 seq: 1
10:58:17.569 <-A-- Unsolicited Response(0x82) fir: 1 fin: 1 con: 1 uns: 1 seq: 0x01 IIN(DeviceRestart, NeedTime)
10:58:19.570 <-P-- 05 64 0A 44 01 00 00 04 67 88
10:58:19.570 C2 F2 82 90 00 E6 2C
10:58:19.570 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 10 dest: 1 src: 1024
10:58:19.570 <-T-- fir: 1 fin: 1 seq: 2
10:58:19.570 <-A-- Unsolicited Response(0x82) fir: 1 fin: 1 con: 1 uns: 1 seq: 0x02 IIN(DeviceRestart, NeedTime)
10:58:19.570 step: 19
10:58:19.570 - Write(0x02) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00
10:58:19.570 - g80v1, 1-Byte Start/Stop, start: 7 stop: 7
10:58:19.570 - [7] - BooleanValue(false)
10:58:19.570 --A-> Write(0x02) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00
10:58:19.570 g80v1, 1-Byte Start/Stop, start: 7 stop: 7
10:58:19.570 [7] - BooleanValue(false)
10:58:19.570 --T-> fir: 1 fin: 1 seq: 0
10:58:19.570 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 14 dest: 1024 src: 1
10:58:19.570 --P-> 05 64 0E C4 00 04 01 00 43 72
10:58:19.570 C0 C0 02 50 01 00 07 07 00 2C 49
10:58:19.570 step: 20
10:58:19.570 - Read a single fragment response w/ sequence(0x00)
10:58:19.570 - Verify that the response is empty
10:58:19.570 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:58:19.570 - Verify that the IIN field does not contain bits IIN(DeviceRestart)
10:58:19.570 <-P-- 05 64 0A 44 01 00 00 04 67 88
10:58:19.570 C3 C0 81 10 00 BE 52
10:58:19.571 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 10 dest: 1 src: 1024
10:58:19.571 <-T-- fir: 1 fin: 1 seq: 3
10:58:19.571 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00 IIN(NeedTime)
10:58:19.571 steps: 21 to 22
10:58:19.571 - Expect a retry 2000 ms (+/- 500 ms) after the previous unsolicited response
10:58:19.571 - Verify that the response is empty
10:58:19.571 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:58:19.571 - Verify that the IIN field does not contain bits IIN(DeviceRestart)
10:58:21.571 <-P-- 05 64 0A 44 01 00 00 04 67 88
10:58:21.571 C4 F3 82 10 00 35 3F
10:58:21.571 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 10 dest: 1 src: 1024
10:58:21.571 <-T-- fir: 1 fin: 1 seq: 4
10:58:21.571 <-A-- Unsolicited Response(0x82) fir: 1 fin: 1 con: 1 uns: 1 seq: 0x03 IIN(NeedTime)
10:58:21.572 step: 23
10:58:21.572 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
10:58:21.572 - g60v1, All Objects
10:58:21.572 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
10:58:21.572 g60v1, All Objects
10:58:21.572 --T-> fir: 1 fin: 1 seq: 0
10:58:21.572 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
10:58:21.572 --P-> 05 64 0B C4 00 04 01 00 CA 8A
10:58:21.572 C0 C1 01 3C 01 06 F9 73
10:58:21.572 step: 24
10:58:21.572 - The DUT may defer its response until the startup unsolicited response is confirmed or its confirm timeout expires, so wait up to 4500 ms for it (the response timeout, the unsolicited confirm timeout and 500 ms)
10:58:21.572 - Read any number of valid responses beginning w/ sequence(0x01) and incrementing by 1 modulo 16
10:58:21.572 - Confirm each response that asks for a confirmation
10:58:23.573 <-P-- 05 64 E0 44 01 00 00 04 70 7A
10:58:23.573 C5 C1 81 10 00 01 01 01 00 00 0B 00 00 00 0A 02 85 F0
10:58:23.573 01 00 00 13 00 01 01 01 01 01 01 01 01 01 01 01 96 07
10:58:23.573 01 01 01 01 01 01 01 01 01 14 02 01 00 00 09 00 26 7E
10:58:23.573 01 00 00 01 00 00 01 00 00 01 00 00 01 00 00 01 FE 85
10:58:23.573 00 00 01 00 00 01 00 00 01 00 00 01 00 00 15 02 85 CD
10:58:23.573 01 00 00 09 00 01 00 00 01 00 00 01 00 00 01 00 B6 06
10:58:23.573 00 01 00 00 01 00 00 01 00 00 01 00 00 01 00 00 9E 0F
10:58:23.573 01 00 00 1E 02 01 00 00 09 00 01 00 00 01 00 00 0A 10
10:58:23.573 01 00 00 01 00 00 01 00 00 01 00 00 01 00 00 01 FE 85
10:58:23.573 00 00 01 00 00 01 00 00 28 02 01 00 00 13 00 01 EF FE
10:58:23.573 00 00 01 00 00 01 00 00 01 00 00 01 00 00 01 00 DB 49
10:58:23.573 00 01 00 00 01 00 00 01 00 00 01 00 00 01 00 00 9E 0F
10:58:23.573 01 00 00 01 00 00 01 00 00 01 00 00 01 00 00 01 FE 85
10:58:23.573 00 00 01 00 00 01 00 00 01 00 00 61 8D
10:58:23.573 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 224 dest: 1 src: 1024
10:58:23.573 <-T-- fir: 1 fin: 1 seq: 5
10:58:23.574 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01 IIN(NeedTime)
10:58:23.574 g1v1, 2-Byte Start/Stop, start: 0 stop: 11
10:58:23.574 [0] - BooleanValue(false)
10:58:23.574 [1] - BooleanValue(false)
10:58:23.574 [2] - BooleanValue(false)
10:58:23.574 [3] - BooleanValue(false)
10:58:23.574 [4] - BooleanValue(false)
10:58:23.574 [5] - BooleanValue(false)
10:58:23.574 [6] - BooleanValue(false)
10:58:23.574 [7] - BooleanValue(false)
10:58:23.574 [8] - BooleanValue(false)
10:58:23.574 [9] - BooleanValue(false)
10:58:23.574 [10] - BooleanValue(false)
10:58:23.574 [11] - BooleanValue(false)
10:58:23.574 g10v2, 2-Byte Start/Stop, start: 0 stop: 19
10:58:23.574 [0] - flags: 0x01
10:58:23.574 [1] - flags: 0x01
10:58:23.574 [2] - flags: 0x01
10:58:23.574 [3] - flags: 0x01
10:58:23.574 [4] - flags: 0x01
10:58:23.574 [5] - flags: 0x01
10:58:23.574 [6] - flags: 0x01
10:58:23.574 [7] - flags: 0x01
10:58:23.574 [8] - flags: 0x01
10:58:23.574 [9] - flags: 0x01
10:58:23.574 [10] - flags: 0x01
10:58:23.574 [11] - flags: 0x01
10:58:23.574 [12] - flags: 0x01
10:58:23.574 [13] - flags: 0x01
10:58:23.574 [14] - flags: 0x01
10:58:23.574 [15] - flags: 0x01
10:58:23.574 [16] - flags: 0x01
10:58:23.574 [17] - flags: 0x01
10:58:23.574 [18] - flags: 0x01
10:58:23.574 [19] - flags: 0x01
10:58:23.574 g20v2, 2-Byte Start/Stop, start: 0 stop: 9
10:58:23.574 [0] - flags: 0x01 count: 0
10:58:23.574 [1] - flags: 0x01 count: 0
10:58:23.574 [2] - flags: 0x01 count: 0
10:58:23.574 [3] - flags: 0x01 count: 0
10:58:23.574 [4] - flags: 0x01 count: 0
10:58:23.574 [5] - flags: 0x01 count: 0
10:58:23.574 [6] - flags: 0x01 count: 0
10:58:23.574 [7] - flags: 0x01 count: 0
10:58:23.574 [8] - flags: 0x01 count: 0
10:58:23.574 [9] - flags: 0x01 count: 0
10:58:23.574 g21v2, 2-Byte Start/Stop, start: 0 stop: 9
10:58:23.574 [0] - flags: 0x01 count: 0
10:58:23.574 [1] - flags: 0x01 count: 0
10:58:23.574 [2] - flags: 0x01 count: 0
10:58:23.574 [3] - flags: 0x01 count: 0
10:58:23.574 [4] - flags: 0x01 count: 0
10:58:23.574 [5] - flags: 0x01 count: 0
10:58:23.574 [6] - flags: 0x01 count: 0
10:58:23.574 [7] - flags: 0x01 count: 0
10:58:23.574 [8] - flags: 0x01 count: 0
10:58:23.574 [9] - flags: 0x01 count: 0
10:58:23.574 g30v2, 2-Byte Start/Stop, start: 0 stop: 9
10:58:23.574 [0] - flags: 0x01 value: 0
10:58:23.574 [1] - flags: 0x01 value: 0
10:58:23.574 [2] - flags: 0x01 value: 0
10:58:23.574 [3] - flags: 0x01 value: 0
10:58:23.574 [4] - flags: 0x01 value: 0
10:58:23.574 [5] - flags: 0x01 value: 0
10:58:23.574 [6] - flags: 0x01 value: 0
10:58:23.574 [7] - flags: 0x01 value: 0
10:58:23.574 [8] - flags: 0x01 value: 0
10:58:23.574 [9] - flags: 0x01 value: 0
10:58:23.574 g40v2, 2-Byte Start/Stop, start: 0 stop: 19
10:58:23.574 [0] - flags: 0x01 value: 0
10:58:23.574 [1] - flags: 0x01 value: 0
10:58:23.574 [2] - flags: 0x01 value: 0
10:58:23.574 [3] - flags: 0x01 value: 0
10:58:23.574 [4] - flags: 0x01 value: 0
10:58:23.574 [5] - flags: 0x01 value: 0
10:58:23.574 [6] - flags: 0x01 value: 0
10:58:23.574 [7] - flags: 0x01 value: 0
10:58:23.574 [8] - flags: 0x01 value: 0
10:58:23.574 [9] - flags: 0x01 value: 0
10:58:23.574 [10] - flags: 0x01 value: 0
10:58:23.574 [11] - flags: 0x01 value: 0
10:58:23.574 [12] - flags: 0x01 value: 0
10:58:23.574 [13] - flags: 0x01 value: 0
10:58:23.574 [14] - flags: 0x01 value: 0
10:58:23.574 [15] - flags: 0x01 value: 0
10:58:23.574 [16] - flags: 0x01 value: 0
10:58:23.574 [17] - flags: 0x01 value: 0
10:58:23.574 [18] - flags: 0x01 value: 0
10:58:23.574 [19] - flags: 0x01 value: 0
10:58:23.575 The answer to the READ arrived 2002 ms after the unconfirmed unsolicited response, whose confirm timeout is 2000 ms
10:58:23.575 steps: 25 to 26
10:58:23.575 - Expect a retry 2000 ms (+/- 500 ms) after the previous unsolicited response
10:58:23.575 - Verify that the response is empty
10:58:23.575 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:58:23.575 - Answer a response that asks for a confirmation with a confirmation of the wrong sequence number
10:58:23.575 <-P-- 05 64 0A 44 01 00 00 04 67 88
10:58:23.575 C6 F4 82 10 00 53 AF
10:58:23.575 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 10 dest: 1 src: 1024
10:58:23.575 <-T-- fir: 1 fin: 1 seq: 6
10:58:23.575 <-A-- Unsolicited Response(0x82) fir: 1 fin: 1 con: 1 uns: 1 seq: 0x04 IIN(NeedTime)
10:58:23.575 --A-> Confirm(0x00) fir: 1 fin: 1 con: 0 uns: 1 seq: 0x05
10:58:23.575 --T-> fir: 1 fin: 1 seq: 0
10:58:23.575 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 8 dest: 1024 src: 1
10:58:23.575 --P-> 05 64 08 C4 00 04 01 00 9A 19
10:58:23.575 C0 D5 00 9F D5
10:58:23.575 steps: 27 to 28
10:58:23.575 - Expect a retry 2000 ms (+/- 500 ms) after the previous unsolicited response
10:58:23.575 - Verify that the response is empty
10:58:23.575 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:58:23.575 - Confirm each response that asks for a confirmation
10:58:25.574 <-P-- 05 64 0A 44 01 00 00 04 67 88
10:58:25.574 C7 F5 82 10 00 BD 4E
10:58:25.574 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 10 dest: 1 src: 1024
10:58:25.574 <-T-- fir: 1 fin: 1 seq: 7
10:58:25.574 <-A-- Unsolicited Response(0x82) fir: 1 fin: 1 con: 1 uns: 1 seq: 0x05 IIN(NeedTime)
10:58:25.574 --A-> Confirm(0x00) fir: 1 fin: 1 con: 0 uns: 1 seq: 0x05
10:58:25.574 --T-> fir: 1 fin: 1 seq: 0
10:58:25.574 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 8 dest: 1024 src: 1
10:58:25.574 --P-> 05 64 08 C4 00 04 01 00 9A 19
10:58:25.574 C0 D5 00 9F D5
10:58:25.574 step: 29
10:58:25.574 - Generate Class 1, 2 or 3 events that would normally trigger an unsolicited response
10:58:25.575 [PLG] Updated BI 0: value=true, flags=81, timestamp=1793185105574 (UNSYNCHRONIZED_TIME)
10:58:25.575 step: 30
10:58:25.575 - Expect no unsolicited response within 2500 ms.
10:58:28.078 Passed procedure: 8.11.2a