drivers/net/ethernet/qlogic/qed/qed_vf.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/qlogic/qed/qed_vf.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/qlogic/qed/qed_vf.h- Extension
.h- Size
- 29829 bytes
- Lines
- 1276
- 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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
qed_l2.hqed_mcp.h
Detected Declarations
struct vf_pf_resc_requeststruct hw_sb_infostruct channel_tlvstruct vfpf_first_tlvstruct pfvf_tlvstruct pfvf_def_resp_tlvstruct channel_list_end_tlvstruct vfpf_acquire_tlvstruct vf_pf_vfdev_infostruct vfpf_vport_update_rss_tlvstruct pfvf_storm_statsstruct pfvf_stats_infostruct pfvf_acquire_resp_tlvstruct pf_vf_pfdev_infostruct pf_vf_rescstruct pfvf_start_queue_resp_tlvstruct vfpf_qid_tlvstruct vfpf_start_rxq_tlvstruct vfpf_start_txq_tlvstruct vfpf_stop_rxqs_tlvstruct vfpf_stop_txqs_tlvstruct vfpf_update_rxq_tlvstruct vfpf_q_mac_vlan_filterstruct vfpf_vport_start_tlvstruct vfpf_vport_update_activate_tlvstruct vfpf_vport_update_tx_switch_tlvstruct vfpf_vport_update_vlan_strip_tlvstruct vfpf_vport_update_mcast_bin_tlvstruct vfpf_vport_update_accept_param_tlvstruct vfpf_vport_update_accept_any_vlan_tlvstruct vfpf_vport_update_sge_tpa_tlvstruct vfpf_vport_update_tlvstruct vfpf_ucast_filter_tlvstruct vfpf_update_tunn_param_tlvstruct pfvf_update_tunn_param_tlvstruct tlv_buffer_sizestruct vfpf_update_coalescestruct vfpf_read_coal_req_tlvstruct pfvf_read_coal_resp_tlvstruct vfpf_bulletin_update_mac_tlvstruct qed_bulletin_contentstruct qed_bulletinstruct qed_vf_iovenum qed_bulletin_bitfunction qed_vf_get_link_paramsfunction qed_vf_get_fw_versionfunction qed_vf_pf_rxq_startfunction qed_vf_pf_txq_start
Annotated Snippet
struct vf_pf_resc_request {
u8 num_rxqs;
u8 num_txqs;
u8 num_sbs;
u8 num_mac_filters;
u8 num_vlan_filters;
u8 num_mc_filters;
u8 num_cids;
u8 padding;
};
struct hw_sb_info {
u16 hw_sb_id;
u8 sb_qid;
u8 padding[5];
};
#define TLV_BUFFER_SIZE 1024
enum {
PFVF_STATUS_WAITING,
PFVF_STATUS_SUCCESS,
PFVF_STATUS_FAILURE,
PFVF_STATUS_NOT_SUPPORTED,
PFVF_STATUS_NO_RESOURCE,
PFVF_STATUS_FORCED,
PFVF_STATUS_MALICIOUS,
};
/* vf pf channel tlvs */
/* general tlv header (used for both vf->pf request and pf->vf response) */
struct channel_tlv {
u16 type;
u16 length;
};
/* header of first vf->pf tlv carries the offset used to calculate response
* buffer address
*/
struct vfpf_first_tlv {
struct channel_tlv tl;
u32 padding;
u64 reply_address;
};
/* header of pf->vf tlvs, carries the status of handling the request */
struct pfvf_tlv {
struct channel_tlv tl;
u8 status;
u8 padding[3];
};
/* response tlv used for most tlvs */
struct pfvf_def_resp_tlv {
struct pfvf_tlv hdr;
};
/* used to terminate and pad a tlv list */
struct channel_list_end_tlv {
struct channel_tlv tl;
u8 padding[4];
};
#define VFPF_ACQUIRE_OS_LINUX (0)
#define VFPF_ACQUIRE_OS_WINDOWS (1)
#define VFPF_ACQUIRE_OS_ESX (2)
#define VFPF_ACQUIRE_OS_SOLARIS (3)
#define VFPF_ACQUIRE_OS_LINUX_USERSPACE (4)
struct vfpf_acquire_tlv {
struct vfpf_first_tlv first_tlv;
struct vf_pf_vfdev_info {
#define VFPF_ACQUIRE_CAP_PRE_FP_HSI BIT(0) /* VF pre-FP hsi version */
#define VFPF_ACQUIRE_CAP_100G BIT(1) /* VF can support 100g */
/* A requirement for supporting multi-Tx queues on a single queue-zone,
* VF would pass qids as additional information whenever passing queue
* references.
*/
#define VFPF_ACQUIRE_CAP_QUEUE_QIDS BIT(2)
/* The VF is using the physical bar. While this is mostly internal
* to the VF, might affect the number of CIDs supported assuming
* QUEUE_QIDS is set.
*/
#define VFPF_ACQUIRE_CAP_PHYSICAL_BAR BIT(3)
u64 capabilities;
u8 fw_major;
u8 fw_minor;
u8 fw_revision;
Annotation
- Immediate include surface: `qed_l2.h`, `qed_mcp.h`.
- Detected declarations: `struct vf_pf_resc_request`, `struct hw_sb_info`, `struct channel_tlv`, `struct vfpf_first_tlv`, `struct pfvf_tlv`, `struct pfvf_def_resp_tlv`, `struct channel_list_end_tlv`, `struct vfpf_acquire_tlv`, `struct vf_pf_vfdev_info`, `struct vfpf_vport_update_rss_tlv`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.