#ifndef _NET_GARP_H
#define _NET_GARP_H
#include <linux/if_ether.h>
#include <linux/types.h>
#include <net/stp.h>
#define GARP_PROTOCOL_ID …
#define GARP_END_MARK …
struct garp_pdu_hdr { … };
struct garp_msg_hdr { … };
enum garp_attr_event { … };
struct garp_attr_hdr { … };
struct garp_skb_cb { … };
static inline struct garp_skb_cb *garp_cb(struct sk_buff *skb)
{ … }
enum garp_applicant_state { … };
#define GARP_APPLICANT_MAX …
enum garp_event { … };
#define GARP_EVENT_MAX …
enum garp_action { … };
struct garp_attr { … };
enum garp_applications { … };
#define GARP_APPLICATION_MAX …
struct garp_application { … };
struct garp_applicant { … };
struct garp_port { … };
int garp_register_application(struct garp_application *app);
void garp_unregister_application(struct garp_application *app);
int garp_init_applicant(struct net_device *dev, struct garp_application *app);
void garp_uninit_applicant(struct net_device *dev,
struct garp_application *app);
int garp_request_join(const struct net_device *dev,
const struct garp_application *app, const void *data,
u8 len, u8 type);
void garp_request_leave(const struct net_device *dev,
const struct garp_application *app,
const void *data, u8 len, u8 type);
#endif