• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/dev/qlnx/qlnxe/

Lines Matching defs:p_vf

91 static u8 ecore_vf_calculate_legacy(struct ecore_vf_info *p_vf)
95 if (p_vf->acquire.vfdev_info.eth_fp_hsi_minor ==
99 if (!(p_vf->acquire.vfdev_info.capabilities &
108 struct ecore_vf_info *p_vf)
119 init_data.opaque_fid = p_vf->opaque_fid;
130 p_ramrod->vf_id = GET_FIELD(p_vf->concrete_fid, PXP_CONCRETE_FID_VFID);
131 p_ramrod->opaque_fid = OSAL_CPU_TO_LE16(p_vf->opaque_fid);
147 fp_minor = p_vf->acquire.vfdev_info.eth_fp_hsi_minor;
152 p_vf->abs_vf_id,
163 p_vf->abs_vf_id, ETH_HSI_VER_MAJOR, fp_minor);
260 static bool ecore_iov_validate_queue_mode(struct ecore_vf_info *p_vf,
273 p_qcid = &p_vf->vf_queues[qid].cids[i];
290 struct ecore_vf_info *p_vf,
294 if (rx_qid >= p_vf->num_rxqs) {
297 p_vf->abs_vf_id, rx_qid, p_vf->num_rxqs);
301 return ecore_iov_validate_queue_mode(p_vf, rx_qid, mode, false);
305 struct ecore_vf_info *p_vf,
309 if (tx_qid >= p_vf->num_txqs) {
312 p_vf->abs_vf_id, tx_qid, p_vf->num_txqs);
316 return ecore_iov_validate_queue_mode(p_vf, tx_qid, mode, true);
320 struct ecore_vf_info *p_vf,
325 for (i = 0; i < p_vf->num_sbs; i++)
326 if (p_vf->igu_sbs[i] == sb_idx)
331 p_vf->abs_vf_id, sb_idx, p_vf->num_sbs);
337 static bool ecore_iov_validate_active_rxq(struct ecore_vf_info *p_vf)
341 for (i = 0; i < p_vf->num_rxqs; i++)
342 if (ecore_iov_validate_queue_mode(p_vf, i,
350 static bool ecore_iov_validate_active_txq(struct ecore_vf_info *p_vf)
354 for (i = 0; i < p_vf->num_txqs; i++)
355 if (ecore_iov_validate_queue_mode(p_vf, i,
370 struct ecore_vf_info *p_vf;
372 p_vf = ecore_iov_get_vf_info(p_hwfn, (u16)vfid, true);
373 if (!p_vf)
377 if (!p_vf->vf_bulletin)
380 p_bulletin = p_vf->bulletin.p_virt;
385 p_vf->bulletin.size - crc_size);
389 p_bulletin->version, p_vf->relative_vf_id,
395 params.dst_vfid = p_vf->abs_vf_id;
396 return ecore_dmae_host2host(p_hwfn, p_ptt, p_vf->bulletin.phys,
397 p_vf->vf_bulletin, p_vf->bulletin.size / 4,
875 struct ecore_vf_info *p_vf;
877 p_vf = ecore_iov_get_vf_info(p_hwfn, (u16)i, true);
878 if (!p_vf)
882 p_vf->num_sbs);
1070 struct ecore_vf_info *p_vf = ecore_iov_get_vf_info(p_hwfn, vfid, false);
1073 if (!p_vf)
1076 p_bulletin = p_vf->bulletin.p_virt;
1418 struct ecore_vf_info *p_vf,
1426 struct ecore_iov_vf_mbx *mbx = &p_vf->vf_mbx;
1438 if (!p_vf->b_hw_channel)
1442 eng_vf_id = p_vf->abs_vf_id;
1467 OSAL_IOV_PF_RESP_TYPE(p_hwfn, p_vf->relative_vf_id, status);
1495 struct ecore_vf_info *p_vf,
1525 p_vf->relative_vf_id,
1568 struct ecore_vf_info *p_vf)
1572 p_vf->vf_bulletin = 0;
1573 p_vf->vport_instance = 0;
1574 p_vf->configured_features = 0;
1577 p_vf->num_rxqs = p_vf->num_sbs;
1578 p_vf->num_txqs = p_vf->num_sbs;
1580 p_vf->num_active_rxqs = 0;
1583 struct ecore_vf_queue *p_queue = &p_vf->vf_queues[i];
1595 OSAL_MEMSET(&p_vf->shadow_config, 0, sizeof(p_vf->shadow_config));
1596 OSAL_MEMSET(&p_vf->acquire, 0, sizeof(p_vf->acquire));
1597 OSAL_IOV_VF_CLEANUP(p_hwfn, p_vf->relative_vf_id);
1614 struct ecore_vf_info *p_vf,
1629 if (!(p_vf->acquire.vfdev_info.capabilities &
1637 if (p_vf->acquire.vfdev_info.capabilities &
1656 struct ecore_vf_info *p_vf,
1663 p_resp->num_rxqs = p_vf->num_rxqs;
1664 p_resp->num_txqs = p_vf->num_txqs;
1665 p_resp->num_sbs = p_vf->num_sbs;
1668 p_resp->hw_sbs[i].hw_sb_id = p_vf->igu_sbs[i];
1679 ecore_fw_l2_queue(p_hwfn, p_vf->vf_queues[i].fw_rx_qid,
1685 p_resp->num_mac_filters = OSAL_MIN_T(u8, p_vf->num_mac_filters,
1687 p_resp->num_vlan_filters = OSAL_MIN_T(u8, p_vf->num_vlan_filters,
1690 ecore_iov_vf_mbx_acquire_resc_cids(p_hwfn, p_ptt, p_vf, p_req, p_resp);
1707 p_vf->abs_vf_id,
1719 if ((p_vf->acquire.vfdev_info.eth_fp_hsi_minor ==
1721 (p_vf->acquire.vfdev_info.os_type ==
1918 struct ecore_vf_info *p_vf, bool val)
1923 if (val == p_vf->spoof_chk) {
1931 params.opaque_fid = p_vf->opaque_fid;
1932 params.vport_id = p_vf->vport_id;
1939 p_vf->spoof_chk = val;
1940 p_vf->req_spoofchk_val = p_vf->spoof_chk;
1946 val, p_vf->relative_vf_id);
1953 struct ecore_vf_info *p_vf)
1962 filter.vport_to_add_to = p_vf->vport_id;
1967 if (!p_vf->shadow_config.vlans[i].used)
1971 filter.vlan = p_vf->shadow_config.vlans[i].vid;
1974 filter.vlan, p_vf->relative_vf_id);
1975 rc = ecore_sp_eth_filter_ucast(p_hwfn, p_vf->opaque_fid,
1980 p_vf->relative_vf_id);
1990 struct ecore_vf_info *p_vf,
1998 !(p_vf->configured_features & (1 << VLAN_ADDR_FORCED)))
1999 rc = ecore_iov_reconfigure_unicast_vlan(p_hwfn, p_vf);
2006 struct ecore_vf_info *p_vf,
2012 if (!p_vf->vport_instance)
2024 filter.vport_to_add_to = p_vf->vport_id;
2026 p_vf->bulletin.p_virt->mac,
2029 rc = ecore_sp_eth_filter_ucast(p_hwfn, p_vf->opaque_fid,
2038 p_vf->configured_features |= 1 << MAC_ADDR_FORCED;
2050 filter.vport_to_add_to = p_vf->vport_id;
2051 filter.vlan = p_vf->bulletin.p_virt->pvid;
2056 rc = ecore_sp_eth_filter_ucast(p_hwfn, p_vf->opaque_fid,
2067 vport_update.opaque_fid = p_vf->opaque_fid;
2068 vport_update.vport_id = p_vf->vport_id;
2076 1 : p_vf->shadow_config.inner_vlan_removal;
2090 struct ecore_vf_queue *p_queue = &p_vf->vf_queues[i];
2112 p_vf->configured_features |= 1 << VLAN_ADDR_FORCED;
2114 p_vf->configured_features &= ~(1 << VLAN_ADDR_FORCED);
2121 ecore_iov_reconfigure_unicast_shadow(p_hwfn, p_vf, events);
2307 struct ecore_vf_info *p_vf, bool b_is_tx)
2309 struct ecore_iov_vf_mbx *p_mbx = &p_vf->vf_mbx;
2313 if (!(p_vf->acquire.vfdev_info.capabilities &
2327 p_vf->relative_vf_id);
2335 p_vf->relative_vf_id, p_qid_tlv->qid);
2491 struct ecore_vf_info *p_vf)
2494 struct ecore_iov_vf_mbx *mbx = &p_vf->vf_mbx;
2574 ecore_iov_send_response(p_hwfn, p_ptt, p_vf, sizeof(*p_resp), status);
2579 struct ecore_vf_info *p_vf,
2583 struct ecore_iov_vf_mbx *mbx = &p_vf->vf_mbx;
2594 if (p_vf->acquire.vfdev_info.eth_fp_hsi_minor ==
2611 ecore_iov_send_response(p_hwfn, p_ptt, p_vf, length, status);
2970 struct ecore_vf_info *p_vf,
2982 p_vf->shadow_config.inner_vlan_removal = p_vlan_tlv->remove_vlan;
2985 if (!(p_vf->configured_features & (1 << VLAN_ADDR_FORCED))) {
3300 struct ecore_vf_info *p_vf,
3308 if (p_vf->shadow_config.vlans[i].used &&
3309 p_vf->shadow_config.vlans[i].vid ==
3311 p_vf->shadow_config.vlans[i].used = false;
3317 p_vf->relative_vf_id);
3323 p_vf->shadow_config.vlans[i].used = false;
3329 if (p_vf->bulletin.p_virt->valid_bitmap & (1 << VLAN_ADDR_FORCED))
3335 if (p_vf->shadow_config.vlans[i].used)
3338 p_vf->shadow_config.vlans[i].used = true;
3339 p_vf->shadow_config.vlans[i].vid = p_params->vlan;
3346 p_vf->relative_vf_id,
3356 struct ecore_vf_info *p_vf,
3369 if (p_vf->bulletin.p_virt->valid_bitmap & (1 << MAC_ADDR_FORCED))
3375 if (!OSAL_MEMCMP(p_vf->shadow_config.macs[i],
3377 OSAL_MEM_ZERO(p_vf->shadow_config.macs[i],
3391 OSAL_MEM_ZERO(p_vf->shadow_config.macs[i], ETH_ALEN);
3400 if (!OSAL_MEMCMP(p_vf->shadow_config.macs[i],
3402 OSAL_MEMCPY(p_vf->shadow_config.macs[i],
3421 struct ecore_vf_info *p_vf,
3427 rc = ecore_iov_vf_update_mac_shadow(p_hwfn, p_vf, p_params);
3433 rc = ecore_iov_vf_update_vlan_shadow(p_hwfn, p_vf, p_params);
3565 struct ecore_vf_info *p_vf)
3571 ecore_iov_vf_cleanup(p_hwfn, p_vf);
3573 if (p_vf->state != VF_STOPPED && p_vf->state != VF_FREE) {
3575 rc = ecore_sp_vf_stop(p_hwfn, p_vf->concrete_fid,
3576 p_vf->opaque_fid);
3584 p_vf->state = VF_STOPPED;
3587 ecore_iov_prepare_resp(p_hwfn, p_ptt, p_vf, CHANNEL_TLV_RELEASE,
3593 struct ecore_vf_info *p_vf)
3595 struct ecore_iov_vf_mbx *mbx = &p_vf->vf_mbx;
3612 if (!ecore_iov_validate_rxq(p_hwfn, p_vf, qid,
3616 p_vf->abs_vf_id, qid);
3620 p_cid = ecore_iov_get_vf_rx_queue_cid(&p_vf->vf_queues[qid]);
3625 if (!ecore_iov_validate_txq(p_hwfn, p_vf, qid,
3629 p_vf->abs_vf_id, qid);
3633 p_queue = &p_vf->vf_queues[qid];
3658 ecore_iov_send_response(p_hwfn, p_ptt, p_vf, sizeof(*p_resp), status);
3832 struct ecore_vf_info *p_vf,
3838 ecore_fid_pretend(p_hwfn, p_ptt, (u16)p_vf->concrete_fid);
3850 p_vf->abs_vf_id, val);
3859 struct ecore_vf_info *p_vf,
3899 p_vf->abs_vf_id, i);
3907 struct ecore_vf_info *p_vf,
3914 rc = ecore_iov_vf_flr_poll_dorq(p_hwfn, p_vf, p_ptt);
3918 rc = ecore_iov_vf_flr_poll_pbf(p_hwfn, p_vf, p_ptt);
3931 struct ecore_vf_info *p_vf;
3934 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, false);
3935 if (!p_vf)
3940 u16 vfid = p_vf->abs_vf_id;
3947 ecore_iov_vf_cleanup(p_hwfn, p_vf);
3950 if (!p_vf->b_init)
3954 rc = ecore_iov_vf_flr_poll(p_hwfn, p_vf, p_ptt);
3976 p_vf->state = VF_STOPPED;
3978 rc = ecore_iov_enable_vf_access(p_hwfn, p_ptt, p_vf);
3987 if (p_vf->state == VF_RESET)
3988 p_vf->state = VF_STOPPED;
3992 p_vf->vf_mbx.b_pending_msg = false;
4062 struct ecore_vf_info *p_vf;
4065 p_vf = ecore_iov_get_vf_info(p_hwfn, i, false);
4066 if (!p_vf)
4069 vfid = p_vf->abs_vf_id;
4072 u16 rel_vf_id = p_vf->relative_vf_id;
4078 p_vf->state = VF_RESET;
4099 struct ecore_vf_info *p_vf = ecore_iov_get_vf_info(p_hwfn, vfid, false);
4102 if (!p_vf)
4105 p_bulletin = p_vf->bulletin.p_virt;
4120 struct ecore_vf_info *p_vf;
4122 p_vf = ecore_iov_get_vf_info(p_hwfn, (u16)vfid, true);
4123 if (!p_vf)
4126 mbx = &p_vf->vf_mbx;
4133 p_vf->abs_vf_id);
4143 p_vf->abs_vf_id, mbx->first_tlv.tl.type);
4146 p_vf->relative_vf_id,
4152 ecore_iov_lock_vf_pf_channel(p_hwfn, p_vf,
4157 !p_vf->b_malicious) {
4161 ecore_iov_vf_mbx_acquire(p_hwfn, p_ptt, p_vf);
4164 ecore_iov_vf_mbx_start_vport(p_hwfn, p_ptt, p_vf);
4167 ecore_iov_vf_mbx_stop_vport(p_hwfn, p_ptt, p_vf);
4170 ecore_iov_vf_mbx_start_rxq(p_hwfn, p_ptt, p_vf);
4173 ecore_iov_vf_mbx_start_txq(p_hwfn, p_ptt, p_vf);
4176 ecore_iov_vf_mbx_stop_rxqs(p_hwfn, p_ptt, p_vf);
4179 ecore_iov_vf_mbx_stop_txqs(p_hwfn, p_ptt, p_vf);
4182 ecore_iov_vf_mbx_update_rxqs(p_hwfn, p_ptt, p_vf);
4185 ecore_iov_vf_mbx_vport_update(p_hwfn, p_ptt, p_vf);
4188 ecore_iov_vf_mbx_ucast_filter(p_hwfn, p_ptt, p_vf);
4191 ecore_iov_vf_mbx_close(p_hwfn, p_ptt, p_vf);
4194 ecore_iov_vf_mbx_int_cleanup(p_hwfn, p_ptt, p_vf);
4197 ecore_iov_vf_mbx_release(p_hwfn, p_ptt, p_vf);
4200 ecore_iov_vf_mbx_update_tunn_param(p_hwfn, p_ptt, p_vf);
4203 ecore_iov_vf_pf_set_coalesce(p_hwfn, p_ptt, p_vf);
4206 ecore_iov_vf_pf_get_coalesce(p_hwfn, p_ptt, p_vf);
4219 p_vf->abs_vf_id);
4223 p_vf->abs_vf_id, mbx->first_tlv.tl.type);
4226 ecore_iov_prepare_resp(p_hwfn, p_ptt, p_vf,
4239 p_vf->abs_vf_id,
4248 if (p_vf->acquire.first_tlv.reply_address &&
4250 p_vf->acquire.first_tlv.reply_address))
4251 ecore_iov_prepare_resp(p_hwfn, p_ptt, p_vf,
4258 p_vf->abs_vf_id);
4261 ecore_iov_unlock_vf_pf_channel(p_hwfn, p_vf,
4278 struct ecore_vf_info *p_vf;
4280 p_vf = &p_hwfn->pf_iov_info->vfs_array[i];
4281 if (p_vf->vf_mbx.b_pending_msg)
4305 struct ecore_vf_info *p_vf = ecore_sriov_get_vf_from_absid(p_hwfn,
4308 if (!p_vf)
4314 p_vf->vf_mbx.pending_req = (((u64)vf_msg->hi) << 32) |
4317 p_vf->vf_mbx.b_pending_msg = true;
4319 return OSAL_PF_VF_MSG(p_hwfn, p_vf->relative_vf_id);
4325 struct ecore_vf_info *p_vf;
4327 p_vf = ecore_sriov_get_vf_from_absid(p_hwfn, p_data->vf_id);
4329 if (!p_vf)
4332 if (!p_vf->b_malicious) {
4335 p_vf->abs_vf_id, p_data->err_id);
4337 p_vf->b_malicious = true;
4341 p_vf->abs_vf_id, p_data->err_id);
4344 OSAL_PF_VF_MALICIOUS(p_hwfn, p_vf->relative_vf_id);
4739 struct ecore_vf_info *p_vf;
4741 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4742 if (!p_vf || !p_vf->bulletin.p_virt)
4745 if (!(p_vf->bulletin.p_virt->valid_bitmap & (1 << MAC_ADDR_FORCED)))
4748 return p_vf->bulletin.p_virt->mac;
4754 struct ecore_vf_info *p_vf;
4756 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4757 if (!p_vf || !p_vf->bulletin.p_virt)
4760 if (!(p_vf->bulletin.p_virt->valid_bitmap & (1 << VLAN_ADDR_FORCED)))
4763 return p_vf->bulletin.p_virt->pvid;
4837 struct ecore_vf_info *p_vf;
4839 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4840 if (!p_vf)
4843 return p_vf->num_rxqs;
4849 struct ecore_vf_info *p_vf;
4851 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4852 if (!p_vf)
4855 return p_vf->num_active_rxqs;
4861 struct ecore_vf_info *p_vf;
4863 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4864 if (!p_vf)
4867 return p_vf->ctx;
4873 struct ecore_vf_info *p_vf;
4875 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4876 if (!p_vf)
4879 return p_vf->num_sbs;
4885 struct ecore_vf_info *p_vf;
4887 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4888 if (!p_vf)
4891 return (p_vf->state == VF_FREE);
4897 struct ecore_vf_info *p_vf;
4899 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4900 if (!p_vf)
4903 return (p_vf->state == VF_ACQUIRED);
4909 struct ecore_vf_info *p_vf;
4911 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4912 if (!p_vf)
4915 return (p_vf->state == VF_ENABLED);
4921 struct ecore_vf_info *p_vf;
4923 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4924 if (!p_vf)
4927 return (p_vf->state != VF_FREE && p_vf->state != VF_STOPPED);