drivers/net/ethernet/intel/idpf/virtchnl2_lan_desc.h

Source file repositories/reference/linux-study-clean/drivers/net/ethernet/intel/idpf/virtchnl2_lan_desc.h

File Facts

System
Linux kernel
Corpus path
drivers/net/ethernet/intel/idpf/virtchnl2_lan_desc.h
Extension
.h
Size
16270 bytes
Lines
452
Domain
Driver Families
Bucket
drivers/net
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct virtchnl2_splitq_rx_buf_desc {
	struct {
		__le16  buf_id;
		__le16  rsvd0;
		__le32  rsvd1;
	} qword0;
	__le64  pkt_addr;
	__le64  hdr_addr;
	__le64  rsvd2;
};

/**
 * struct virtchnl2_singleq_rx_buf_desc - SingleQ RX buffer descriptor format.
 * @pkt_addr: Packet buffer address.
 * @hdr_addr: Header buffer address.
 * @rsvd1: Reserved.
 * @rsvd2: Reserved.
 *
 * SingleQ buffer
 * |                                                             0|
 * ----------------------------------------------------------------
 * | Rx packet buffer address                                     |
 * ----------------------------------------------------------------
 * | Rx header buffer address                                     |
 * ----------------------------------------------------------------
 * | RSV                                                          |
 * ----------------------------------------------------------------
 * | RSV                                                          |
 * ----------------------------------------------------------------
 * |                                                             0|
 */
struct virtchnl2_singleq_rx_buf_desc {
	__le64  pkt_addr;
	__le64  hdr_addr;
	__le64  rsvd1;
	__le64  rsvd2;
};

/**
 * struct virtchnl2_singleq_base_rx_desc - RX descriptor writeback format.
 * @qword0: First quad word struct.
 * @qword0.lo_dword: Lower dual word struct.
 * @qword0.lo_dword.mirroring_status: Mirrored packet status.
 * @qword0.lo_dword.l2tag1: Stripped L2 tag from the received packet.
 * @qword0.hi_dword: High dual word union.
 * @qword0.hi_dword.rss: RSS hash.
 * @qword0.hi_dword.fd_id: Flow director filter id.
 * @qword1: Second quad word struct.
 * @qword1.status_error_ptype_len: Status/error/PTYPE/length.
 * @qword2: Third quad word struct.
 * @qword2.ext_status: Extended status.
 * @qword2.rsvd: Reserved.
 * @qword2.l2tag2_1: Extracted L2 tag 2 from the packet.
 * @qword2.l2tag2_2: Reserved.
 * @qword3: Fourth quad word struct.
 * @qword3.reserved: Reserved.
 * @qword3.fd_id: Flow director filter id.
 *
 * Profile ID 0x1, SingleQ, base writeback format
 */
struct virtchnl2_singleq_base_rx_desc {
	struct {
		struct {
			__le16 mirroring_status;
			__le16 l2tag1;
		} lo_dword;
		union {
			__le32 rss;
			__le32 fd_id;
		} hi_dword;
	} qword0;
	struct {
		__le64 status_error_ptype_len;
	} qword1;
	struct {
		__le16 ext_status;
		__le16 rsvd;
		__le16 l2tag2_1;
		__le16 l2tag2_2;
	} qword2;
	struct {
		__le32 reserved;
		__le32 fd_id;
	} qword3;
};

/**
 * struct virtchnl2_rx_flex_desc_nic - RX descriptor writeback format.
 *
 * @rxdid: Descriptor builder profile id.

Annotation

Implementation Notes