[Bug 259439] ctld: MaxRecvDataSegmentLength is sent only in response to initiator's MaxRecvDataSegmentLength
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 259439] ctld: MaxRecvDataSegmentLength is sent only in response to initiator's MaxRecvDataSegmentLength"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 259439] ctld: MaxRecvDataSegmentLength is sent only in response to initiator's MaxRecvDataSegmentLength"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 259439] ctld: MaxRecvDataSegmentLength is sent only in response to initiator's MaxRecvDataSegmentLength"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 25 Oct 2021 14:58:22 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259439 Bug ID: 259439 Summary: ctld: MaxRecvDataSegmentLength is sent only in response to initiator's MaxRecvDataSegmentLength Product: Base System Version: CURRENT Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: bin Assignee: bugs@FreeBSD.org Reporter: emaste@freebsd.org PR259355 reports an issue with the iSCSI initiator relating to MaxRecvDataSegmentLength. jhb@ reports ctld has a similar issue - some more detail in https://reviews.freebsd.org/D32605. Quoting from that review: --- } else if (strcmp(name, "MaxRecvDataSegmentLength") == 0) { tmp = strtoul(value, NULL, 10); if (tmp <= 0) { login_send_error(request, 0x02, 0x00); log_errx(1, "received invalid " "MaxRecvDataSegmentLength"); } /* * MaxRecvDataSegmentLength is a direction-specific parameter. * We'll limit our _send_ to what the initiator can handle but * our MaxRecvDataSegmentLength is not influenced by the * initiator in any way. */ if ((int)tmp > conn->conn_max_send_data_segment_limit) { log_debugx("capping MaxRecvDataSegmentLength " "from %zd to %d", tmp, conn->conn_max_send_data_segment_limit); tmp = conn->conn_max_send_data_segment_limit; } conn->conn_max_send_data_segment_length = tmp; conn->conn_max_recv_data_segment_length = conn->conn_max_recv_data_segment_limit; keys_add_int(response_keys, name, conn->conn_max_recv_data_segment_length); so conn_max_recv_data_segment_length is only set if the initiator provides a MaxRecvDataSegmentLength (and it's only in that case that we send MaxRecvDataSegmentLength back to the initiator). Presumably MaxRecvDataSegmentLength should be sent unconditionally. Same for all Declarative keys? --- -- You are receiving this mail because: You are the assignee for the bug.