linux/net/hsr/hsr_device.c

// SPDX-License-Identifier: GPL-2.0
/* Copyright 2011-2014 Autronica Fire and Security AS
 *
 * Author(s):
 *	2011-2014 Arvid Brodin, [email protected]
 * This file contains device methods for creating, using and destroying
 * virtual HSR or PRP devices.
 */

#include <linux/netdevice.h>
#include <linux/skbuff.h>
#include <linux/etherdevice.h>
#include <linux/rtnetlink.h>
#include <linux/pkt_sched.h>
#include "hsr_device.h"
#include "hsr_slave.h"
#include "hsr_framereg.h"
#include "hsr_main.h"
#include "hsr_forward.h"

static bool is_admin_up(struct net_device *dev)
{}

static bool is_slave_up(struct net_device *dev)
{}

static void hsr_set_operstate(struct hsr_port *master, bool has_carrier)
{}

static bool hsr_check_carrier(struct hsr_port *master)
{}

static void hsr_check_announce(struct net_device *hsr_dev)
{}

void hsr_check_carrier_and_operstate(struct hsr_priv *hsr)
{}

int hsr_get_max_mtu(struct hsr_priv *hsr)
{}

static int hsr_dev_change_mtu(struct net_device *dev, int new_mtu)
{}

static int hsr_dev_open(struct net_device *dev)
{}

static int hsr_dev_close(struct net_device *dev)
{}

static netdev_features_t hsr_features_recompute(struct hsr_priv *hsr,
						netdev_features_t features)
{}

static netdev_features_t hsr_fix_features(struct net_device *dev,
					  netdev_features_t features)
{}

static netdev_tx_t hsr_dev_xmit(struct sk_buff *skb, struct net_device *dev)
{}

static const struct header_ops hsr_header_ops =;

static struct sk_buff *hsr_init_skb(struct hsr_port *master)
{}

static void send_hsr_supervision_frame(struct hsr_port *port,
				       unsigned long *interval,
				       const unsigned char *addr)
{}

static void send_prp_supervision_frame(struct hsr_port *master,
				       unsigned long *interval,
				       const unsigned char *addr)
{}

/* Announce (supervision frame) timer function
 */
static void hsr_announce(struct timer_list *t)
{}

/* Announce (supervision frame) timer function for RedBox
 */
static void hsr_proxy_announce(struct timer_list *t)
{}

void hsr_del_ports(struct hsr_priv *hsr)
{}

static void hsr_set_rx_mode(struct net_device *dev)
{}

static void hsr_change_rx_flags(struct net_device *dev, int change)
{}

static const struct net_device_ops hsr_device_ops =;

static const struct device_type hsr_type =;

static struct hsr_proto_ops hsr_ops =;

static struct hsr_proto_ops prp_ops =;

void hsr_dev_setup(struct net_device *dev)
{}

/* Return true if dev is a HSR master; return false otherwise.
 */
bool is_hsr_master(struct net_device *dev)
{}
EXPORT_SYMBOL();

/* Default multicast address for HSR Supervision frames */
static const unsigned char def_multicast_addr[ETH_ALEN] __aligned(2) =;

int hsr_dev_finalize(struct net_device *hsr_dev, struct net_device *slave[2],
		     struct net_device *interlink, unsigned char multicast_spec,
		     u8 protocol_version, struct netlink_ext_ack *extack)
{}