drivers/net/ethernet/qlogic/qed/qed_l2.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/qlogic/qed/qed_l2.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/qlogic/qed/qed_l2.h- Extension
.h- Size
- 12133 bytes
- Lines
- 455
- 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
linux/types.hlinux/io.hlinux/kernel.hlinux/slab.hlinux/qed/qed_eth_if.hqed.hqed_hw.hqed_sp.h
Detected Declarations
struct qed_rss_paramsstruct qed_sge_tpa_paramsstruct qed_filter_ucaststruct qed_filter_mcaststruct qed_sp_vport_start_paramsstruct qed_filter_accept_flagsstruct qed_arfs_config_paramsstruct qed_sp_vport_update_paramsstruct qed_queue_cid_paramsstruct qed_queue_cid_vf_paramsstruct qed_queue_cidenum qed_filter_opcodeenum qed_filter_ucast_typeenum qed_tpa_mode
Annotated Snippet
struct qed_rss_params {
u8 update_rss_config;
u8 rss_enable;
u8 rss_eng_id;
u8 update_rss_capabilities;
u8 update_rss_ind_table;
u8 update_rss_key;
u8 rss_caps;
u8 rss_table_size_log;
/* Indirection table consist of rx queue handles */
void *rss_ind_table[QED_RSS_IND_TABLE_SIZE];
u32 rss_key[QED_RSS_KEY_SIZE];
};
struct qed_sge_tpa_params {
u8 max_buffers_per_cqe;
u8 update_tpa_en_flg;
u8 tpa_ipv4_en_flg;
u8 tpa_ipv6_en_flg;
u8 tpa_ipv4_tunn_en_flg;
u8 tpa_ipv6_tunn_en_flg;
u8 update_tpa_param_flg;
u8 tpa_pkt_split_flg;
u8 tpa_hdr_data_split_flg;
u8 tpa_gro_consistent_flg;
u8 tpa_max_aggs_num;
u16 tpa_max_size;
u16 tpa_min_size_to_start;
u16 tpa_min_size_to_cont;
};
enum qed_filter_opcode {
QED_FILTER_ADD,
QED_FILTER_REMOVE,
QED_FILTER_MOVE,
QED_FILTER_REPLACE, /* Delete all MACs and add new one instead */
QED_FILTER_FLUSH, /* Removes all filters */
};
enum qed_filter_ucast_type {
QED_FILTER_MAC,
QED_FILTER_VLAN,
QED_FILTER_MAC_VLAN,
QED_FILTER_INNER_MAC,
QED_FILTER_INNER_VLAN,
QED_FILTER_INNER_PAIR,
QED_FILTER_INNER_MAC_VNI_PAIR,
QED_FILTER_MAC_VNI_PAIR,
QED_FILTER_VNI,
};
struct qed_filter_ucast {
enum qed_filter_opcode opcode;
enum qed_filter_ucast_type type;
u8 is_rx_filter;
u8 is_tx_filter;
u8 vport_to_add_to;
u8 vport_to_remove_from;
unsigned char mac[ETH_ALEN];
u8 assert_on_error;
u16 vlan;
u32 vni;
};
struct qed_filter_mcast {
/* MOVE is not supported for multicast */
enum qed_filter_opcode opcode;
u8 vport_to_add_to;
u8 vport_to_remove_from;
u8 num_mc_addrs;
#define QED_MAX_MC_ADDRS 64
unsigned char mac[QED_MAX_MC_ADDRS][ETH_ALEN];
};
/**
* qed_eth_rx_queue_stop(): This ramrod closes an Rx queue.
*
* @p_hwfn: HW device data.
* @p_rxq: Handler of queue to close
* @eq_completion_only: If True completion will be on
* EQe, if False completion will be
* on EQe if p_hwfn opaque
* different from the RXQ opaque
* otherwise on CQe.
* @cqe_completion: If True completion will be receive on CQe.
*
* Return: Int.
Annotation
- Immediate include surface: `linux/types.h`, `linux/io.h`, `linux/kernel.h`, `linux/slab.h`, `linux/qed/qed_eth_if.h`, `qed.h`, `qed_hw.h`, `qed_sp.h`.
- Detected declarations: `struct qed_rss_params`, `struct qed_sge_tpa_params`, `struct qed_filter_ucast`, `struct qed_filter_mcast`, `struct qed_sp_vport_start_params`, `struct qed_filter_accept_flags`, `struct qed_arfs_config_params`, `struct qed_sp_vport_update_params`, `struct qed_queue_cid_params`, `struct qed_queue_cid_vf_params`.
- 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.