cregit-Linux how code gets into the kernel

Release 4.14 include/linux/if_bridge.h

Directory: include/linux
/*
 *      Linux ethernet bridge
 *
 *      Authors:
 *      Lennert Buytenhek               <buytenh@gnu.org>
 *
 *      This program is free software; you can redistribute it and/or
 *      modify it under the terms of the GNU General Public License
 *      as published by the Free Software Foundation; either version
 *      2 of the License, or (at your option) any later version.
 */
#ifndef _LINUX_IF_BRIDGE_H

#define _LINUX_IF_BRIDGE_H


#include <linux/netdevice.h>
#include <uapi/linux/if_bridge.h>
#include <linux/bitops.h>


struct br_ip {
	union {
		
__be32	ip4;
#if IS_ENABLED(CONFIG_IPV6)
		
struct in6_addr ip6;
#endif
	
} u;
	
__be16		proto;
	
__u16           vid;
};


struct br_ip_list {
	
struct list_head list;
	
struct br_ip addr;
};


#define BR_HAIRPIN_MODE		BIT(0)

#define BR_BPDU_GUARD		BIT(1)

#define BR_ROOT_BLOCK		BIT(2)

#define BR_MULTICAST_FAST_LEAVE	BIT(3)

#define BR_ADMIN_COST		BIT(4)

#define BR_LEARNING		BIT(5)

#define BR_FLOOD		BIT(6)

#define BR_AUTO_MASK		(BR_FLOOD | BR_LEARNING)

#define BR_PROMISC		BIT(7)

#define BR_PROXYARP		BIT(8)

#define BR_LEARNING_SYNC	BIT(9)

#define BR_PROXYARP_WIFI	BIT(10)

#define BR_MCAST_FLOOD		BIT(11)

#define BR_MULTICAST_TO_UNICAST	BIT(12)

#define BR_VLAN_TUNNEL		BIT(13)

#define BR_BCAST_FLOOD		BIT(14)


#define BR_DEFAULT_AGEING_TIME	(300 * HZ)

extern void brioctl_set(int (*ioctl_hook)(struct net *, unsigned int, void __user *));


typedef int br_should_route_hook_t(struct sk_buff *skb);
extern br_should_route_hook_t __rcu *br_should_route_hook;

#if IS_ENABLED(CONFIG_BRIDGE) && IS_ENABLED(CONFIG_BRIDGE_IGMP_SNOOPING)
int br_multicast_list_adjacent(struct net_device *dev,
			       struct list_head *br_ip_list);
bool br_multicast_has_querier_anywhere(struct net_device *dev, int proto);
bool br_multicast_has_querier_adjacent(struct net_device *dev, int proto);
bool br_multicast_enabled(const struct net_device *dev);
#else

static inline int br_multicast_list_adjacent(struct net_device *dev, struct list_head *br_ip_list) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Linus Lüssing20100.00%1100.00%
Total20100.00%1100.00%


static inline bool br_multicast_has_querier_anywhere(struct net_device *dev, int proto) { return false; }

Contributors

PersonTokensPropCommitsCommitProp
Linus Lüssing18100.00%1100.00%
Total18100.00%1100.00%


static inline bool br_multicast_has_querier_adjacent(struct net_device *dev, int proto) { return false; }

Contributors

PersonTokensPropCommitsCommitProp
Linus Lüssing18100.00%1100.00%
Total18100.00%1100.00%


static inline bool br_multicast_enabled(const struct net_device *dev) { return false; }

Contributors

PersonTokensPropCommitsCommitProp
Ido Schimmel16100.00%1100.00%
Total16100.00%1100.00%

#endif #if IS_ENABLED(CONFIG_BRIDGE) && IS_ENABLED(CONFIG_BRIDGE_VLAN_FILTERING) bool br_vlan_enabled(const struct net_device *dev); #else
static inline bool br_vlan_enabled(const struct net_device *dev) { return false; }

Contributors

PersonTokensPropCommitsCommitProp
Ido Schimmel16100.00%1100.00%
Total16100.00%1100.00%

#endif #endif

Overall Contributors

PersonTokensPropCommitsCommitProp
Linus Lüssing15344.35%416.67%
Ido Schimmel6719.42%28.33%
Scott Feldman5114.78%312.50%
Linus Torvalds (pre-git)216.09%14.17%
Eric Dumazet82.32%14.17%
Stephen Hemminger72.03%28.33%
Bart De Schuymer72.03%14.17%
Felix Fietkau41.16%14.17%
Roopa Prabhu41.16%14.17%
Jouni Malinen41.16%14.17%
Eric W. Biedermann41.16%14.17%
Nikolay Aleksandrov41.16%14.17%
Mike Manning41.16%14.17%
Al Viro30.87%14.17%
David Howells20.58%14.17%
Herbert Xu10.29%14.17%
Adrian Bunk10.29%14.17%
Total345100.00%24100.00%
Directory: include/linux
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.