diff options
Diffstat (limited to 'include/linux/mroute6.h')
| -rw-r--r-- | include/linux/mroute6.h | 35 |
1 files changed, 12 insertions, 23 deletions
diff --git a/include/linux/mroute6.h b/include/linux/mroute6.h index 2caa1a8e525d..6091ab77f388 100644 --- a/include/linux/mroute6.h +++ b/include/linux/mroute6.h | |||
| @@ -24,7 +24,8 @@ | |||
| 24 | #define MRT6_DEL_MFC (MRT6_BASE+5) /* Delete a multicast forwarding entry */ | 24 | #define MRT6_DEL_MFC (MRT6_BASE+5) /* Delete a multicast forwarding entry */ |
| 25 | #define MRT6_VERSION (MRT6_BASE+6) /* Get the kernel multicast version */ | 25 | #define MRT6_VERSION (MRT6_BASE+6) /* Get the kernel multicast version */ |
| 26 | #define MRT6_ASSERT (MRT6_BASE+7) /* Activate PIM assert mode */ | 26 | #define MRT6_ASSERT (MRT6_BASE+7) /* Activate PIM assert mode */ |
| 27 | #define MRT6_PIM (MRT6_BASE+8) /* enable PIM code */ | 27 | #define MRT6_PIM (MRT6_BASE+8) /* enable PIM code */ |
| 28 | #define MRT6_TABLE (MRT6_BASE+9) /* Specify mroute table ID */ | ||
| 28 | 29 | ||
| 29 | #define SIOCGETMIFCNT_IN6 SIOCPROTOPRIVATE /* IP protocol privates */ | 30 | #define SIOCGETMIFCNT_IN6 SIOCPROTOPRIVATE /* IP protocol privates */ |
| 30 | #define SIOCGETSGCNT_IN6 (SIOCPROTOPRIVATE+1) | 31 | #define SIOCGETSGCNT_IN6 (SIOCPROTOPRIVATE+1) |
| @@ -182,10 +183,7 @@ struct mif_device { | |||
| 182 | #define VIFF_STATIC 0x8000 | 183 | #define VIFF_STATIC 0x8000 |
| 183 | 184 | ||
| 184 | struct mfc6_cache { | 185 | struct mfc6_cache { |
| 185 | struct mfc6_cache *next; /* Next entry on cache line */ | 186 | struct list_head list; |
| 186 | #ifdef CONFIG_NET_NS | ||
| 187 | struct net *mfc6_net; | ||
| 188 | #endif | ||
| 189 | struct in6_addr mf6c_mcastgrp; /* Group the entry belongs to */ | 187 | struct in6_addr mf6c_mcastgrp; /* Group the entry belongs to */ |
| 190 | struct in6_addr mf6c_origin; /* Source of packet */ | 188 | struct in6_addr mf6c_origin; /* Source of packet */ |
| 191 | mifi_t mf6c_parent; /* Source interface */ | 189 | mifi_t mf6c_parent; /* Source interface */ |
| @@ -208,18 +206,6 @@ struct mfc6_cache { | |||
| 208 | } mfc_un; | 206 | } mfc_un; |
| 209 | }; | 207 | }; |
| 210 | 208 | ||
| 211 | static inline | ||
| 212 | struct net *mfc6_net(const struct mfc6_cache *mfc) | ||
| 213 | { | ||
| 214 | return read_pnet(&mfc->mfc6_net); | ||
| 215 | } | ||
| 216 | |||
| 217 | static inline | ||
| 218 | void mfc6_net_set(struct mfc6_cache *mfc, struct net *net) | ||
| 219 | { | ||
| 220 | write_pnet(&mfc->mfc6_net, hold_net(net)); | ||
| 221 | } | ||
| 222 | |||
| 223 | #define MFC_STATIC 1 | 209 | #define MFC_STATIC 1 |
| 224 | #define MFC_NOTIFY 2 | 210 | #define MFC_NOTIFY 2 |
| 225 | 211 | ||
| @@ -244,14 +230,17 @@ extern int ip6mr_get_route(struct net *net, struct sk_buff *skb, | |||
| 244 | struct rtmsg *rtm, int nowait); | 230 | struct rtmsg *rtm, int nowait); |
| 245 | 231 | ||
| 246 | #ifdef CONFIG_IPV6_MROUTE | 232 | #ifdef CONFIG_IPV6_MROUTE |
| 247 | static inline struct sock *mroute6_socket(struct net *net) | 233 | extern struct sock *mroute6_socket(struct net *net, struct sk_buff *skb); |
| 248 | { | ||
| 249 | return net->ipv6.mroute6_sk; | ||
| 250 | } | ||
| 251 | extern int ip6mr_sk_done(struct sock *sk); | 234 | extern int ip6mr_sk_done(struct sock *sk); |
| 252 | #else | 235 | #else |
| 253 | static inline struct sock *mroute6_socket(struct net *net) { return NULL; } | 236 | static inline struct sock *mroute6_socket(struct net *net, struct sk_buff *skb) |
| 254 | static inline int ip6mr_sk_done(struct sock *sk) { return 0; } | 237 | { |
| 238 | return NULL; | ||
| 239 | } | ||
| 240 | static inline int ip6mr_sk_done(struct sock *sk) | ||
| 241 | { | ||
| 242 | return 0; | ||
| 243 | } | ||
| 255 | #endif | 244 | #endif |
| 256 | #endif | 245 | #endif |
| 257 | 246 | ||
