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

Lines Matching defs:p_vf

90 static u8 ecore_vf_calculate_legacy(struct ecore_vf_info *p_vf)
94 if (p_vf->acquire.vfdev_info.eth_fp_hsi_minor ==
98 if (!(p_vf->acquire.vfdev_info.capabilities &
107 struct ecore_vf_info *p_vf)
118 init_data.opaque_fid = p_vf->opaque_fid;
129 p_ramrod->vf_id = GET_FIELD(p_vf->concrete_fid, PXP_CONCRETE_FID_VFID);
130 p_ramrod->opaque_fid = OSAL_CPU_TO_LE16(p_vf->opaque_fid);
146 fp_minor = p_vf->acquire.vfdev_info.eth_fp_hsi_minor;
151 p_vf->abs_vf_id,
162 p_vf->abs_vf_id, ETH_HSI_VER_MAJOR, fp_minor);
259 static bool ecore_iov_validate_queue_mode(struct ecore_vf_info *p_vf,
272 p_qcid = &p_vf->vf_queues[qid].cids[i];
289 struct ecore_vf_info *p_vf,
293 if (rx_qid >= p_vf->num_rxqs) {
296 p_vf->abs_vf_id, rx_qid, p_vf->num_rxqs);
300 return ecore_iov_validate_queue_mode(p_vf, rx_qid, mode, false);
304 struct ecore_vf_info *p_vf,
308 if (tx_qid >= p_vf->num_txqs) {
311 p_vf->abs_vf_id, tx_qid, p_vf->num_txqs);
315 return ecore_iov_validate_queue_mode(p_vf, tx_qid, mode, true);
319 struct ecore_vf_info *p_vf,
324 for (i = 0; i < p_vf->num_sbs; i++)
325 if (p_vf->igu_sbs[i] == sb_idx)
330 p_vf->abs_vf_id, sb_idx, p_vf->num_sbs);
336 static bool ecore_iov_validate_active_rxq(struct ecore_vf_info *p_vf)
340 for (i = 0; i < p_vf->num_rxqs; i++)
341 if (ecore_iov_validate_queue_mode(p_vf, i,
349 static bool ecore_iov_validate_active_txq(struct ecore_vf_info *p_vf)
353 for (i = 0; i < p_vf->num_txqs; i++)
354 if (ecore_iov_validate_queue_mode(p_vf, i,
369 struct ecore_vf_info *p_vf;
371 p_vf = ecore_iov_get_vf_info(p_hwfn, (u16)vfid, true);
372 if (!p_vf)
376 if (!p_vf->vf_bulletin)
379 p_bulletin = p_vf->bulletin.p_virt;
384 p_vf->bulletin.size - crc_size);
388 p_bulletin->version, p_vf->relative_vf_id,
394 params.dst_vfid = p_vf->abs_vf_id;
395 return ecore_dmae_host2host(p_hwfn, p_ptt, p_vf->bulletin.phys,
396 p_vf->vf_bulletin, p_vf->bulletin.size / 4,
874 struct ecore_vf_info *p_vf;
876 p_vf = ecore_iov_get_vf_info(p_hwfn, (u16)i, true);
877 if (!p_vf)
881 p_vf->num_sbs);
1069 struct ecore_vf_info *p_vf = ecore_iov_get_vf_info(p_hwfn, vfid, false);
1072 if (!p_vf)
1075 p_bulletin = p_vf->bulletin.p_virt;
1417 struct ecore_vf_info *p_vf,
1425 struct ecore_iov_vf_mbx *mbx = &p_vf->vf_mbx;
1437 if (!p_vf->b_hw_channel)
1441 eng_vf_id = p_vf->abs_vf_id;
1466 OSAL_IOV_PF_RESP_TYPE(p_hwfn, p_vf->relative_vf_id, status);
1494 struct ecore_vf_info *p_vf,
1524 p_vf->relative_vf_id,
1567 struct ecore_vf_info *p_vf)
1571 p_vf->vf_bulletin = 0;
1572 p_vf->vport_instance = 0;
1573 p_vf->configured_features = 0;
1576 p_vf->num_rxqs = p_vf->num_sbs;
1577 p_vf->num_txqs = p_vf->num_sbs;
1579 p_vf->num_active_rxqs = 0;
1582 struct ecore_vf_queue *p_queue = &p_vf->vf_queues[i];
1594 OSAL_MEMSET(&p_vf->shadow_config, 0, sizeof(p_vf->shadow_config));
1595 OSAL_MEMSET(&p_vf->acquire, 0, sizeof(p_vf->acquire));
1596 OSAL_IOV_VF_CLEANUP(p_hwfn, p_vf->relative_vf_id);
1613 struct ecore_vf_info *p_vf,
1628 if (!(p_vf->acquire.vfdev_info.capabilities &
1636 if (p_vf->acquire.vfdev_info.capabilities &
1655 struct ecore_vf_info *p_vf,
1662 p_resp->num_rxqs = p_vf->num_rxqs;
1663 p_resp->num_txqs = p_vf->num_txqs;
1664 p_resp->num_sbs = p_vf->num_sbs;
1667 p_resp->hw_sbs[i].hw_sb_id = p_vf->igu_sbs[i];
1678 ecore_fw_l2_queue(p_hwfn, p_vf->vf_queues[i].fw_rx_qid,
1684 p_resp->num_mac_filters = OSAL_MIN_T(u8, p_vf->num_mac_filters,
1686 p_resp->num_vlan_filters = OSAL_MIN_T(u8, p_vf->num_vlan_filters,
1689 ecore_iov_vf_mbx_acquire_resc_cids(p_hwfn, p_ptt, p_vf, p_req, p_resp);
1706 p_vf->abs_vf_id,
1718 if ((p_vf->acquire.vfdev_info.eth_fp_hsi_minor ==
1720 (p_vf->acquire.vfdev_info.os_type ==
1917 struct ecore_vf_info *p_vf, bool val)
1922 if (val == p_vf->spoof_chk) {
1930 params.opaque_fid = p_vf->opaque_fid;
1931 params.vport_id = p_vf->vport_id;
1938 p_vf->spoof_chk = val;
1939 p_vf->req_spoofchk_val = p_vf->spoof_chk;
1945 val, p_vf->relative_vf_id);
1952 struct ecore_vf_info *p_vf)
1961 filter.vport_to_add_to = p_vf->vport_id;
1966 if (!p_vf->shadow_config.vlans[i].used)
1970 filter.vlan = p_vf->shadow_config.vlans[i].vid;
1973 filter.vlan, p_vf->relative_vf_id);
1974 rc = ecore_sp_eth_filter_ucast(p_hwfn, p_vf->opaque_fid,
1979 p_vf->relative_vf_id);
1989 struct ecore_vf_info *p_vf,
1997 !(p_vf->configured_features & (1 << VLAN_ADDR_FORCED)))
1998 rc = ecore_iov_reconfigure_unicast_vlan(p_hwfn, p_vf);
2005 struct ecore_vf_info *p_vf,
2011 if (!p_vf->vport_instance)
2023 filter.vport_to_add_to = p_vf->vport_id;
2025 p_vf->bulletin.p_virt->mac,
2028 rc = ecore_sp_eth_filter_ucast(p_hwfn, p_vf->opaque_fid,
2037 p_vf->configured_features |= 1 << MAC_ADDR_FORCED;
2049 filter.vport_to_add_to = p_vf->vport_id;
2050 filter.vlan = p_vf->bulletin.p_virt->pvid;
2055 rc = ecore_sp_eth_filter_ucast(p_hwfn, p_vf->opaque_fid,
2066 vport_update.opaque_fid = p_vf->opaque_fid;
2067 vport_update.vport_id = p_vf->vport_id;
2075 1 : p_vf->shadow_config.inner_vlan_removal;
2089 struct ecore_vf_queue *p_queue = &p_vf->vf_queues[i];
2111 p_vf->configured_features |= 1 << VLAN_ADDR_FORCED;
2113 p_vf->configured_features &= ~(1 << VLAN_ADDR_FORCED);
2120 ecore_iov_reconfigure_unicast_shadow(p_hwfn, p_vf, events);
2306 struct ecore_vf_info *p_vf, bool b_is_tx)
2308 struct ecore_iov_vf_mbx *p_mbx = &p_vf->vf_mbx;
2312 if (!(p_vf->acquire.vfdev_info.capabilities &
2326 p_vf->relative_vf_id);
2334 p_vf->relative_vf_id, p_qid_tlv->qid);
2490 struct ecore_vf_info *p_vf)
2493 struct ecore_iov_vf_mbx *mbx = &p_vf->vf_mbx;
2573 ecore_iov_send_response(p_hwfn, p_ptt, p_vf, sizeof(*p_resp), status);
2578 struct ecore_vf_info *p_vf,
2582 struct ecore_iov_vf_mbx *mbx = &p_vf->vf_mbx;
2593 if (p_vf->acquire.vfdev_info.eth_fp_hsi_minor ==
2610 ecore_iov_send_response(p_hwfn, p_ptt, p_vf, length, status);
2969 struct ecore_vf_info *p_vf,
2981 p_vf->shadow_config.inner_vlan_removal = p_vlan_tlv->remove_vlan;
2984 if (!(p_vf->configured_features & (1 << VLAN_ADDR_FORCED))) {
3299 struct ecore_vf_info *p_vf,
3307 if (p_vf->shadow_config.vlans[i].used &&
3308 p_vf->shadow_config.vlans[i].vid ==
3310 p_vf->shadow_config.vlans[i].used = false;
3316 p_vf->relative_vf_id);
3322 p_vf->shadow_config.vlans[i].used = false;
3328 if (p_vf->bulletin.p_virt->valid_bitmap & (1 << VLAN_ADDR_FORCED))
3334 if (p_vf->shadow_config.vlans[i].used)
3337 p_vf->shadow_config.vlans[i].used = true;
3338 p_vf->shadow_config.vlans[i].vid = p_params->vlan;
3345 p_vf->relative_vf_id,
3355 struct ecore_vf_info *p_vf,
3368 if (p_vf->bulletin.p_virt->valid_bitmap & (1 << MAC_ADDR_FORCED))
3374 if (!OSAL_MEMCMP(p_vf->shadow_config.macs[i],
3376 OSAL_MEM_ZERO(p_vf->shadow_config.macs[i],
3390 OSAL_MEM_ZERO(p_vf->shadow_config.macs[i], ETH_ALEN);
3399 if (!OSAL_MEMCMP(p_vf->shadow_config.macs[i],
3401 OSAL_MEMCPY(p_vf->shadow_config.macs[i],
3420 struct ecore_vf_info *p_vf,
3426 rc = ecore_iov_vf_update_mac_shadow(p_hwfn, p_vf, p_params);
3432 rc = ecore_iov_vf_update_vlan_shadow(p_hwfn, p_vf, p_params);
3564 struct ecore_vf_info *p_vf)
3570 ecore_iov_vf_cleanup(p_hwfn, p_vf);
3572 if (p_vf->state != VF_STOPPED && p_vf->state != VF_FREE) {
3574 rc = ecore_sp_vf_stop(p_hwfn, p_vf->concrete_fid,
3575 p_vf->opaque_fid);
3583 p_vf->state = VF_STOPPED;
3586 ecore_iov_prepare_resp(p_hwfn, p_ptt, p_vf, CHANNEL_TLV_RELEASE,
3592 struct ecore_vf_info *p_vf)
3594 struct ecore_iov_vf_mbx *mbx = &p_vf->vf_mbx;
3611 if (!ecore_iov_validate_rxq(p_hwfn, p_vf, qid,
3615 p_vf->abs_vf_id, qid);
3619 p_cid = ecore_iov_get_vf_rx_queue_cid(&p_vf->vf_queues[qid]);
3624 if (!ecore_iov_validate_txq(p_hwfn, p_vf, qid,
3628 p_vf->abs_vf_id, qid);
3632 p_queue = &p_vf->vf_queues[qid];
3657 ecore_iov_send_response(p_hwfn, p_ptt, p_vf, sizeof(*p_resp), status);
3831 struct ecore_vf_info *p_vf,
3837 ecore_fid_pretend(p_hwfn, p_ptt, (u16)p_vf->concrete_fid);
3849 p_vf->abs_vf_id, val);
3858 struct ecore_vf_info *p_vf,
3898 p_vf->abs_vf_id, i);
3906 struct ecore_vf_info *p_vf,
3913 rc = ecore_iov_vf_flr_poll_dorq(p_hwfn, p_vf, p_ptt);
3917 rc = ecore_iov_vf_flr_poll_pbf(p_hwfn, p_vf, p_ptt);
3930 struct ecore_vf_info *p_vf;
3933 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, false);
3934 if (!p_vf)
3939 u16 vfid = p_vf->abs_vf_id;
3946 ecore_iov_vf_cleanup(p_hwfn, p_vf);
3949 if (!p_vf->b_init)
3953 rc = ecore_iov_vf_flr_poll(p_hwfn, p_vf, p_ptt);
3975 p_vf->state = VF_STOPPED;
3977 rc = ecore_iov_enable_vf_access(p_hwfn, p_ptt, p_vf);
3986 if (p_vf->state == VF_RESET)
3987 p_vf->state = VF_STOPPED;
3991 p_vf->vf_mbx.b_pending_msg = false;
4061 struct ecore_vf_info *p_vf;
4064 p_vf = ecore_iov_get_vf_info(p_hwfn, i, false);
4065 if (!p_vf)
4068 vfid = p_vf->abs_vf_id;
4071 u16 rel_vf_id = p_vf->relative_vf_id;
4077 p_vf->state = VF_RESET;
4098 struct ecore_vf_info *p_vf = ecore_iov_get_vf_info(p_hwfn, vfid, false);
4101 if (!p_vf)
4104 p_bulletin = p_vf->bulletin.p_virt;
4119 struct ecore_vf_info *p_vf;
4121 p_vf = ecore_iov_get_vf_info(p_hwfn, (u16)vfid, true);
4122 if (!p_vf)
4125 mbx = &p_vf->vf_mbx;
4132 p_vf->abs_vf_id);
4142 p_vf->abs_vf_id, mbx->first_tlv.tl.type);
4145 p_vf->relative_vf_id,
4151 ecore_iov_lock_vf_pf_channel(p_hwfn, p_vf,
4156 !p_vf->b_malicious) {
4160 ecore_iov_vf_mbx_acquire(p_hwfn, p_ptt, p_vf);
4163 ecore_iov_vf_mbx_start_vport(p_hwfn, p_ptt, p_vf);
4166 ecore_iov_vf_mbx_stop_vport(p_hwfn, p_ptt, p_vf);
4169 ecore_iov_vf_mbx_start_rxq(p_hwfn, p_ptt, p_vf);
4172 ecore_iov_vf_mbx_start_txq(p_hwfn, p_ptt, p_vf);
4175 ecore_iov_vf_mbx_stop_rxqs(p_hwfn, p_ptt, p_vf);
4178 ecore_iov_vf_mbx_stop_txqs(p_hwfn, p_ptt, p_vf);
4181 ecore_iov_vf_mbx_update_rxqs(p_hwfn, p_ptt, p_vf);
4184 ecore_iov_vf_mbx_vport_update(p_hwfn, p_ptt, p_vf);
4187 ecore_iov_vf_mbx_ucast_filter(p_hwfn, p_ptt, p_vf);
4190 ecore_iov_vf_mbx_close(p_hwfn, p_ptt, p_vf);
4193 ecore_iov_vf_mbx_int_cleanup(p_hwfn, p_ptt, p_vf);
4196 ecore_iov_vf_mbx_release(p_hwfn, p_ptt, p_vf);
4199 ecore_iov_vf_mbx_update_tunn_param(p_hwfn, p_ptt, p_vf);
4202 ecore_iov_vf_pf_set_coalesce(p_hwfn, p_ptt, p_vf);
4205 ecore_iov_vf_pf_get_coalesce(p_hwfn, p_ptt, p_vf);
4218 p_vf->abs_vf_id);
4222 p_vf->abs_vf_id, mbx->first_tlv.tl.type);
4225 ecore_iov_prepare_resp(p_hwfn, p_ptt, p_vf,
4238 p_vf->abs_vf_id,
4247 if (p_vf->acquire.first_tlv.reply_address &&
4249 p_vf->acquire.first_tlv.reply_address))
4250 ecore_iov_prepare_resp(p_hwfn, p_ptt, p_vf,
4257 p_vf->abs_vf_id);
4260 ecore_iov_unlock_vf_pf_channel(p_hwfn, p_vf,
4277 struct ecore_vf_info *p_vf;
4279 p_vf = &p_hwfn->pf_iov_info->vfs_array[i];
4280 if (p_vf->vf_mbx.b_pending_msg)
4304 struct ecore_vf_info *p_vf = ecore_sriov_get_vf_from_absid(p_hwfn,
4307 if (!p_vf)
4313 p_vf->vf_mbx.pending_req = (((u64)vf_msg->hi) << 32) |
4316 p_vf->vf_mbx.b_pending_msg = true;
4318 return OSAL_PF_VF_MSG(p_hwfn, p_vf->relative_vf_id);
4324 struct ecore_vf_info *p_vf;
4326 p_vf = ecore_sriov_get_vf_from_absid(p_hwfn, p_data->vf_id);
4328 if (!p_vf)
4331 if (!p_vf->b_malicious) {
4334 p_vf->abs_vf_id, p_data->err_id);
4336 p_vf->b_malicious = true;
4340 p_vf->abs_vf_id, p_data->err_id);
4343 OSAL_PF_VF_MALICIOUS(p_hwfn, p_vf->relative_vf_id);
4738 struct ecore_vf_info *p_vf;
4740 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4741 if (!p_vf || !p_vf->bulletin.p_virt)
4744 if (!(p_vf->bulletin.p_virt->valid_bitmap & (1 << MAC_ADDR_FORCED)))
4747 return p_vf->bulletin.p_virt->mac;
4753 struct ecore_vf_info *p_vf;
4755 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4756 if (!p_vf || !p_vf->bulletin.p_virt)
4759 if (!(p_vf->bulletin.p_virt->valid_bitmap & (1 << VLAN_ADDR_FORCED)))
4762 return p_vf->bulletin.p_virt->pvid;
4836 struct ecore_vf_info *p_vf;
4838 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4839 if (!p_vf)
4842 return p_vf->num_rxqs;
4848 struct ecore_vf_info *p_vf;
4850 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4851 if (!p_vf)
4854 return p_vf->num_active_rxqs;
4860 struct ecore_vf_info *p_vf;
4862 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4863 if (!p_vf)
4866 return p_vf->ctx;
4872 struct ecore_vf_info *p_vf;
4874 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4875 if (!p_vf)
4878 return p_vf->num_sbs;
4884 struct ecore_vf_info *p_vf;
4886 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4887 if (!p_vf)
4890 return (p_vf->state == VF_FREE);
4896 struct ecore_vf_info *p_vf;
4898 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4899 if (!p_vf)
4902 return (p_vf->state == VF_ACQUIRED);
4908 struct ecore_vf_info *p_vf;
4910 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4911 if (!p_vf)
4914 return (p_vf->state == VF_ENABLED);
4920 struct ecore_vf_info *p_vf;
4922 p_vf = ecore_iov_get_vf_info(p_hwfn, rel_vf_id, true);
4923 if (!p_vf)
4926 return (p_vf->state != VF_FREE && p_vf->state != VF_STOPPED);