dapli_ep_default_attrs (
IN DAPL_EP *ep_ptr )
{
+ DAT_EP_ATTR ep_attr_limit;
DAT_EP_ATTR *ep_attr;
+ DAT_RETURN dat_status;
ep_attr = &ep_ptr->param.ep_attr;
/* Set up defaults */
* - provider_specific_params: 0
*/
- return;
+ dat_status = dapls_ib_query_hca (ep_ptr->header.owner_ia->hca_ptr,
+ NULL, &ep_attr_limit, NULL);
+ /* check against HCA maximums */
+ if (dat_status == DAT_SUCCESS)
+ {
+ ep_ptr->param.ep_attr.max_mtu_size =
+ DAPL_MIN(ep_ptr->param.ep_attr.max_mtu_size,
+ ep_attr_limit.max_mtu_size);
+ ep_ptr->param.ep_attr.max_rdma_size =
+ DAPL_MIN(ep_ptr->param.ep_attr.max_rdma_size,
+ ep_attr_limit.max_rdma_size);
+ ep_ptr->param.ep_attr.max_recv_dtos =
+ DAPL_MIN(ep_ptr->param.ep_attr.max_recv_dtos,
+ ep_attr_limit.max_recv_dtos);
+ ep_ptr->param.ep_attr.max_request_dtos =
+ DAPL_MIN(ep_ptr->param.ep_attr.max_request_dtos,
+ ep_attr_limit.max_request_dtos);
+ ep_ptr->param.ep_attr.max_recv_iov =
+ DAPL_MIN(ep_ptr->param.ep_attr.max_recv_iov,
+ ep_attr_limit.max_recv_iov);
+ ep_ptr->param.ep_attr.max_request_iov =
+ DAPL_MIN(ep_ptr->param.ep_attr.max_request_iov,
+ ep_attr_limit.max_request_iov);
+ ep_ptr->param.ep_attr.max_rdma_read_in =
+ DAPL_MIN(ep_ptr->param.ep_attr.max_rdma_read_in,
+ ep_attr_limit.max_rdma_read_in);
+ ep_ptr->param.ep_attr.max_rdma_read_out =
+ DAPL_MIN(ep_ptr->param.ep_attr.max_rdma_read_out,
+ ep_attr_limit.max_rdma_read_out);
+ }
}