linux/net/bridge/br.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 *	Generic parts
 *	Linux ethernet bridge
 *
 *	Authors:
 *	Lennert Buytenhek		<[email protected]>
 */

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/init.h>
#include <linux/llc.h>
#include <net/llc.h>
#include <net/stp.h>
#include <net/switchdev.h>

#include "br_private.h"

/*
 * Handle changes in state of network devices enslaved to a bridge.
 *
 * Note: don't care about up/down if bridge itself is down, because
 *     port state is checked when bridge is brought up.
 */
static int br_device_event(struct notifier_block *unused, unsigned long event, void *ptr)
{}

static struct notifier_block br_device_notifier =;

/* called with RTNL or RCU */
static int br_switchdev_event(struct notifier_block *unused,
			      unsigned long event, void *ptr)
{}

static struct notifier_block br_switchdev_notifier =;

/* called under rtnl_mutex */
static int br_switchdev_blocking_event(struct notifier_block *nb,
				       unsigned long event, void *ptr)
{}

static struct notifier_block br_switchdev_blocking_notifier =;

/* br_boolopt_toggle - change user-controlled boolean option
 *
 * @br: bridge device
 * @opt: id of the option to change
 * @on: new option value
 * @extack: extack for error messages
 *
 * Changes the value of the respective boolean option to @on taking care of
 * any internal option value mapping and configuration.
 */
int br_boolopt_toggle(struct net_bridge *br, enum br_boolopt_id opt, bool on,
		      struct netlink_ext_ack *extack)
{}

int br_boolopt_get(const struct net_bridge *br, enum br_boolopt_id opt)
{}

int br_boolopt_multi_toggle(struct net_bridge *br,
			    struct br_boolopt_multi *bm,
			    struct netlink_ext_ack *extack)
{}

void br_boolopt_multi_get(const struct net_bridge *br,
			  struct br_boolopt_multi *bm)
{}

/* private bridge options, controlled by the kernel */
void br_opt_toggle(struct net_bridge *br, enum net_bridge_opts opt, bool on)
{}

static void __net_exit br_net_exit_batch_rtnl(struct list_head *net_list,
					      struct list_head *dev_to_kill)
{}

static struct pernet_operations br_net_ops =;

static const struct stp_proto br_stp_proto =;

static int __init br_init(void)
{}

static void __exit br_deinit(void)
{}

module_init()
module_exit()
MODULE_LICENSE();
MODULE_VERSION();
MODULE_ALIAS_RTNL_LINK();
MODULE_DESCRIPTION();