include/net/garp.h
Source file repositories/reference/linux-study-clean/include/net/garp.h
File Facts
- System
- Linux kernel
- Corpus path
include/net/garp.h- Extension
.h- Size
- 2731 bytes
- Lines
- 133
- 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
linux/if_ether.hlinux/types.hnet/stp.h
Detected Declarations
struct garp_pdu_hdrstruct garp_msg_hdrstruct garp_attr_hdrstruct garp_skb_cbstruct garp_attrstruct garp_applicationstruct garp_applicantstruct garp_portenum garp_attr_eventenum garp_applicant_stateenum garp_eventenum garp_actionenum garp_applications
Annotated Snippet
struct garp_pdu_hdr {
__be16 protocol;
};
struct garp_msg_hdr {
u8 attrtype;
};
enum garp_attr_event {
GARP_LEAVE_ALL,
GARP_JOIN_EMPTY,
GARP_JOIN_IN,
GARP_LEAVE_EMPTY,
GARP_LEAVE_IN,
GARP_EMPTY,
};
struct garp_attr_hdr {
u8 len;
u8 event;
u8 data[];
};
struct garp_skb_cb {
u8 cur_type;
};
static inline struct garp_skb_cb *garp_cb(struct sk_buff *skb)
{
BUILD_BUG_ON(sizeof(struct garp_skb_cb) >
sizeof_field(struct sk_buff, cb));
return (struct garp_skb_cb *)skb->cb;
}
enum garp_applicant_state {
GARP_APPLICANT_INVALID,
GARP_APPLICANT_VA,
GARP_APPLICANT_AA,
GARP_APPLICANT_QA,
GARP_APPLICANT_LA,
GARP_APPLICANT_VP,
GARP_APPLICANT_AP,
GARP_APPLICANT_QP,
GARP_APPLICANT_VO,
GARP_APPLICANT_AO,
GARP_APPLICANT_QO,
__GARP_APPLICANT_MAX
};
#define GARP_APPLICANT_MAX (__GARP_APPLICANT_MAX - 1)
enum garp_event {
GARP_EVENT_REQ_JOIN,
GARP_EVENT_REQ_LEAVE,
GARP_EVENT_R_JOIN_IN,
GARP_EVENT_R_JOIN_EMPTY,
GARP_EVENT_R_EMPTY,
GARP_EVENT_R_LEAVE_IN,
GARP_EVENT_R_LEAVE_EMPTY,
GARP_EVENT_TRANSMIT_PDU,
__GARP_EVENT_MAX
};
#define GARP_EVENT_MAX (__GARP_EVENT_MAX - 1)
enum garp_action {
GARP_ACTION_NONE,
GARP_ACTION_S_JOIN_IN,
GARP_ACTION_S_LEAVE_EMPTY,
};
struct garp_attr {
struct rb_node node;
enum garp_applicant_state state;
u8 type;
u8 dlen;
unsigned char data[];
};
enum garp_applications {
GARP_APPLICATION_GVRP,
__GARP_APPLICATION_MAX
};
#define GARP_APPLICATION_MAX (__GARP_APPLICATION_MAX - 1)
struct garp_application {
enum garp_applications type;
unsigned int maxattr;
struct stp_proto proto;
};
struct garp_applicant {
Annotation
- Immediate include surface: `linux/if_ether.h`, `linux/types.h`, `net/stp.h`.
- Detected declarations: `struct garp_pdu_hdr`, `struct garp_msg_hdr`, `struct garp_attr_hdr`, `struct garp_skb_cb`, `struct garp_attr`, `struct garp_application`, `struct garp_applicant`, `struct garp_port`, `enum garp_attr_event`, `enum garp_applicant_state`.
- 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.