Lines Matching defs:qedi_ep
245 struct qedi_endpoint *qedi_ep;
250 qedi_ep = ep->dd_data;
251 shost = qedi_ep->qedi->shost;
264 "Failed to setup session for ep=%p\n", qedi_ep);
270 "Failed to setup cmd pool for ep=%p\n", qedi_ep);
389 struct qedi_endpoint *qedi_ep;
397 qedi_ep = ep->dd_data;
398 if ((qedi_ep->state == EP_STATE_TCP_FIN_RCVD) ||
399 (qedi_ep->state == EP_STATE_TCP_RST_RCVD)) {
410 qedi_ep->conn = qedi_conn;
411 qedi_conn->ep = qedi_ep;
413 qedi_conn->iscsi_conn_id = qedi_ep->iscsi_cid;
414 qedi_conn->fw_cid = qedi_ep->fw_cid;
438 struct qedi_endpoint *qedi_ep;
441 qedi_ep = qedi_conn->ep;
472 rval = qedi_ops->update_conn(qedi->cdev, qedi_ep->handle,
501 static int qedi_iscsi_offload_conn(struct qedi_endpoint *qedi_ep)
504 struct qedi_ctx *qedi = qedi_ep->qedi;
511 "Failed to allocate memory ep=%p\n", qedi_ep);
515 ether_addr_copy(conn_info->src.mac, qedi_ep->src_mac);
516 ether_addr_copy(conn_info->dst.mac, qedi_ep->dst_mac);
518 conn_info->src.ip[0] = ntohl(qedi_ep->src_addr[0]);
519 conn_info->dst.ip[0] = ntohl(qedi_ep->dst_addr[0]);
521 if (qedi_ep->ip_type == TCP_IPV4) {
525 qedi_ep->src_addr, qedi_ep->dst_addr);
528 conn_info->src.ip[i] = ntohl(qedi_ep->src_addr[i]);
529 conn_info->dst.ip[i] = ntohl(qedi_ep->dst_addr[i]);
535 qedi_ep->src_addr, qedi_ep->dst_addr);
538 conn_info->src.port = qedi_ep->src_port;
539 conn_info->dst.port = qedi_ep->dst_port;
542 conn_info->sq_pbl_addr = qedi_ep->sq_pbl_dma;
543 conn_info->vlan_id = qedi_ep->vlan_id;
550 conn_info->default_cq = (qedi_ep->fw_cid % qedi->num_queues);
565 conn_info->remote_port = qedi_ep->dst_port;
566 conn_info->local_port = qedi_ep->src_port;
568 conn_info->mss = qedi_calc_mss(qedi_ep->pmtu,
569 (qedi_ep->ip_type == TCP_IPV6),
570 1, (qedi_ep->vlan_id != 0));
582 qedi_ep->db_data.agg_flags = 0;
583 qedi_ep->db_data.params = 0;
584 SET_FIELD(qedi_ep->db_data.params, ISCSI_DB_DATA_DEST, DB_DEST_XCM);
585 SET_FIELD(qedi_ep->db_data.params, ISCSI_DB_DATA_AGG_CMD,
587 SET_FIELD(qedi_ep->db_data.params, ISCSI_DB_DATA_AGG_VAL_SEL,
589 SET_FIELD(qedi_ep->db_data.params, ISCSI_DB_DATA_BYPASS_EN, 1);
593 qedi_ep->p_doorbell,
594 &qedi_ep->db_data,
602 rval = qedi_ops->offload_conn(qedi->cdev, qedi_ep->handle, conn_info);
606 qedi_ep->p_doorbell,
607 &qedi_ep->db_data);
610 rval, qedi_ep);
668 struct qedi_endpoint *qedi_ep = ep->dd_data;
671 if (!qedi_ep)
676 len = sprintf(buf, "%hu\n", qedi_ep->dst_port);
679 if (qedi_ep->ip_type == TCP_IPV4)
680 len = sprintf(buf, "%pI4\n", qedi_ep->dst_addr);
682 len = sprintf(buf, "%pI6\n", qedi_ep->dst_addr);
865 struct qedi_endpoint *qedi_ep =
871 qedi = qedi_ep->qedi;
873 ret = qedi_iscsi_offload_conn(qedi_ep);
876 "offload error: iscsi_cid=%u, qedi_ep=%p, ret=%d\n",
877 qedi_ep->iscsi_cid, qedi_ep, ret);
878 qedi_ep->state = EP_STATE_OFLDCONN_FAILED;
882 ret = wait_event_interruptible_timeout(qedi_ep->tcp_ofld_wait,
883 (qedi_ep->state ==
886 if (ret <= 0 || qedi_ep->state != EP_STATE_OFLDCONN_COMPL) {
887 qedi_ep->state = EP_STATE_OFLDCONN_FAILED;
889 "Offload conn TIMEOUT iscsi_cid=%u, qedi_ep=%p\n",
890 qedi_ep->iscsi_cid, qedi_ep);
900 struct qedi_endpoint *qedi_ep;
940 qedi_ep = ep->dd_data;
941 memset(qedi_ep, 0, sizeof(struct qedi_endpoint));
942 INIT_WORK(&qedi_ep->offload_work, qedi_offload_work);
943 qedi_ep->state = EP_STATE_IDLE;
944 qedi_ep->iscsi_cid = (u32)-1;
945 qedi_ep->qedi = qedi;
949 memcpy(qedi_ep->dst_addr, &addr->sin_addr.s_addr,
951 qedi_ep->dst_port = ntohs(addr->sin_port);
952 qedi_ep->ip_type = TCP_IPV4;
955 qedi_ep->dst_addr, qedi_ep->dst_port);
958 memcpy(qedi_ep->dst_addr, &addr6->sin6_addr,
960 qedi_ep->dst_port = ntohs(addr6->sin6_port);
961 qedi_ep->ip_type = TCP_IPV6;
964 qedi_ep->dst_addr, qedi_ep->dst_port);
969 ret = qedi_alloc_sq(qedi, qedi_ep);
973 ret = qedi_ops->acquire_conn(qedi->cdev, &qedi_ep->handle,
974 &qedi_ep->fw_cid, &qedi_ep->p_doorbell);
982 iscsi_cid = qedi_ep->handle;
983 qedi_ep->iscsi_cid = iscsi_cid;
985 init_waitqueue_head(&qedi_ep->ofld_wait);
986 init_waitqueue_head(&qedi_ep->tcp_ofld_wait);
987 qedi_ep->state = EP_STATE_OFLDCONN_START;
988 qedi->ep_tbl[iscsi_cid] = qedi_ep;
995 path_req.handle = (u64)qedi_ep->iscsi_cid;
997 qedi_ep->pmtu = qedi->ll2_mtu;
998 if (qedi_ep->ip_type == TCP_IPV4) {
999 memcpy(&path_req.dst.v4_addr, &qedi_ep->dst_addr,
1003 memcpy(&path_req.dst.v6_addr, &qedi_ep->dst_addr,
1022 tmp = qedi_ops->release_conn(qedi->cdev, qedi_ep->handle);
1027 qedi_free_sq(qedi, qedi_ep);
1035 struct qedi_endpoint *qedi_ep;
1041 qedi_ep = ep->dd_data;
1042 if (qedi_ep->state == EP_STATE_IDLE ||
1043 qedi_ep->state == EP_STATE_OFLDCONN_NONE ||
1044 qedi_ep->state == EP_STATE_OFLDCONN_FAILED)
1047 if (qedi_ep->state == EP_STATE_OFLDCONN_COMPL)
1050 ret = wait_event_interruptible_timeout(qedi_ep->ofld_wait,
1051 QEDI_OFLD_WAIT_STATE(qedi_ep),
1054 if (qedi_ep->state == EP_STATE_OFLDCONN_FAILED)
1080 struct qedi_endpoint *qedi_ep;
1088 qedi_ep = ep->dd_data;
1089 qedi = qedi_ep->qedi;
1091 flush_work(&qedi_ep->offload_work);
1093 if (qedi_ep->state == EP_STATE_OFLDCONN_START)
1096 if (qedi_ep->conn) {
1097 qedi_conn = qedi_ep->conn;
1101 "cid=0x%x qedi_ep=%p waiting for %d tmfs\n",
1102 qedi_ep->iscsi_cid, qedi_ep,
1118 qedi_ep->iscsi_cid);
1122 "Reset recovery cid=0x%x, qedi_ep=%p, state=0x%x\n",
1123 qedi_ep->iscsi_cid, qedi_ep, qedi_ep->state);
1132 switch (qedi_ep->state) {
1145 qedi_ep->state,
1146 qedi_ep->iscsi_cid,
1147 qedi_ep->conn
1165 qedi_ep->state = EP_STATE_DISCONN_START;
1173 qedi_ep->p_doorbell,
1174 &qedi_ep->db_data);
1176 ret = qedi_ops->destroy_conn(qedi->cdev, qedi_ep->handle, abrt_conn);
1182 qedi_ep->tcp_ofld_wait,
1183 (qedi_ep->state !=
1186 if ((ret <= 0) || (qedi_ep->state == EP_STATE_DISCONN_START)) {
1189 ret, wait_delay, qedi_ep->iscsi_cid);
1194 ret = qedi_ops->release_conn(qedi->cdev, qedi_ep->handle);
1198 ret, qedi_ep->iscsi_cid);
1200 qedi_ep->state = EP_STATE_IDLE;
1201 qedi->ep_tbl[qedi_ep->iscsi_cid] = NULL;
1202 qedi->cid_que.conn_cid_tbl[qedi_ep->iscsi_cid] = NULL;
1203 qedi_free_id(&qedi->lcl_port_tbl, qedi_ep->src_port);
1204 qedi_free_sq(qedi, qedi_ep);
1209 qedi_ep->conn = NULL;
1210 qedi_ep->qedi = NULL;
1272 struct qedi_endpoint *qedi_ep;
1301 qedi_ep = qedi->ep_tbl[iscsi_cid];
1303 "iscsi_cid=0x%x, qedi_ep=%p\n", iscsi_cid, qedi_ep);
1304 if (!qedi_ep) {
1311 qedi_ep->state = EP_STATE_OFLDCONN_NONE;
1316 ether_addr_copy(&qedi_ep->src_mac[0], &qedi->mac[0]);
1317 ether_addr_copy(&qedi_ep->dst_mac[0], &path_data->mac_addr[0]);
1319 qedi_ep->vlan_id = path_data->vlan_id;
1321 qedi_ep->pmtu = qedi->ll2_mtu;
1324 path_data->pmtu, qedi_ep->pmtu);
1335 qedi_ep->pmtu = qedi->ll2_mtu;
1338 port_id = qedi_ep->src_port;
1358 qedi_ep->src_port = port_id;
1360 if (qedi_ep->ip_type == TCP_IPV4) {
1361 memcpy(&qedi_ep->src_addr[0], &path_data->src.v4_addr,
1369 qedi_ep->src_addr, qedi_ep->src_port,
1370 qedi_ep->dst_addr, qedi_ep->dst_port);
1372 memcpy(&qedi_ep->src_addr[0], &path_data->src.v6_addr,
1380 qedi_ep->src_addr, qedi_ep->src_port,
1381 qedi_ep->dst_addr, qedi_ep->dst_port);
1384 queue_work(qedi->offload_thread, &qedi_ep->offload_work);