linux/include/net/mrp.h

/* SPDX-License-Identifier: GPL-2.0 */
#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 /* _NET_MRP_H */