Lines Matching +full:rx +full:- +full:input +full:- +full:m

1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /* Copyright (c) 2013-2022, Intel Corporation. */
13 * This header file describes the Virtual Function (VF) - Physical Function
18 * desc->opcode is always aqc_opc_send_msg_to_pf
48 VIRTCHNL_STATUS_ERR_PARAM = -5,
49 VIRTCHNL_STATUS_ERR_NO_MEMORY = -18,
50 VIRTCHNL_STATUS_ERR_OPCODE_MISMATCH = -38,
51 VIRTCHNL_STATUS_ERR_CQP_COMPL_ERROR = -39,
52 VIRTCHNL_STATUS_ERR_INVALID_VF_ID = -40,
53 VIRTCHNL_STATUS_ERR_ADMIN_QUEUE_ERROR = -53,
54 VIRTCHNL_STATUS_ERR_NOT_SUPPORTED = -64,
82 /* for hsplit_0 field of Rx HMC context */
97 /* Opcodes for VF-PF communication. These are placed in the v_opcode field
144 /* opcode 34 - 43 are reserved */
157 /* opcode 57 - 65 are reserved */
200 #define VF_IS_V10(_v) (((_v)->major == 1) && ((_v)->minor == 0))
201 #define VF_IS_V11(_ver) (((_ver)->major == 1) && ((_ver)->minor == 1))
215 /* VSI types that use VIRTCHNL interface for VF-PF communication. VSI_SRIOV
246 * TX/RX Checksum offloading and TSO for non-tunnelled packets.
313 * VF sends this message to set up parameters for one RX queue.
324 /* Rx queue config info */
346 * VF sends this message to set parameters for all active TX and RX queues
395 * NOTE: due to hardware requirements, all active queues (both TX and RX)
421 * VF sends these message to enable or disable TX/RX queue pairs.
520 * VIRTCHNL_VLAN_UNSUPPORTED - This field is not supported and if a VF driver
523 * VIRTCHNL_VLAN_ETHERTYPE_8100 - This field supports 0x8100 ethertype.
524 * VIRTCHNL_VLAN_ETHERTYPE_88A8 - This field supports 0x88A8 ethertype.
525 * VIRTCHNL_VLAN_ETHERTYPE_9100 - This field supports 0x9100 ethertype.
527 * VIRTCHNL_VLAN_ETHERTYPE_AND - Used when multiple ethertypes can be supported
539 * VIRTCHNL_ETHERTYPE_XOR - Used when only a single ethertype can be supported
553 * VIRTCHNL_VLAN_TAG_LOCATION_L2TAG1 - Used to tell the VF to insert and/or
554 * strip the VLAN tag using the L2TAG1 field of the Tx/Rx descriptors.
556 * VIRTCHNL_VLAN_TAG_LOCATION_L2TAG2 - Used to tell the VF to insert hardware
559 * VIRTCHNL_VLAN_TAG_LOCATION_L2TAG2 - Used to tell the VF to strip hardware
560 * offloaded VLAN tags using the L2TAG2_2 field of the Rx descriptor.
562 * VIRTCHNL_VLAN_PRIO - This field supports VLAN priority bits. This is used for
565 * VIRTCHNL_VLAN_TOGGLE_ALLOWED - This field is used to say whether a
644 * VIRTCHNL_ETHERTYPE_STRIPPING_MATCHES_INSERTION - The ethertype(s) specified
650 * VIRTCHNL_ETHERTYPE_MATCH_NOT_REQUIRED - The ethertype(s) specified for
712 * actual 2-byte VLAN TPID
730 * VF sends these messages to add/del one or more VLAN tag filters for Rx
1116 /* VF reset states - these are written into the RSTAT register:
1137 #define PROTO_HDR_FIELD_MASK ((1UL << PROTO_HDR_SHIFT) - 1)
1147 ((hdr)->field_selector |= BIT((field) & PROTO_HDR_FIELD_MASK))
1149 ((hdr)->field_selector &= ~BIT((field) & PROTO_HDR_FIELD_MASK))
1151 ((hdr)->field_selector & BIT((val) & PROTO_HDR_FIELD_MASK))
1152 #define VIRTCHNL_GET_PROTO_HDR_FIELD(hdr) ((hdr)->field_selector)
1162 ((hdr)->type = VIRTCHNL_PROTO_HDR_ ## hdr_type)
1164 (((hdr)->type) >> PROTO_HDR_SHIFT)
1166 ((hdr)->type == ((s32)((val) >> PROTO_HDR_SHIFT)))
1204 /* S-VLAN */
1207 /* C-VLAN */
1281 * 0 - from the outer layer
1282 * 1 - from the first inner layer
1283 * 2 - from the second inner layer
1398 u16 vsi_id; /* INPUT */
1403 u16 validate_only; /* INPUT */
1405 struct virtchnl_fdir_rule rule_cfg; /* INPUT */
1418 u16 vsi_id; /* INPUT */
1420 u32 flow_id; /* INPUT */
1509 (struct_size(p, member, count) + (old - 1 - struct_size(p, member, 0)))
1512 (struct_size(p, member, count - 1) + (old - struct_size(p, member, 0)))
1515 (struct_size(p, member, count) + (old - struct_size(p, member, 0)))
1520 #define virtchnl_struct_size(p, m, c) \ argument
1522 __vss(virtchnl_vf_resource, __vss_full, p, m, c), \
1523 __vss(virtchnl_vsi_queue_config_info, __vss_full, p, m, c), \
1524 __vss(virtchnl_irq_map_info, __vss_full, p, m, c), \
1525 __vss(virtchnl_ether_addr_list, __vss_full, p, m, c), \
1526 __vss(virtchnl_vlan_filter_list, __vss_full, p, m, c), \
1527 __vss(virtchnl_vlan_filter_list_v2, __vss_byelem, p, m, c), \
1528 __vss(virtchnl_tc_info, __vss_byelem, p, m, c), \
1529 __vss(virtchnl_rdma_qvlist_info, __vss_byelem, p, m, c), \
1530 __vss(virtchnl_qos_cap_list, __vss_byelem, p, m, c), \
1531 __vss(virtchnl_queues_bw_cfg, __vss_byelem, p, m, c), \
1532 __vss(virtchnl_rss_key, __vss_byone, p, m, c), \
1533 __vss(virtchnl_rss_lut, __vss_byone, p, m, c))
1574 vqc->num_queue_pairs); in virtchnl_vc_validate_vf_msg()
1575 if (vqc->num_queue_pairs == 0) in virtchnl_vc_validate_vf_msg()
1585 vimi->num_vectors); in virtchnl_vc_validate_vf_msg()
1586 if (vimi->num_vectors == 0) in virtchnl_vc_validate_vf_msg()
1601 veal->num_elements); in virtchnl_vc_validate_vf_msg()
1602 if (veal->num_elements == 0) in virtchnl_vc_validate_vf_msg()
1613 vfl->num_elements); in virtchnl_vc_validate_vf_msg()
1614 if (vfl->num_elements == 0) in virtchnl_vc_validate_vf_msg()
1643 qv->num_vectors); in virtchnl_vc_validate_vf_msg()
1652 vrk->key_len); in virtchnl_vc_validate_vf_msg()
1661 vrl->lut_entries); in virtchnl_vc_validate_vf_msg()
1684 vti->num_tc); in virtchnl_vc_validate_vf_msg()
1685 if (vti->num_tc == 0) in virtchnl_vc_validate_vf_msg()
1717 vfl->num_elements); in virtchnl_vc_validate_vf_msg()
1719 if (vfl->num_elements == 0) { in virtchnl_vc_validate_vf_msg()
1740 q_bw->num_queues); in virtchnl_vc_validate_vf_msg()
1741 if (q_bw->num_queues == 0) { in virtchnl_vc_validate_vf_msg()
1753 if (q_quanta->quanta_size == 0 || in virtchnl_vc_validate_vf_msg()
1754 q_quanta->queue_select.num_queues == 0) { in virtchnl_vc_validate_vf_msg()