34 #if !defined(CM_MSGS_H)
45 #define IB_CM_CLASS_VERSION 2
122 static inline u8 cm_req_get_resp_res(
struct cm_req_msg *req_msg)
127 static inline void cm_req_set_resp_res(
struct cm_req_msg *req_msg,
u8 resp_res)
139 static inline void cm_req_set_init_depth(
struct cm_req_msg *req_msg,
147 static inline u8 cm_req_get_remote_resp_timeout(
struct cm_req_msg *req_msg)
152 static inline void cm_req_set_remote_resp_timeout(
struct cm_req_msg *req_msg,
163 switch(transport_type) {
175 static inline void cm_req_set_qp_type(
struct cm_req_msg *req_msg,
197 static inline u8 cm_req_get_flow_ctrl(
struct cm_req_msg *req_msg)
202 static inline void cm_req_set_flow_ctrl(
struct cm_req_msg *req_msg,
215 static inline void cm_req_set_starting_psn(
struct cm_req_msg *req_msg,
222 static inline u8 cm_req_get_local_resp_timeout(
struct cm_req_msg *req_msg)
227 static inline void cm_req_set_local_resp_timeout(
struct cm_req_msg *req_msg,
234 static inline u8 cm_req_get_retry_count(
struct cm_req_msg *req_msg)
239 static inline void cm_req_set_retry_count(
struct cm_req_msg *req_msg,
246 static inline u8 cm_req_get_path_mtu(
struct cm_req_msg *req_msg)
251 static inline void cm_req_set_path_mtu(
struct cm_req_msg *req_msg,
u8 path_mtu)
256 static inline u8 cm_req_get_rnr_retry_count(
struct cm_req_msg *req_msg)
261 static inline void cm_req_set_rnr_retry_count(
struct cm_req_msg *req_msg,
265 (rnr_retry_count & 0x7));
268 static inline u8 cm_req_get_max_cm_retries(
struct cm_req_msg *req_msg)
273 static inline void cm_req_set_max_cm_retries(
struct cm_req_msg *req_msg,
279 static inline u8 cm_req_get_srq(
struct cm_req_msg *req_msg)
281 return (req_msg->
offset51 & 0x8) >> 3;
284 static inline void cm_req_set_srq(
struct cm_req_msg *req_msg,
u8 srq)
290 static inline __be32 cm_req_get_primary_flow_label(
struct cm_req_msg *req_msg)
295 static inline void cm_req_set_primary_flow_label(
struct cm_req_msg *req_msg,
304 static inline u8 cm_req_get_primary_packet_rate(
struct cm_req_msg *req_msg)
309 static inline void cm_req_set_primary_packet_rate(
struct cm_req_msg *req_msg,
314 0xFFFFFFC0) | (rate & 0x3F));
317 static inline u8 cm_req_get_primary_sl(
struct cm_req_msg *req_msg)
322 static inline void cm_req_set_primary_sl(
struct cm_req_msg *req_msg,
u8 sl)
328 static inline u8 cm_req_get_primary_subnet_local(
struct cm_req_msg *req_msg)
333 static inline void cm_req_set_primary_subnet_local(
struct cm_req_msg *req_msg,
337 ((subnet_local & 0x1) << 3));
340 static inline u8 cm_req_get_primary_local_ack_timeout(
struct cm_req_msg *req_msg)
345 static inline void cm_req_set_primary_local_ack_timeout(
struct cm_req_msg *req_msg,
346 u8 local_ack_timeout)
349 (local_ack_timeout << 3));
357 static inline void cm_req_set_alt_flow_label(
struct cm_req_msg *req_msg,
366 static inline u8 cm_req_get_alt_packet_rate(
struct cm_req_msg *req_msg)
371 static inline void cm_req_set_alt_packet_rate(
struct cm_req_msg *req_msg,
376 0xFFFFFFC0) | (rate & 0x3F));
379 static inline u8 cm_req_get_alt_sl(
struct cm_req_msg *req_msg)
384 static inline void cm_req_set_alt_sl(
struct cm_req_msg *req_msg,
u8 sl)
390 static inline u8 cm_req_get_alt_subnet_local(
struct cm_req_msg *req_msg)
395 static inline void cm_req_set_alt_subnet_local(
struct cm_req_msg *req_msg,
399 ((subnet_local & 0x1) << 3));
402 static inline u8 cm_req_get_alt_local_ack_timeout(
struct cm_req_msg *req_msg)
407 static inline void cm_req_set_alt_local_ack_timeout(
struct cm_req_msg *req_msg,
408 u8 local_ack_timeout)
411 (local_ack_timeout << 3));
435 static inline u8 cm_mra_get_msg_mraed(
struct cm_mra_msg *mra_msg)
440 static inline void cm_mra_set_msg_mraed(
struct cm_mra_msg *mra_msg,
u8 msg)
445 static inline u8 cm_mra_get_service_timeout(
struct cm_mra_msg *mra_msg)
450 static inline void cm_mra_set_service_timeout(
struct cm_mra_msg *mra_msg,
454 (service_timeout << 3));
473 static inline u8 cm_rej_get_msg_rejected(
struct cm_rej_msg *rej_msg)
478 static inline void cm_rej_set_msg_rejected(
struct cm_rej_msg *rej_msg,
u8 msg)
483 static inline u8 cm_rej_get_reject_info_len(
struct cm_rej_msg *rej_msg)
488 static inline void cm_rej_set_reject_info_len(
struct cm_rej_msg *rej_msg,
534 static inline void cm_rep_set_local_eecn(
struct cm_rep_msg *rep_msg,
__be32 eecn)
543 cm_rep_get_local_eecn(rep_msg) : cm_rep_get_local_qpn(rep_msg);
551 static inline void cm_rep_set_starting_psn(
struct cm_rep_msg *rep_msg,
558 static inline u8 cm_rep_get_target_ack_delay(
struct cm_rep_msg *rep_msg)
563 static inline void cm_rep_set_target_ack_delay(
struct cm_rep_msg *rep_msg,
567 (target_ack_delay << 3));
570 static inline u8 cm_rep_get_failover(
struct cm_rep_msg *rep_msg)
572 return (
u8) ((rep_msg->
offset26 & 0x06) >> 1);
575 static inline void cm_rep_set_failover(
struct cm_rep_msg *rep_msg,
u8 failover)
578 ((failover & 0x3) << 1));
581 static inline u8 cm_rep_get_flow_ctrl(
struct cm_rep_msg *rep_msg)
586 static inline void cm_rep_set_flow_ctrl(
struct cm_rep_msg *rep_msg,
593 static inline u8 cm_rep_get_rnr_retry_count(
struct cm_rep_msg *rep_msg)
598 static inline void cm_rep_set_rnr_retry_count(
struct cm_rep_msg *rep_msg,
602 (rnr_retry_count << 5));
605 static inline u8 cm_rep_get_srq(
struct cm_rep_msg *rep_msg)
610 static inline void cm_rep_set_srq(
struct cm_rep_msg *rep_msg,
u8 srq)
643 static inline void cm_dreq_set_remote_qpn(
struct cm_dreq_msg *dreq_msg,
__be32 qpn)
692 static inline void cm_lap_set_remote_qpn(
struct cm_lap_msg *lap_msg,
__be32 qpn)
699 static inline u8 cm_lap_get_remote_resp_timeout(
struct cm_lap_msg *lap_msg)
704 static inline void cm_lap_set_remote_resp_timeout(
struct cm_lap_msg *lap_msg,
717 static inline void cm_lap_set_flow_label(
struct cm_lap_msg *lap_msg,
725 static inline u8 cm_lap_get_traffic_class(
struct cm_lap_msg *lap_msg)
730 static inline void cm_lap_set_traffic_class(
struct cm_lap_msg *lap_msg,
738 static inline u8 cm_lap_get_packet_rate(
struct cm_lap_msg *lap_msg)
743 static inline void cm_lap_set_packet_rate(
struct cm_lap_msg *lap_msg,
749 static inline u8 cm_lap_get_sl(
struct cm_lap_msg *lap_msg)
754 static inline void cm_lap_set_sl(
struct cm_lap_msg *lap_msg,
u8 sl)
759 static inline u8 cm_lap_get_subnet_local(
struct cm_lap_msg *lap_msg)
761 return (lap_msg->
offset62 >> 3) & 0x1;
764 static inline void cm_lap_set_subnet_local(
struct cm_lap_msg *lap_msg,
767 lap_msg->
offset62 = ((subnet_local & 0x1) << 3) |
770 static inline u8 cm_lap_get_local_ack_timeout(
struct cm_lap_msg *lap_msg)
775 static inline void cm_lap_set_local_ack_timeout(
struct cm_lap_msg *lap_msg,
776 u8 local_ack_timeout)
778 lap_msg->
offset63 = (local_ack_timeout << 3) |
828 static inline void cm_sidr_rep_set_qpn(
struct cm_sidr_rep_msg *sidr_rep_msg,