On 3/5/2019 8:33 AM, Gerd Rausch wrote:
Hi,

This patchset breaks compatibility...

On 04/02/2019 16.04, Santosh Shilimkar wrote:
--- a/net/rds/ib_cm.c
+++ b/net/rds/ib_cm.c
@@ -868,7 +870,7 @@ int rds_ib_cm_initiate_connect(struct rdma_cm_id *cm_id, 
bool isv6)
/* If the peer doesn't do protocol negotiation, we must
         * default to RDSv3.0 */
-       rds_ib_set_protocol(conn, RDS_PROTOCOL_VERSION);
+       rds_ib_set_protocol(conn, RDS_PROTOCOL_4_1);
        ic->i_flowctl = rds_ib_sysctl_flow_control;  /* advertise flow control 
*/
ret = rds_ib_setup_qp(conn);

The comment calls out to fallback to RDSv3.0, but the code assumes that v4.1 is
the new common standard.

If there's a mechanism that ensures compatibility with older (pre-4.1) versions
of RDS I am not seeing it.
Thats handled as part of the connection reject handler as part of negotiation.

The inconsistency in comment vs. code doesn't help in that regard.

Yeah the comment should have been updated.

And tests illustrated this incompatibility:
2 peers with this patchset can talk to eachother.
Peers with a mix of post-this-patchset and pre-this-patchset can no longer talk
to eachother.

They can talk to each other as per Yanjun tests. He is working on setting it up net-next to see if something got missed out. Stay tune. Will update about the results.

Regards,
Santosh

Reply via email to