drivers/net/ethernet/mellanox/mlx5/core/en_rep.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/mellanox/mlx5/core/en_rep.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/mellanox/mlx5/core/en_rep.h- Extension
.h- Size
- 8767 bytes
- Lines
- 287
- 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
net/ip_tunnels.hlinux/rhashtable.hlinux/mutex.heswitch.hen.hlib/port_tun.h
Detected Declarations
struct mlx5e_neigh_update_tablestruct mlx5_tc_ct_privstruct mlx5_tc_int_port_privstruct mlx5e_rep_bondstruct mlx5e_tc_tun_encapstruct mlx5e_post_actstruct mlx5e_flow_metersstruct mlx5_rep_uplink_privstruct mlx5e_rep_privstruct mlx5e_neighstruct mlx5e_neigh_hash_entrystruct mlx5e_decap_keystruct mlx5e_decap_entrystruct mlx5e_mpls_infostruct mlx5e_encap_entrystruct mlx5e_rep_sq_peerstruct mlx5e_rep_sqfunction mlx5e_eswitch_repfunction mlx5e_is_uplink_repfunction mlx5e_rep_activate_channelsfunction mlx5e_rep_cleanupfunction mlx5e_rep_has_offload_statsfunction mlx5e_rep_get_offload_statsfunction mlx5e_is_vport_rep
Annotated Snippet
struct mlx5e_neigh_update_table {
struct rhashtable neigh_ht;
/* Save the neigh hash entries in a list in addition to the hash table
* (neigh_ht). In order to iterate easily over the neigh entries.
* Used for stats query.
*/
struct list_head neigh_list;
/* protect lookup/remove operations */
struct mutex encap_lock;
struct notifier_block netevent_nb;
struct delayed_work neigh_stats_work;
unsigned long min_interval; /* jiffies */
};
struct mlx5_tc_ct_priv;
struct mlx5_tc_int_port_priv;
struct mlx5e_rep_bond;
struct mlx5e_tc_tun_encap;
struct mlx5e_post_act;
struct mlx5e_flow_meters;
struct mlx5_rep_uplink_priv {
/* indirect block callbacks are invoked on bind/unbind events
* on registered higher level devices (e.g. tunnel devices)
*
* tc_indr_block_cb_priv_list is used to lookup indirect callback
* private data
*
*/
struct list_head tc_indr_block_priv_list;
struct mlx5_tun_entropy tun_entropy;
/* protects unready_flows */
struct mutex unready_flows_lock;
struct list_head unready_flows;
struct work_struct reoffload_flows_work;
/* maps tun_info to a unique id*/
struct mapping_ctx *tunnel_mapping;
/* maps tun_enc_opts to a unique id*/
struct mapping_ctx *tunnel_enc_opts_mapping;
struct mlx5e_post_act *post_act;
struct mlx5_tc_ct_priv *ct_priv;
struct mlx5e_tc_psample *tc_psample;
/* support eswitch vports bonding */
struct mlx5e_rep_bond *bond;
/* tc tunneling encapsulation private data */
struct mlx5e_tc_tun_encap *encap;
/* OVS internal port support */
struct mlx5e_tc_int_port_priv *int_port_priv;
struct mlx5e_flow_meters *flow_meters;
/* tc action stats */
struct mlx5e_tc_act_stats_handle *action_stats_handle;
struct work_struct mpesw_work;
};
struct mlx5e_rep_priv {
struct mlx5_eswitch_rep *rep;
struct mlx5e_neigh_update_table neigh_update;
struct net_device *netdev;
struct mlx5_flow_table *root_ft;
struct mlx5_flow_handle *vport_rx_rule;
struct list_head vport_sqs_list;
struct mlx5_rep_uplink_priv uplink_priv; /* valid for uplink rep */
struct rtnl_link_stats64 prev_vf_vport_stats;
struct mlx5_flow_handle *send_to_vport_meta_rule;
struct rhashtable tc_ht;
struct devlink_health_reporter *rep_vnic_reporter;
};
static inline
struct mlx5e_rep_priv *mlx5e_rep_to_rep_priv(struct mlx5_eswitch_rep *rep)
{
return rep->rep_data[REP_ETH].priv;
}
struct mlx5e_neigh {
union {
__be32 v4;
struct in6_addr v6;
} dst_ip;
int family;
Annotation
- Immediate include surface: `net/ip_tunnels.h`, `linux/rhashtable.h`, `linux/mutex.h`, `eswitch.h`, `en.h`, `lib/port_tun.h`.
- Detected declarations: `struct mlx5e_neigh_update_table`, `struct mlx5_tc_ct_priv`, `struct mlx5_tc_int_port_priv`, `struct mlx5e_rep_bond`, `struct mlx5e_tc_tun_encap`, `struct mlx5e_post_act`, `struct mlx5e_flow_meters`, `struct mlx5_rep_uplink_priv`, `struct mlx5e_rep_priv`, `struct mlx5e_neigh`.
- 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.