Commit 854ace98 authored by Faisal Latif's avatar Faisal Latif Committed by Doug Ledford

RDMA/nes: Enable the use of the tos field in the nes driver

RDMA/nes: Enable the use of the tos field in the nes driver
Signed-off-by: default avatarFaisal Latif <Faisal.Latif@intel.com>
Signed-off-by: default avatarTatyana Nikolova <Tatyana.E.Nikolova@intel.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 68cdba06
...@@ -1616,6 +1616,8 @@ static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core, ...@@ -1616,6 +1616,8 @@ static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core,
&cm_node->loc_addr, cm_node->loc_port, &cm_node->loc_addr, cm_node->loc_port,
&cm_node->rem_addr, cm_node->rem_port); &cm_node->rem_addr, cm_node->rem_port);
cm_node->listener = listener; cm_node->listener = listener;
if (listener)
cm_node->tos = listener->tos;
cm_node->netdev = nesvnic->netdev; cm_node->netdev = nesvnic->netdev;
cm_node->cm_id = cm_info->cm_id; cm_node->cm_id = cm_info->cm_id;
memcpy(cm_node->loc_mac, nesvnic->netdev->dev_addr, ETH_ALEN); memcpy(cm_node->loc_mac, nesvnic->netdev->dev_addr, ETH_ALEN);
...@@ -2938,6 +2940,9 @@ static int nes_cm_init_tsa_conn(struct nes_qp *nesqp, struct nes_cm_node *cm_nod ...@@ -2938,6 +2940,9 @@ static int nes_cm_init_tsa_conn(struct nes_qp *nesqp, struct nes_cm_node *cm_nod
nesqp->nesqp_context->misc2 |= cpu_to_le32(64 << NES_QPCONTEXT_MISC2_TTL_SHIFT); nesqp->nesqp_context->misc2 |= cpu_to_le32(64 << NES_QPCONTEXT_MISC2_TTL_SHIFT);
nesqp->nesqp_context->misc2 |= cpu_to_le32(
cm_node->tos << NES_QPCONTEXT_MISC2_TOS_SHIFT);
nesqp->nesqp_context->mss |= cpu_to_le32(((u32)cm_node->tcp_cntxt.mss) << 16); nesqp->nesqp_context->mss |= cpu_to_le32(((u32)cm_node->tcp_cntxt.mss) << 16);
nesqp->nesqp_context->tcp_state_flow_label |= cpu_to_le32( nesqp->nesqp_context->tcp_state_flow_label |= cpu_to_le32(
...@@ -3612,6 +3617,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param) ...@@ -3612,6 +3617,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
cm_node->ord_size = 1; cm_node->ord_size = 1;
cm_node->apbvt_set = apbvt_set; cm_node->apbvt_set = apbvt_set;
cm_node->tos = cm_id->tos;
nesqp->cm_node = cm_node; nesqp->cm_node = cm_node;
cm_node->nesqp = nesqp; cm_node->nesqp = nesqp;
nes_add_ref(&nesqp->ibqp); nes_add_ref(&nesqp->ibqp);
...@@ -3666,6 +3672,7 @@ int nes_create_listen(struct iw_cm_id *cm_id, int backlog) ...@@ -3666,6 +3672,7 @@ int nes_create_listen(struct iw_cm_id *cm_id, int backlog)
} }
cm_id->provider_data = cm_node; cm_id->provider_data = cm_node;
cm_node->tos = cm_id->tos;
if (!cm_node->reused_node) { if (!cm_node->reused_node) {
if (nes_create_mapinfo(&cm_info)) if (nes_create_mapinfo(&cm_info))
......
...@@ -303,6 +303,7 @@ struct nes_cm_listener { ...@@ -303,6 +303,7 @@ struct nes_cm_listener {
int backlog; int backlog;
enum nes_cm_listener_state listener_state; enum nes_cm_listener_state listener_state;
u32 reused_node; u32 reused_node;
u8 tos;
}; };
/* per connection node and node state information */ /* per connection node and node state information */
...@@ -352,6 +353,7 @@ struct nes_cm_node { ...@@ -352,6 +353,7 @@ struct nes_cm_node {
struct list_head reset_entry; struct list_head reset_entry;
struct nes_qp *nesqp; struct nes_qp *nesqp;
atomic_t passive_state; atomic_t passive_state;
u8 tos;
}; };
/* structure for client or CM to fill when making CM api calls. */ /* structure for client or CM to fill when making CM api calls. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment