/* This is an interface definition file where existing enums and their values * must remain unchanged over time, so we specify explicit values for all enums.
*/
/* Transmit descriptor ID flags
*/ enum virtchnl2_tx_desc_ids {
VIRTCHNL2_TXDID_DATA = BIT(0),
VIRTCHNL2_TXDID_CTX = BIT(1), /* TXDID bit 2 is reserved * TXDID bit 3 is free for future use * TXDID bit 4 is reserved
*/
VIRTCHNL2_TXDID_FLEX_TSO_CTX = BIT(5), /* TXDID bit 6 is reserved */
VIRTCHNL2_TXDID_FLEX_L2TAG1_L2TAG2 = BIT(7), /* TXDID bits 8 and 9 are free for future use * TXDID bit 10 is reserved * TXDID bit 11 is free for future use
*/
VIRTCHNL2_TXDID_FLEX_FLOW_SCHED = BIT(12), /* TXDID bits 13 and 14 are free for future use */
VIRTCHNL2_TXDID_DESC_DONE = BIT(15),
};
/* Receive descriptor IDs */ enum virtchnl2_rx_desc_ids {
VIRTCHNL2_RXDID_1_32B_BASE = 1, /* FLEX_SQ_NIC and FLEX_SPLITQ share desc ids because they can be * differentiated based on queue model; e.g. single queue model can * only use FLEX_SQ_NIC and split queue model can only use FLEX_SPLITQ * for DID 2.
*/
VIRTCHNL2_RXDID_2_FLEX_SPLITQ = 2,
VIRTCHNL2_RXDID_2_FLEX_SQ_NIC = VIRTCHNL2_RXDID_2_FLEX_SPLITQ, /* 3 through 6 are reserved */
VIRTCHNL2_RXDID_7_HW_RSVD = 7, /* 8 through 15 are free */
};
/* Receive descriptor ID bitmasks */ #define VIRTCHNL2_RXDID_M(bit) BIT_ULL(VIRTCHNL2_RXDID_##bit)
/* For singleq (flex) virtchnl2_rx_flex_desc fields * For virtchnl2_rx_flex_desc.ptype_flex_flags0 member
*/ #define VIRTCHNL2_RX_FLEX_DESC_PTYPE_M GENMASK(9, 0)
/* For virtchnl2_rx_flex_desc.pkt_len member */ #define VIRTCHNL2_RX_FLEX_DESC_PKT_LEN_M GENMASK(13, 0)
/** * struct virtchnl2_rx_flex_desc_adv_nic_3 - RX descriptor writeback format. * @rxdid_ucast: ucast=[7:6], rsvd=[5:4], profile_id=[3:0]. * @status_err0_qw0: Status/Error section 0 in quad word 0. * @ptype_err_fflags0: ff0=[15:12], udp_len_err=[11], ip_hdr_err=[10], * ptype=[9:0]. * @pktlen_gen_bufq_id: bufq_id=[15] only in splitq, gen=[14] only in splitq, * plen=[13:0]. * @hdrlen_flags: miss_prepend=[15], trunc_mirr=[14], int_udp_0=[13], * ext_udp0=[12], sph=[11] only in splitq, rsc=[10] * only in splitq, header=[9:0]. * @status_err0_qw1: Status/Error section 0 in quad word 1. * @status_err1: Status/Error section 1. * @fflags1: Flexible flags section 1. * @ts_low: Lower word of timestamp value. * @buf_id: Buffer identifier. Only in splitq mode. * @misc: Union. * @misc.raw_cs: Raw checksum. * @misc.l2tag1: Stripped L2 tag from the received packet * @misc.rscseglen: * @hash1: Lower bits of Rx hash value. * @ff2_mirrid_hash2: Union. * @ff2_mirrid_hash2.fflags2: Flexible flags section 2. * @ff2_mirrid_hash2.mirrorid: Mirror id. * @ff2_mirrid_hash2.rscseglen: RSC segment length. * @hash3: Upper bits of Rx hash value. * @l2tag2: Extracted L2 tag 2 from the packet. * @fmd4: Flexible metadata container 4. * @l2tag1: Stripped L2 tag from the received packet * @fmd6: Flexible metadata container 6. * @ts_high: Timestamp higher word of the timestamp value. * * Profile ID 0x2, SplitQ, flex writeback format * * Flex-field 0: BufferID * Flex-field 1: Raw checksum/L2TAG1/RSC Seg Len (determined by HW) * Flex-field 2: Hash[15:0] * Flex-flags 2: Hash[23:16] * Flex-field 3: L2TAG2 * Flex-field 5: L2TAG1 * Flex-field 7: Timestamp (upper 32 bits)
*/ struct virtchnl2_rx_flex_desc_adv_nic_3 { /* Qword 0 */
u8 rxdid_ucast;
u8 status_err0_qw0;
__le16 ptype_err_fflags0;
__le16 pktlen_gen_bufq_id;
__le16 hdrlen_flags; /* Qword 1 */
u8 status_err0_qw1;
u8 status_err1;
u8 fflags1;
u8 ts_low;
__le16 buf_id; union {
__le16 raw_cs;
__le16 l2tag1;
__le16 rscseglen;
} misc; /* Qword 2 */
__le16 hash1; union {
u8 fflags2;
u8 mirrorid;
u8 hash2;
} ff2_mirrid_hash2;
u8 hash3;
__le16 l2tag2;
__le16 fmd4; /* Qword 3 */
__le16 l2tag1;
__le16 fmd6;
__le32 ts_high;
};
/* Common union for accessing descriptor format structs */ union virtchnl2_rx_desc { struct virtchnl2_singleq_base_rx_desc base_wb; struct virtchnl2_rx_flex_desc_nic flex_nic_wb; struct virtchnl2_rx_flex_desc_adv_nic_3 flex_adv_nic_3_wb;
};
#endif/* _VIRTCHNL_LAN_DESC_H_ */
Messung V0.5
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.