#ifndef _NET_MRP_H
#define _NET_MRP_H
#include <linux/netdevice.h>
#include <linux/skbuff.h>
#include <linux/types.h>
#define MRP_END_MARK …
struct mrp_pdu_hdr { … };
struct mrp_msg_hdr { … };
struct mrp_vecattr_hdr { … };
enum mrp_vecattr_event { … };
struct mrp_skb_cb { … };
static inline struct mrp_skb_cb *mrp_cb(struct sk_buff *skb)
{ … }
enum mrp_applicant_state { … };
#define MRP_APPLICANT_MAX …
enum mrp_event { … };
#define MRP_EVENT_MAX …
enum mrp_tx_action { … };
struct mrp_attr { … };
enum mrp_applications { … };
#define MRP_APPLICATION_MAX …
struct mrp_application { … };
struct mrp_applicant { … };
struct mrp_port { … };
int mrp_register_application(struct mrp_application *app);
void mrp_unregister_application(struct mrp_application *app);
int mrp_init_applicant(struct net_device *dev, struct mrp_application *app);
void mrp_uninit_applicant(struct net_device *dev, struct mrp_application *app);
int mrp_request_join(const struct net_device *dev,
const struct mrp_application *app,
const void *value, u8 len, u8 type);
void mrp_request_leave(const struct net_device *dev,
const struct mrp_application *app,
const void *value, u8 len, u8 type);
#endif