Lines Matching +full:tx +full:- +full:queues +full:- +full:config
1 /* SPDX-License-Identifier: BSD-3-Clause */
36 * This header file describes the VF-PF communication protocol used
40 * desc->opcode is always aqc_opc_send_msg_to_pf
48 * have a maximum of sixteen queues for all of its VSIs.
57 * queues and interrupts. After these operations are complete, the VF
58 * driver may start its queues, optionally add MAC and VLAN filters, and
70 VIRTCHNL_STATUS_ERR_PARAM = -5,
71 VIRTCHNL_STATUS_ERR_NO_MEMORY = -18,
72 VIRTCHNL_STATUS_ERR_OPCODE_MISMATCH = -38,
73 VIRTCHNL_STATUS_ERR_CQP_COMPL_ERROR = -39,
74 VIRTCHNL_STATUS_ERR_INVALID_VF_ID = -40,
75 VIRTCHNL_STATUS_ERR_ADMIN_QUEUE_ERROR = -53,
76 VIRTCHNL_STATUS_ERR_NOT_SUPPORTED = -64,
117 /* Opcodes for VF-PF communication. These are placed in the v_opcode field
182 enum virtchnl_ops v_opcode; /* avoid confusion with desc->opcode */
183 enum virtchnl_status_code v_retval; /* ditto for desc->retval */
214 #define VF_IS_V10(_v) (((_v)->major == 1) && ((_v)->minor == 0))
215 #define VF_IS_V11(_ver) (((_ver)->major == 1) && ((_ver)->minor == 1))
223 * When reset is complete, PF must ensure that all queues in all VSIs associated
229 /* VSI types that use VIRTCHNL interface for VF-PF communication. VSI_SRIOV
258 * TX/RX Checksum offloading and TSO for non-tunnelled packets.
304 * VF sends this message to set up parameters for one TX queue.
309 /* Tx queue config info */
330 * all of the queues for a VF.
333 /* Rx queue config info */
352 * VF sends this message to set parameters for active TX and RX queues
354 * PF configures queues and returns status.
355 * If the number of queues specified is greater than the number of queues
356 * associated with the VSI, an error is returned and no queues are configured.
357 * NOTE: The VF is not required to configure all queues in a single request.
362 /* NOTE: vsi_id and queue_id should be identical for both queues. */
379 * VF sends this message to request the PF to allocate additional queues to
380 * this VF. Each VF gets a guaranteed number of queues on init but asking for
381 * additional queues must be negotiated. This is a best effort request as it
382 * is possible the PF does not have enough queues left to support the request.
394 * VF uses this message to map vectors to queues.
395 * The rxq_map and txq_map fields are bitmaps used to indicate which queues
400 * NOTE: due to hardware requirements, all active queues (both TX and RX)
425 * VF sends these message to enable or disable TX/RX queue pairs.
426 * The queues fields are bitmaps indicating which queues to act upon.
427 * (Currently, we only support 16 queues per VF, but we make the field
430 * NOTE: The VF is not required to enable/disable all queues in a single
583 u16 count; /* number of queues in a channel */
584 u16 offset; /* queues in a channel start from 'offset' */
707 * VF uses this message to request PF to map IWARP vectors to IWARP queues.
739 ((u16)(~0) - sizeof(struct virtchnl_vsi_queue_config_info)) /
743 ((u16)(~0) - sizeof(struct virtchnl_irq_map_info)) /
747 ((u16)(~0) - sizeof(struct virtchnl_ether_addr_list)) /
751 ((u16)(~0) - sizeof(struct virtchnl_vlan_filter_list)) /
755 ((u16)(~0) - sizeof(struct virtchnl_iwarp_qvlist_info)) /
759 ((u16)(~0) - sizeof(struct virtchnl_tc_info)) /
763 /* VF reset states - these are written into the RSTAT register:
819 if (vqc->num_queue_pairs == 0 || vqc->num_queue_pairs > in virtchnl_vc_validate_vf_msg()
825 valid_len += (vqc->num_queue_pairs * in virtchnl_vc_validate_vf_msg()
836 if (vimi->num_vectors == 0 || vimi->num_vectors > in virtchnl_vc_validate_vf_msg()
842 valid_len += (vimi->num_vectors * in virtchnl_vc_validate_vf_msg()
857 if (veal->num_elements == 0 || veal->num_elements > in virtchnl_vc_validate_vf_msg()
863 valid_len += veal->num_elements * in virtchnl_vc_validate_vf_msg()
874 if (vfl->num_elements == 0 || vfl->num_elements > in virtchnl_vc_validate_vf_msg()
880 valid_len += vfl->num_elements * sizeof(u16); in virtchnl_vc_validate_vf_msg()
907 if (qv->num_vectors == 0 || qv->num_vectors > in virtchnl_vc_validate_vf_msg()
913 valid_len += ((qv->num_vectors - 1) * in virtchnl_vc_validate_vf_msg()
923 if (vrk->key_len == 0) { in virtchnl_vc_validate_vf_msg()
928 valid_len += vrk->key_len - 1; in virtchnl_vc_validate_vf_msg()
937 if (vrl->lut_entries == 0) { in virtchnl_vc_validate_vf_msg()
942 valid_len += vrl->lut_entries - 1; in virtchnl_vc_validate_vf_msg()
962 if (vti->num_tc == 0 || vti->num_tc > in virtchnl_vc_validate_vf_msg()
968 valid_len += (vti->num_tc - 1) * in virtchnl_vc_validate_vf_msg()