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

Device under test: Step Function I/O dnp3 outstation

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