drivers/net/ethernet/marvell/prestera/prestera_acl.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/marvell/prestera/prestera_acl.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/marvell/prestera/prestera_acl.h- Extension
.h- Size
- 6521 bytes
- Lines
- 210
- 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.hprestera_counter.h
Detected Declarations
struct prestera_acl_matchstruct prestera_acl_action_jumpstruct prestera_acl_action_policestruct prestera_acl_action_countstruct prestera_acl_rule_entry_keystruct prestera_acl_hw_action_infostruct prestera_acl_rule_entry_argstruct prestera_acl_rulestruct prestera_acl_ifacestruct prestera_aclstruct prestera_switchstruct prestera_flow_blockenum prestera_acl_match_typeenum prestera_acl_rule_action
Annotated Snippet
struct prestera_acl_match {
__be32 key[__PRESTERA_ACL_RULE_MATCH_TYPE_MAX];
__be32 mask[__PRESTERA_ACL_RULE_MATCH_TYPE_MAX];
};
struct prestera_acl_action_jump {
u32 index;
};
struct prestera_acl_action_police {
u32 id;
};
struct prestera_acl_action_count {
u32 id;
};
struct prestera_acl_rule_entry_key {
u32 prio;
struct prestera_acl_match match;
};
struct prestera_acl_hw_action_info {
enum prestera_acl_rule_action id;
union {
struct prestera_acl_action_police police;
struct prestera_acl_action_count count;
struct prestera_acl_action_jump jump;
};
};
/* This struct (arg) used only to be passed as parameter for
* acl_rule_entry_create. Must be flat. Can contain object keys, which will be
* resolved to object links, before saving to acl_rule_entry struct
*/
struct prestera_acl_rule_entry_arg {
u32 vtcam_id;
struct {
struct {
u8 valid:1;
} accept, drop, trap;
struct {
struct prestera_acl_action_jump i;
u8 valid:1;
} jump;
struct {
u8 valid:1;
u64 rate;
u64 burst;
bool ingress;
} police;
struct {
u8 valid:1;
u32 client;
} count;
};
};
struct prestera_acl_rule {
struct rhash_head ht_node; /* Member of acl HT */
struct list_head list;
struct prestera_acl_ruleset *ruleset;
struct prestera_acl_ruleset *jump_ruleset;
unsigned long cookie;
u32 chain_index;
u32 priority;
struct prestera_acl_rule_entry_key re_key;
struct prestera_acl_rule_entry_arg re_arg;
struct prestera_acl_rule_entry *re;
};
struct prestera_acl_iface {
union {
struct prestera_port *port;
u32 index;
};
u8 type;
};
struct prestera_acl;
struct prestera_switch;
struct prestera_flow_block;
int prestera_acl_init(struct prestera_switch *sw);
void prestera_acl_fini(struct prestera_switch *sw);
struct prestera_acl_rule *
prestera_acl_rule_create(struct prestera_acl_ruleset *ruleset,
unsigned long cookie, u32 chain_index);
void prestera_acl_rule_priority_set(struct prestera_acl_rule *rule,
Annotation
- Immediate include surface: `linux/types.h`, `prestera_counter.h`.
- Detected declarations: `struct prestera_acl_match`, `struct prestera_acl_action_jump`, `struct prestera_acl_action_police`, `struct prestera_acl_action_count`, `struct prestera_acl_rule_entry_key`, `struct prestera_acl_hw_action_info`, `struct prestera_acl_rule_entry_arg`, `struct prestera_acl_rule`, `struct prestera_acl_iface`, `struct prestera_acl`.
- 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.