Repository navigation
8.11.2.1 and 8.11.2a: accept a READ answer deferred to the unsolicited confirm timeout - #96
Merged
Merged
Conversation
…d confirm timeout The test procedures' 8.11.1 has the device defer a READ received while an unsolicited response awaits confirmation, until the confirmation arrives or its timeout expires, as IEEE 1815-2012 4.6.6 rule 16 (with TB2015-002a) requires, and step 24 only asks that the READ be answered. Step 24 now waits for the answer for the response timeout plus the unsolicited confirm timeout (and the usual 200 ms), and notes an answer that comes well before the startup response's confirm timeout. Removes the README's known limitation.
4 of 9 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1
Step 24 of 8.11.2.1 (3.1r1's 8.11.2a) checks that the device answers the READ sent in step 23 while its startup unsolicited response is still unconfirmed. dnp3c waited only the response timeout plus 200 ms for that answer, so a device that defers the READ until the unsolicited confirm timeout expires failed whenever that timeout was the longer one (step 3 sets it to 5 seconds).
The procedures pull both ways here. Step 24, and 8.11.1's restart behavior, read as an answer within the usual response time. 8.11.1's rules for unsolicited and polled responses (in 2.7 and 3.1 rev 1 alike) have the device defer a READ received while any unsolicited response awaits confirmation, until the confirmation arrives or its timeout expires, and so does IEEE 1815-2012 4.6.6 rule 16. TB2015-002a makes the intent plain: it rewrites rule 16 to say the READ is deferred for the startup response too, then answered, then the startup response sent again. dnp3c now reads step 24 in that light, in both revisions.
Changes
-describesays so for step 24.TestDriver.readAllResponsestakes an optional timeout for the first fragment, and the 200 ms read tolerance is now one constant,TestDriver.readToleranceMs.Checks
-describechanges only for 8.11.2.1 and 8.11.2a: step 24's added line, andoutstation.response.timeout.msamong the options they use.