Page MenuHomeFreeBSD

ctld: Always declare MaxRecvDataSegmentLength.
ClosedPublic

Authored by jhb on Oct 25 2021, 11:38 PM.
Tags
None
Referenced Files
F102952169: D32651.diff
Tue, Nov 19, 3:22 AM
Unknown Object (File)
Thu, Nov 14, 10:39 AM
Unknown Object (File)
Tue, Nov 5, 7:24 PM
Unknown Object (File)
Sun, Nov 3, 3:58 PM
Unknown Object (File)
Tue, Oct 29, 1:41 AM
Unknown Object (File)
Fri, Oct 25, 6:31 PM
Unknown Object (File)
Tue, Oct 22, 2:23 AM
Unknown Object (File)
Tue, Oct 22, 2:00 AM
Subscribers

Details

Summary

This key is Declarative and should always be sent even if the
initiator did not send it's own limit. This is similar to the fix in
fc79cf4fea72 but for the target side.

Sponsored by: Chelsio Communications

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 42355
Build 39243: arc lint + arc unit

Event Timeline

jhb requested review of this revision.Oct 25 2021, 11:38 PM

I have no objections. Just hope it won't cause more problems than solve.

This revision is now accepted and ready to land.Oct 26 2021, 12:29 AM

PR: 259439

As @mav points out this one is not a functional bug, it just means if the initiator doesn't send MaxRecvDataSegmentLength then send and receive will both just remain at default. It seems logical and simple to me to just send all Declarative keys, but I have no idea if there are some strange initiators that would behave poorly.

I do think it's a bug in that the spec says there is no negotiation for declarative keys, instead that the proposing party just declares them (section 6 in RFC 7143). Just because an initiator doesn't support a large receive buffer doesn't mean it can't stream out larger PDUs on send. Sending large PDUs is easier than receiving large PDUs.

This revision was automatically updated to reflect the committed changes.