Blame view

include/linux/if_bridge.h 2.48 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
  /*
   *	Linux ethernet bridge
   *
   *	Authors:
   *	Lennert Buytenhek		<buytenh@gnu.org>
   *
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
7
8
9
10
11
   *	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.
   */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
12
13
  #ifndef _LINUX_IF_BRIDGE_H
  #define _LINUX_IF_BRIDGE_H
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
14
15
  
  #include <linux/netdevice.h>
607ca46e9   David Howells   UAPI: (Scripted) ...
16
  #include <uapi/linux/if_bridge.h>
065c212a9   Scott Feldman   bridge: move priv...
17
  #include <linux/bitops.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
18

07f8ac4a1   Linus Lüssing   bridge: add expor...
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
  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;
  };
065c212a9   Scott Feldman   bridge: move priv...
34
35
36
37
38
39
40
41
42
43
  #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)
efacacdaf   Scott Feldman   bridge: add new b...
44
  #define BR_LEARNING_SYNC	BIT(9)
842a9ae08   Jouni Malinen   bridge: Extend Pr...
45
  #define BR_PROXYARP_WIFI	BIT(10)
b6cb5ac83   Nikolay Aleksandrov   net: bridge: add ...
46
  #define BR_MCAST_FLOOD		BIT(11)
6db6f0eae   Felix Fietkau   bridge: multicast...
47
  #define BR_MULTICAST_TO_UNICAST	BIT(12)
b3c7ef0ad   Roopa Prabhu   bridge: uapi: add...
48
  #define BR_VLAN_TUNNEL		BIT(13)
99f906e9a   Mike Manning   bridge: add per-p...
49
  #define BR_BCAST_FLOOD		BIT(14)
065c212a9   Scott Feldman   bridge: move priv...
50

a79e88d9f   Scott Feldman   bridge: define so...
51
  #define BR_DEFAULT_AGEING_TIME	(300 * HZ)
881d966b4   Eric W. Biederman   [NET]: Make the d...
52
  extern void brioctl_set(int (*ioctl_hook)(struct net *, unsigned int, void __user *));
a386f9902   Eric Dumazet   bridge: add prope...
53

2f46e0799   Florian Westphal   netfilter: ebtabl...
54
  typedef int br_should_route_hook_t(struct sk_buff *skb);
a386f9902   Eric Dumazet   bridge: add prope...
55
  extern br_should_route_hook_t __rcu *br_should_route_hook;
f941a6d9a   Linus Lüssing   bridge: adding st...
56
57
  
  #if IS_ENABLED(CONFIG_BRIDGE) && IS_ENABLED(CONFIG_BRIDGE_IGMP_SNOOPING)
07f8ac4a1   Linus Lüssing   bridge: add expor...
58
59
  int br_multicast_list_adjacent(struct net_device *dev,
  			       struct list_head *br_ip_list);
c34963e21   Linus Lüssing   bridge: export kn...
60
  bool br_multicast_has_querier_anywhere(struct net_device *dev, int proto);
2cd414319   Linus Lüssing   bridge: memorize ...
61
  bool br_multicast_has_querier_adjacent(struct net_device *dev, int proto);
9341b988e   Ido Schimmel   bridge: Export mu...
62
  bool br_multicast_enabled(const struct net_device *dev);
f941a6d9a   Linus Lüssing   bridge: adding st...
63
64
65
66
67
68
  #else
  static inline int br_multicast_list_adjacent(struct net_device *dev,
  					     struct list_head *br_ip_list)
  {
  	return 0;
  }
c34963e21   Linus Lüssing   bridge: export kn...
69
70
71
72
73
  static inline bool br_multicast_has_querier_anywhere(struct net_device *dev,
  						     int proto)
  {
  	return false;
  }
f941a6d9a   Linus Lüssing   bridge: adding st...
74
75
76
77
78
  static inline bool br_multicast_has_querier_adjacent(struct net_device *dev,
  						     int proto)
  {
  	return false;
  }
9341b988e   Ido Schimmel   bridge: Export mu...
79
80
81
82
  static inline bool br_multicast_enabled(const struct net_device *dev)
  {
  	return false;
  }
f941a6d9a   Linus Lüssing   bridge: adding st...
83
  #endif
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
84

1f51445af   Ido Schimmel   bridge: Export VL...
85
86
87
88
89
90
91
92
  #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;
  }
  #endif
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
93
  #endif