コード例 #1
0
static void qed_fastpath_start(struct ecore_dev *edev)
{
	struct ecore_hwfn *p_hwfn;
	int i;

	for_each_hwfn(edev, i) {
		p_hwfn = &edev->hwfns[i];
		ecore_hw_start_fastpath(p_hwfn);
	}
コード例 #2
0
static int
qed_start_vport(struct ecore_dev *edev, struct qed_start_vport_params *p_params)
{
    int rc, i;

    for_each_hwfn(edev, i) {
        struct ecore_hwfn *p_hwfn = &edev->hwfns[i];
        u8 tx_switching = 0;
        struct ecore_sp_vport_start_params start = { 0 };

        start.tpa_mode = p_params->gro_enable ? ECORE_TPA_MODE_GRO :
                         ECORE_TPA_MODE_NONE;
        start.remove_inner_vlan = p_params->remove_inner_vlan;
        start.tx_switching = tx_switching;
        start.only_untagged = false;	/* untagged only */
        start.drop_ttl0 = p_params->drop_ttl0;
        start.concrete_fid = p_hwfn->hw_info.concrete_fid;
        start.opaque_fid = p_hwfn->hw_info.opaque_fid;
        start.concrete_fid = p_hwfn->hw_info.concrete_fid;
        start.handle_ptp_pkts = p_params->handle_ptp_pkts;
        start.vport_id = p_params->vport_id;
        start.max_buffers_per_cqe = 16;	/* TODO-is this right */
        start.mtu = p_params->mtu;
        /* @DPDK - Disable FW placement */
        start.zero_placement_offset = 1;

        rc = ecore_sp_vport_start(p_hwfn, &start);
        if (rc) {
            DP_ERR(edev, "Failed to start VPORT\n");
            return rc;
        }

        ecore_hw_start_fastpath(p_hwfn);

        DP_VERBOSE(edev, ECORE_MSG_SPQ,
                   "Started V-PORT %d with MTU %d\n",
                   p_params->vport_id, p_params->mtu);
    }

    ecore_reset_vport_stats(edev);

    return 0;
}