The following patch (partially) fixes an issue extracting the packet
lifetime from the local ACK timeout when processing a received CM
REQ or LAP message. The local ACK timeout carries twice the packet
lifetime, plus CA ACK delay - which I'm currently ignoring as being
too painful to deal with.
Signed-off-by: Sean Hefty <[EMAIL PROTECTED]>
Index: core/cm.c
===================================================================
--- core/cm.c (revision 2749)
+++ core/cm.c (working copy)
@@ -1005,6 +1005,7 @@ static inline void cm_format_paths_from_
primary_path->packet_life_time_selector = IB_SA_EQ;
primary_path->packet_life_time =
cm_req_get_primary_local_ack_timeout(req_msg);
+ primary_path->packet_life_time -= (primary_path->packet_life_time > 0);
if (req_msg->alt_local_lid) {
memset(alt_path, 0, sizeof *alt_path);
@@ -1025,6 +1026,7 @@ static inline void cm_format_paths_from_
alt_path->packet_life_time_selector = IB_SA_EQ;
alt_path->packet_life_time =
cm_req_get_alt_local_ack_timeout(req_msg);
+ alt_path->packet_life_time -= (alt_path->packet_life_time > 0);
}
}
@@ -2306,6 +2308,7 @@ static void cm_format_path_from_lap(stru
path->rate = cm_lap_get_packet_rate(lap_msg);
path->packet_life_time_selector = IB_SA_EQ;
path->packet_life_time = cm_lap_get_local_ack_timeout(lap_msg);
+ path->packet_life_time -= (path->packet_life_time > 0);
}
static int cm_lap_handler(struct cm_work *work)
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general