Closed gorryfair closed 7 months ago
Agreed with Gorry; I checked this and updated the text to catch all the pending changes, but the pseudo-code is correct in the test above.
NO CHANGES to -23. Please advise if further discussion is needed.
Well, the pseudo code gives two logical expressions for correct or zero UDP checksum:
The case with OCS == 0 and UDP CS != 0 (and passes) makes both expressions true. But they seem to be intended to be mutually exclusive, since they specify mutually exclusive behavior. I call this inconsistent.
The problem is "UDP CS != 0" in the second expression. I'd say that this should be "==".
I think the following version with a modification of the only second expression might capture the intent:
Changing "!=" to "==" is necessary. Using parentheses helps readability. Using "and" instead of "when" is more consistent.
Ah - thanks, now I see what you're getting at, and yes, the second should be CS==0 and it's better to replace "when" with "and". Will do in next rev.
Fixed in rev -24
Still needs work; the clause "or ((OCS != 0 and passes) and UDP CS == 0)" before the code that says to deliver the data but ignore the options should not be there.
Indeed, that is inconsistent with section 8 which states:
>> When the UDP checksum is zero, the OCS MAY be unused, and is then
indicated by a zero OCS value.
The pseudo-code in section 13 requires OCS==0 when CS==0, while section 8 allows both OCS!=0 and OCS==0 when CS==0.
OK - please confirm whether fixed in -25
Looks good to me. :-)
Looks good to me. :-)
I concur and recommend closing this issue.
Resolved
Erik: The inner if clauses in the pseudo-code seem to be
This issue was raised in https://mailarchive.ietf.org/arch/msg/tsvwg/ocDWz4jWZdqVP6CTuAhsBXer2Bc/
and answered (but not resolved) in https://mailarchive.ietf.org/arch/msg/tsvwg/CnPYSXjPPmLtNkBtjJ4BSgMX2Ck/
See also https://mailarchive.ietf.org/arch/msg/tsvwg/7nC8VbdxdcXiMjVBpnkZn7Dw6ZU/