include/linux/mlx5/fs.h
Source file repositories/reference/linux-study-clean/include/linux/mlx5/fs.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/mlx5/fs.h- Extension
.h- Size
- 11049 bytes
- Lines
- 386
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/mlx5/driver.hlinux/mlx5/mlx5_ifc.h
Detected Declarations
struct mlx5_pkt_reformatstruct mlx5_modify_hdrstruct mlx5_flow_definerstruct mlx5_flow_tablestruct mlx5_flow_groupstruct mlx5_flow_namespacestruct mlx5_flow_handlestruct mlx5_flow_contextstruct mlx5_flow_specstruct mlx5_flow_destinationstruct mod_hdr_tblstruct mlx5_flow_table_attrstruct mlx5_exe_asostruct mlx5_fs_vlanstruct mlx5_flow_actstruct mlx5_flow_act_crypto_paramsstruct mlx5_pkt_reformat_paramsenum mlx5_flow_destination_typeenum mlx5_flow_namespace_typeenum fs_flow_table_typeenum mlx5_flow_dest_range_fieldfunction build_leftovers_ft_param
Annotated Snippet
struct mlx5_flow_context {
u32 flags;
u32 flow_tag;
u32 flow_source;
};
struct mlx5_flow_spec {
u8 match_criteria_enable;
u32 match_criteria[MLX5_ST_SZ_DW(fte_match_param)];
u32 match_value[MLX5_ST_SZ_DW(fte_match_param)];
struct mlx5_flow_context flow_context;
};
enum {
MLX5_FLOW_DEST_VPORT_VHCA_ID = BIT(0),
MLX5_FLOW_DEST_VPORT_REFORMAT_ID = BIT(1),
};
enum mlx5_flow_dest_range_field {
MLX5_FLOW_DEST_RANGE_FIELD_PKT_LEN = 0,
};
struct mlx5_flow_destination {
enum mlx5_flow_destination_type type;
union {
u32 tir_num;
u32 ft_num;
struct mlx5_flow_table *ft;
struct mlx5_fc *counter;
struct {
u16 id;
} vhca;
struct {
u16 num;
u16 vhca_id;
struct mlx5_pkt_reformat *pkt_reformat;
u8 flags;
} vport;
struct {
struct mlx5_flow_table *hit_ft;
struct mlx5_flow_table *miss_ft;
enum mlx5_flow_dest_range_field field;
u32 min;
u32 max;
} range;
u32 sampler_id;
};
};
struct mod_hdr_tbl {
struct mutex lock; /* protects hlist */
DECLARE_HASHTABLE(hlist, 8);
};
struct mlx5_flow_namespace *
mlx5_get_fdb_sub_ns(struct mlx5_core_dev *dev, int n);
struct mlx5_flow_namespace *
mlx5_get_flow_namespace(struct mlx5_core_dev *dev,
enum mlx5_flow_namespace_type type);
struct mlx5_flow_namespace *
mlx5_get_flow_vport_namespace(struct mlx5_core_dev *dev,
enum mlx5_flow_namespace_type type,
int vport_idx);
struct mlx5_flow_table_attr {
int prio;
int max_fte;
u32 level;
u32 flags;
u16 uid;
u16 vport;
u16 esw_owner_vhca_id;
struct mlx5_flow_table *next_ft;
struct {
int max_num_groups;
int num_reserved_entries;
} autogroup;
};
struct mlx5_flow_table *
mlx5_create_flow_table(struct mlx5_flow_namespace *ns,
struct mlx5_flow_table_attr *ft_attr);
struct mlx5_flow_table *
mlx5_create_auto_grouped_flow_table(struct mlx5_flow_namespace *ns,
struct mlx5_flow_table_attr *ft_attr);
struct mlx5_flow_table *
mlx5_create_vport_flow_table(struct mlx5_flow_namespace *ns,
Annotation
- Immediate include surface: `linux/mlx5/driver.h`, `linux/mlx5/mlx5_ifc.h`.
- Detected declarations: `struct mlx5_pkt_reformat`, `struct mlx5_modify_hdr`, `struct mlx5_flow_definer`, `struct mlx5_flow_table`, `struct mlx5_flow_group`, `struct mlx5_flow_namespace`, `struct mlx5_flow_handle`, `struct mlx5_flow_context`, `struct mlx5_flow_spec`, `struct mlx5_flow_destination`.
- Atlas domain: Core OS / Core Kernel Interface.
- 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.