net/bridge/br_private_mcast_eht.h
Source file repositories/reference/linux-study-clean/net/bridge/br_private_mcast_eht.h
File Facts
- System
- Linux kernel
- Corpus path
net/bridge/br_private_mcast_eht.h- Extension
.h- Size
- 2509 bytes
- Lines
- 95
- Domain
- Networking Core
- Bucket
- Sockets, Protocols, Packet Path, And Network Policy
- Inferred role
- Networking Core: implementation source
- Status
- source implementation candidate
Why This File Exists
Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.
- Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
struct net_bridge_group_eht_hoststruct net_bridge_group_eht_set_entrystruct net_bridge_group_eht_setfunction br_multicast_eht_should_del_pgfunction br_multicast_eht_hosts_over_limitfunction br_multicast_eht_hosts_incfunction br_multicast_eht_hosts_dec
Annotated Snippet
struct net_bridge_group_eht_host {
struct rb_node rb_node;
union net_bridge_eht_addr h_addr;
struct hlist_head set_entries;
unsigned int num_entries;
unsigned char filter_mode;
struct net_bridge_port_group *pg;
};
/* (host, src entry) added to a per-src set and host's list */
struct net_bridge_group_eht_set_entry {
struct rb_node rb_node;
struct hlist_node host_list;
union net_bridge_eht_addr h_addr;
struct timer_list timer;
struct net_bridge *br;
struct net_bridge_group_eht_set *eht_set;
struct net_bridge_group_eht_host *h_parent;
struct net_bridge_mcast_gc mcast_gc;
};
/* per-src set */
struct net_bridge_group_eht_set {
struct rb_node rb_node;
union net_bridge_eht_addr src_addr;
struct rb_root entry_tree;
struct timer_list timer;
struct net_bridge_port_group *pg;
struct net_bridge *br;
struct net_bridge_mcast_gc mcast_gc;
};
#ifdef CONFIG_BRIDGE_IGMP_SNOOPING
void br_multicast_eht_clean_sets(struct net_bridge_port_group *pg);
bool br_multicast_eht_handle(const struct net_bridge_mcast *brmctx,
struct net_bridge_port_group *pg,
void *h_addr,
void *srcs,
u32 nsrcs,
size_t addr_size,
int grec_type);
int br_multicast_eht_set_hosts_limit(struct net_bridge_port *p,
u32 eht_hosts_limit);
static inline bool
br_multicast_eht_should_del_pg(const struct net_bridge_port_group *pg)
{
return !!((pg->key.port->flags & BR_MULTICAST_FAST_LEAVE) &&
RB_EMPTY_ROOT(&pg->eht_host_tree));
}
static inline bool
br_multicast_eht_hosts_over_limit(const struct net_bridge_port_group *pg)
{
const struct net_bridge_port *p = pg->key.port;
return !!(p->multicast_eht_hosts_cnt >= p->multicast_eht_hosts_limit);
}
static inline void br_multicast_eht_hosts_inc(struct net_bridge_port_group *pg)
{
struct net_bridge_port *p = pg->key.port;
p->multicast_eht_hosts_cnt++;
}
static inline void br_multicast_eht_hosts_dec(struct net_bridge_port_group *pg)
{
struct net_bridge_port *p = pg->key.port;
p->multicast_eht_hosts_cnt--;
}
#endif /* CONFIG_BRIDGE_IGMP_SNOOPING */
#endif /* _BR_PRIVATE_MCAST_EHT_H_ */
Annotation
- Detected declarations: `struct net_bridge_group_eht_host`, `struct net_bridge_group_eht_set_entry`, `struct net_bridge_group_eht_set`, `function br_multicast_eht_should_del_pg`, `function br_multicast_eht_hosts_over_limit`, `function br_multicast_eht_hosts_inc`, `function br_multicast_eht_hosts_dec`.
- Atlas domain: Networking Core / Sockets, Protocols, Packet Path, And Network Policy.
- 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.