#include "hsr_netlink.h"
#include <linux/kernel.h>
#include <net/rtnetlink.h>
#include <net/genetlink.h>
#include "hsr_main.h"
#include "hsr_device.h"
#include "hsr_framereg.h"
static const struct nla_policy hsr_policy[IFLA_HSR_MAX + 1] = …;
static int hsr_newlink(struct net *src_net, struct net_device *dev,
struct nlattr *tb[], struct nlattr *data[],
struct netlink_ext_ack *extack)
{ … }
static void hsr_dellink(struct net_device *dev, struct list_head *head)
{ … }
static int hsr_fill_info(struct sk_buff *skb, const struct net_device *dev)
{ … }
static struct rtnl_link_ops hsr_link_ops __read_mostly = …;
static const struct nla_policy hsr_genl_policy[HSR_A_MAX + 1] = …;
static struct genl_family hsr_genl_family;
static const struct genl_multicast_group hsr_mcgrps[] = …;
void hsr_nl_ringerror(struct hsr_priv *hsr, unsigned char addr[ETH_ALEN],
struct hsr_port *port)
{ … }
void hsr_nl_nodedown(struct hsr_priv *hsr, unsigned char addr[ETH_ALEN])
{ … }
static int hsr_get_node_status(struct sk_buff *skb_in, struct genl_info *info)
{ … }
static int hsr_get_node_list(struct sk_buff *skb_in, struct genl_info *info)
{ … }
static const struct genl_small_ops hsr_ops[] = …;
static struct genl_family hsr_genl_family __ro_after_init = …;
int __init hsr_netlink_init(void)
{ … }
void __exit hsr_netlink_exit(void)
{ … }
MODULE_ALIAS_RTNL_LINK(…) …;