• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/infiniband/hw/nes/

Lines Matching defs:nesqp

105 static int nes_disconnect(struct nes_qp *nesqp, int abrupt);
529 struct nes_qp *nesqp;
534 nesqp = (struct nes_qp *)recv_entry->skb;
535 if (nesqp) {
536 spin_lock_irqsave(&nesqp->lock, qplockflags);
537 if (nesqp->cm_id) {
541 "to do!!!\n", nesqp->hwqp.qp_id, cm_id,
542 atomic_read(&nesqp->refcount));
543 nesqp->hw_tcp_state = NES_AEQE_TCP_STATE_CLOSED;
544 nesqp->last_aeq = NES_AEQE_AEID_RESET_SENT;
545 nesqp->ibqp_state = IB_QPS_ERR;
546 spin_unlock_irqrestore(&nesqp->lock, qplockflags);
547 nes_cm_disconn(nesqp);
549 spin_unlock_irqrestore(&nesqp->lock, qplockflags);
553 "to do!!!\n", nesqp->hwqp.qp_id, cm_id,
554 atomic_read(&nesqp->refcount));
1262 struct nes_qp *nesqp;
1298 nesqp = cm_node->nesqp;
1299 if (nesqp) {
1300 nesqp->cm_node = NULL;
1301 nes_rem_ref(&nesqp->ibqp);
1302 cm_node->nesqp = NULL;
2450 static int nes_cm_init_tsa_conn(struct nes_qp *nesqp, struct nes_cm_node *cm_node)
2454 if (!nesqp)
2457 nesqp->nesqp_context->misc |= cpu_to_le32(NES_QPCONTEXT_MISC_IPV4 |
2462 nesqp->nesqp_context->misc |= cpu_to_le32(NES_QPCONTEXT_MISC_WSCALE);
2464 nesqp->nesqp_context->misc2 |= cpu_to_le32(64 << NES_QPCONTEXT_MISC2_TTL_SHIFT);
2466 nesqp->nesqp_context->mss |= cpu_to_le32(((u32)cm_node->tcp_cntxt.mss) << 16);
2468 nesqp->nesqp_context->tcp_state_flow_label |= cpu_to_le32(
2471 nesqp->nesqp_context->pd_index_wscale |= cpu_to_le32(
2475 nesqp->nesqp_context->pd_index_wscale |= cpu_to_le32(
2479 nesqp->nesqp_context->keepalive = cpu_to_le32(0x80);
2480 nesqp->nesqp_context->ts_recent = 0;
2481 nesqp->nesqp_context->ts_age = 0;
2482 nesqp->nesqp_context->snd_nxt = cpu_to_le32(cm_node->tcp_cntxt.loc_seq_num);
2483 nesqp->nesqp_context->snd_wnd = cpu_to_le32(cm_node->tcp_cntxt.snd_wnd);
2484 nesqp->nesqp_context->rcv_nxt = cpu_to_le32(cm_node->tcp_cntxt.rcv_nxt);
2485 nesqp->nesqp_context->rcv_wnd = cpu_to_le32(cm_node->tcp_cntxt.rcv_wnd <<
2487 nesqp->nesqp_context->snd_max = cpu_to_le32(cm_node->tcp_cntxt.loc_seq_num);
2488 nesqp->nesqp_context->snd_una = cpu_to_le32(cm_node->tcp_cntxt.loc_seq_num);
2489 nesqp->nesqp_context->srtt = 0;
2490 nesqp->nesqp_context->rttvar = cpu_to_le32(0x6);
2491 nesqp->nesqp_context->ssthresh = cpu_to_le32(0x3FFFC000);
2492 nesqp->nesqp_context->cwnd = cpu_to_le32(2*cm_node->tcp_cntxt.mss);
2493 nesqp->nesqp_context->snd_wl1 = cpu_to_le32(cm_node->tcp_cntxt.rcv_nxt);
2494 nesqp->nesqp_context->snd_wl2 = cpu_to_le32(cm_node->tcp_cntxt.loc_seq_num);
2495 nesqp->nesqp_context->max_snd_wnd = cpu_to_le32(cm_node->tcp_cntxt.max_snd_wnd);
2499 nesqp->hwqp.qp_id, le32_to_cpu(nesqp->nesqp_context->rcv_nxt),
2500 le32_to_cpu(nesqp->nesqp_context->snd_nxt),
2501 cm_node->tcp_cntxt.mss, le32_to_cpu(nesqp->nesqp_context->pd_index_wscale),
2502 le32_to_cpu(nesqp->nesqp_context->rcv_wnd),
2503 le32_to_cpu(nesqp->nesqp_context->misc));
2504 nes_debug(NES_DBG_CM, " snd_wnd = 0x%08X.\n", le32_to_cpu(nesqp->nesqp_context->snd_wnd));
2505 nes_debug(NES_DBG_CM, " snd_cwnd = 0x%08X.\n", le32_to_cpu(nesqp->nesqp_context->cwnd));
2506 nes_debug(NES_DBG_CM, " max_swnd = 0x%08X.\n", le32_to_cpu(nesqp->nesqp_context->max_snd_wnd));
2518 int nes_cm_disconn(struct nes_qp *nesqp)
2526 nes_add_ref(&nesqp->ibqp);
2527 work->nesqp = nesqp;
2540 struct nes_qp *nesqp = dwork->nesqp;
2544 nesqp->last_aeq, nesqp->hwqp.qp_id);
2545 nes_cm_disconn_true(nesqp);
2546 nes_rem_ref(&nesqp->ibqp);
2553 static int nes_cm_disconn_true(struct nes_qp *nesqp)
2570 if (!nesqp) {
2571 nes_debug(NES_DBG_CM, "disconnect_worker nesqp is NULL\n");
2575 spin_lock_irqsave(&nesqp->lock, flags);
2576 cm_id = nesqp->cm_id;
2580 nesqp->hwqp.qp_id);
2581 spin_unlock_irqrestore(&nesqp->lock, flags);
2585 nesvnic = to_nesvnic(nesqp->ibqp.device);
2586 nes_debug(NES_DBG_CM, "Disconnecting QP%u\n", nesqp->hwqp.qp_id);
2588 original_hw_tcp_state = nesqp->hw_tcp_state;
2589 original_ibqp_state = nesqp->ibqp_state;
2590 last_ae = nesqp->last_aeq;
2592 if (nesqp->term_flags) {
2595 nesqp->cm_id = NULL;
2596 if (nesqp->flush_issued == 0) {
2597 nesqp->flush_issued = 1;
2613 nesqp->cm_id = NULL;
2614 if (nesqp->flush_issued == 0) {
2615 nesqp->flush_issued = 1;
2620 spin_unlock_irqrestore(&nesqp->lock, flags);
2622 if ((issue_flush) && (nesqp->destroyed == 0)) {
2624 if (nesqp->hw_iwarp_state >= NES_AEQE_IWARP_STATE_TERMINATE)
2626 flush_wqes(nesvnic->nesdev, nesqp, flush_q, 1);
2628 if (nesqp->term_flags) {
2629 ibevent.device = nesqp->ibqp.device;
2630 ibevent.event = nesqp->terminate_eventtype;
2631 ibevent.element.qp = &nesqp->ibqp;
2632 nesqp->ibqp.event_handler(&ibevent, nesqp->ibqp.qp_context);
2649 nesqp->hwqp.qp_id, nesqp->hwqp.sq_head,
2650 nesqp->hwqp.sq_tail, cm_id,
2651 atomic_read(&nesqp->refcount));
2661 nes_disconnect(nesqp, 1);
2663 cm_id->provider_data = nesqp;
2689 static int nes_disconnect(struct nes_qp *nesqp, int abrupt)
2696 nesvnic = to_nesvnic(nesqp->ibqp.device);
2706 if (nesqp->active_conn) {
2709 nesqp->active_conn = 0;
2712 if (nesqp->ietf_frame) {
2713 if (nesqp->lsmm_mr)
2714 nesibdev->ibdev.dereg_mr(nesqp->lsmm_mr);
2716 nesqp->private_data_len+sizeof(struct ietf_mpa_frame),
2717 nesqp->ietf_frame, nesqp->ietf_frame_pbase);
2722 if (nesqp->cm_node) {
2725 g_cm_core->api->close(g_cm_core, nesqp->cm_node);
2739 struct nes_qp *nesqp;
2762 nesqp = to_nesqp(ibqp);
2763 nesvnic = to_nesvnic(nesqp->ibqp.device);
2786 nesqp->cm_node = (void *)cm_node;
2787 cm_node->nesqp = nesqp;
2790 nesqp->hwqp.qp_id, cm_node, jiffies, cm_node->listener);
2797 nesqp->ietf_frame = pci_alloc_consistent(nesdev->pcidev,
2799 &nesqp->ietf_frame_pbase);
2801 if (!nesqp->ietf_frame) {
2809 nesqp->private_data_len = conn_param->private_data_len;
2810 memcpy(nesqp->ietf_frame->key, IEFT_MPA_KEY_REP, IETF_MPA_KEY_SIZE);
2812 memcpy(nesqp->ietf_frame->priv_data, conn_param->private_data,
2815 nesqp->ietf_frame->priv_data_len =
2817 nesqp->ietf_frame->rev = mpa_version;
2818 nesqp->ietf_frame->flags = IETF_MPA_FLAGS_CRC;
2821 wqe = &nesqp->hwqp.sq_vbase[0];
2825 u64temp = (unsigned long)nesqp;
2827 nespd = nesqp->nespd;
2828 ibphysbuf.addr = nesqp->ietf_frame_pbase;
2831 tagged_offset = (u64)(unsigned long)nesqp->ietf_frame;
2841 nesqp->private_data_len+sizeof(struct ietf_mpa_frame),
2842 nesqp->ietf_frame, nesqp->ietf_frame_pbase);
2848 nesqp->lsmm_mr = ibmr;
2862 (u64)(unsigned long)nesqp->ietf_frame);
2867 if (nesqp->sq_kmapped) {
2868 nesqp->sq_kmapped = 0;
2869 kunmap(nesqp->page);
2872 nesqp->nesqp_context->ird_ord_sizes |=
2876 nesqp->nesqp_context->ird_ord_sizes |=
2879 nesqp->skip_lsmm = 1;
2883 nesqp->cm_id = cm_id;
2886 /* nesqp->cm_node = (void *)cm_id->provider_data; */
2887 cm_id->provider_data = nesqp;
2888 nesqp->active_conn = 0;
2894 nes_cm_init_tsa_conn(nesqp, cm_node);
2896 nesqp->nesqp_context->tcpPorts[0] =
2898 nesqp->nesqp_context->tcpPorts[1] =
2902 nesqp->nesqp_context->ip0 =
2905 nesqp->nesqp_context->ip0 =
2908 nesqp->nesqp_context->misc2 |= cpu_to_le32(
2912 nesqp->nesqp_context->arp_index_vlan |=
2914 le32_to_cpu(nesqp->nesqp_context->ip0), NULL,
2917 nesqp->nesqp_context->ts_val_delta = cpu_to_le32(
2920 nesqp->nesqp_context->ird_index = cpu_to_le32(nesqp->hwqp.qp_id);
2922 nesqp->nesqp_context->ird_ord_sizes |= cpu_to_le32(
2924 nesqp->nesqp_context->ird_ord_sizes |=
2939 nesqp->hte_index = cpu_to_be32(crc_value ^ 0xffffffff);
2941 nesqp->hte_index, nesqp->hte_index & adapter->hte_index_mask);
2943 nesqp->hte_index &= adapter->hte_index_mask;
2944 nesqp->nesqp_context->hte_index = cpu_to_le32(nesqp->hte_index);
2950 "private data length=%zu.\n", nesqp->hwqp.qp_id,
2955 le32_to_cpu(nesqp->nesqp_context->rcv_nxt),
2956 le32_to_cpu(nesqp->nesqp_context->snd_nxt),
2963 nes_add_ref(&nesqp->ibqp);
2967 cm_event.provider_data = (void *)nesqp;
2974 nes_modify_qp(&nesqp->ibqp, &attr, IB_QP_STATE, NULL);
2977 nesqp->private_data_len;
2980 nesqp->ietf_frame->priv_data, nesqp->private_data_len);
3036 struct nes_qp *nesqp;
3046 nesqp = to_nesqp(ibqp);
3047 if (!nesqp)
3049 nesvnic = to_nesvnic(nesqp->ibqp.device);
3060 "0x%08X:0x%04X, local = 0x%08X:0x%04X.\n", nesqp->hwqp.qp_id,
3068 nesqp->active_conn = 1;
3071 nesqp->cm_id = cm_id;
3073 cm_id->provider_data = nesqp;
3075 nesqp->private_data_len = conn_param->private_data_len;
3076 nesqp->nesqp_context->ird_ord_sizes |= cpu_to_le32((u32)conn_param->ord);
3113 nesqp->cm_node = cm_node;
3114 cm_node->nesqp = nesqp;
3115 nes_add_ref(&nesqp->ibqp);
3253 struct nes_qp *nesqp;
3270 nesqp = (struct nes_qp *)cm_id->provider_data;
3271 nesvnic = to_nesvnic(nesqp->ibqp.device);
3275 if (nesqp->destroyed) {
3281 nesqp->hwqp.qp_id,
3287 nes_cm_init_tsa_conn(nesqp, cm_node);
3290 nesqp->nesqp_context->tcpPorts[0] =
3292 nesqp->nesqp_context->tcpPorts[1] =
3295 nesqp->nesqp_context->ip0 =
3298 nesqp->nesqp_context->ip0 =
3301 nesqp->nesqp_context->misc2 |= cpu_to_le32(
3304 nesqp->nesqp_context->arp_index_vlan |= cpu_to_le32(
3306 le32_to_cpu(nesqp->nesqp_context->ip0),
3308 nesqp->nesqp_context->ts_val_delta = cpu_to_le32(
3310 nesqp->nesqp_context->ird_index = cpu_to_le32(nesqp->hwqp.qp_id);
3311 nesqp->nesqp_context->ird_ord_sizes |=
3316 nesqp->hwqp.sq_tail = 1;
3321 wqe = &nesqp->hwqp.sq_vbase[0];
3322 u64temp = (unsigned long)nesqp;
3334 if (nesqp->sq_kmapped) {
3335 nesqp->sq_kmapped = 0;
3336 kunmap(nesqp->page);
3340 nesqp->nesqp_context->ird_ord_sizes &=
3344 nesqp->skip_lsmm = 1;
3345 nesqp->hwqp.sq_tail = 0;
3347 (1 << 24) | 0x00800000 | nesqp->hwqp.qp_id);
3364 nesqp->hte_index = cpu_to_be32(crc_value ^ 0xffffffff);
3366 nesqp->hte_index, nesqp->hte_index & nesadapter->hte_index_mask);
3368 nesqp->hte_index &= nesadapter->hte_index_mask;
3369 nesqp->nesqp_context->hte_index = cpu_to_le32(nesqp->hte_index);
3371 nesqp->ietf_frame = &cm_node->mpa_frame;
3372 nesqp->private_data_len = (u8) cm_node->mpa_frame_size;
3394 nes_modify_qp(&nesqp->ibqp, &attr, IB_QP_STATE, NULL);
3397 "%lu\n", nesqp->hwqp.qp_id, jiffies);
3408 struct nes_qp *nesqp;
3423 nesqp = cm_id->provider_data;
3425 if (!nesqp) {
3431 nesqp->cm_id = NULL;
3462 struct nes_qp *nesqp;
3477 nesqp = cm_id->provider_data;
3478 if (!nesqp)
3481 nesqp->cm_id = NULL;