Requested revision
Standard: | 802-1CB-2017 | Clause: | 7.4.3.5 |
Clause title: | MatchRecoveryAlgorithm |
Rationale for revision
Code for MatchRecoveryAlgorithm at top of page 44 has an "if (TakeAny) { ...}" section that should have a "return;" after the PRESENT_DATA event. Why? If you look at the code inside that if() it sets RecovSeqNum equal to sequence_number. Because of the missing "return;" the remaining code after the if() will be executed and "delta" will be set to 0. The next if() statement tests if delta is equal to zero, which will be, and counts the packet as also being discarded, which it was not!
Proposed text
Add a "return;" statement after the PRESENT_DATA event in the "if (TakeAny) {...}" code segment.
Impact on existing networks
Existing implementations based on this code will count the
first packet transmitted as a Passed packet (which is correct)
and as a Discarded packet (which is wrong). Even if there are
never any discarded packets the counter will still show that
one packet was discarded.
Originator
Name: | Craig Gunther | Email: | craiggunther@yahoo.com |
Affiliation: | Craig Gunther Consulting/Bosch | ||
Submitted: | 2019-08-07 |