Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
mcast.c File Reference
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/types.h>
#include <linux/string.h>
#include <linux/socket.h>
#include <linux/sockios.h>
#include <linux/jiffies.h>
#include <linux/times.h>
#include <linux/net.h>
#include <linux/in.h>
#include <linux/in6.h>
#include <linux/netdevice.h>
#include <linux/if_arp.h>
#include <linux/route.h>
#include <linux/init.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/slab.h>
#include <net/mld.h>
#include <linux/netfilter.h>
#include <linux/netfilter_ipv6.h>
#include <net/net_namespace.h>
#include <net/sock.h>
#include <net/snmp.h>
#include <net/ipv6.h>
#include <net/protocol.h>
#include <net/if_inet6.h>
#include <net/ndisc.h>
#include <net/addrconf.h>
#include <net/ip6_route.h>
#include <net/inet_common.h>
#include <net/ip6_checksum.h>

Go to the source code of this file.

Macros

#define MCAST_DEBUG   2
 
#define MDBG(x)
 
#define IGMP6_UNSOLICITED_IVAL   (10*HZ)
 
#define MLD_QRV_DEFAULT   2
 
#define MLD_V1_SEEN(idev)
 
#define IPV6_MLD_MAX_MSF   64
 
#define for_each_pmc_rcu(np, pmc)
 
#define AVAILABLE(skb)
 

Functions

int ipv6_sock_mc_join (struct sock *sk, int ifindex, const struct in6_addr *addr)
 
int ipv6_sock_mc_drop (struct sock *sk, int ifindex, const struct in6_addr *addr)
 
void ipv6_sock_mc_close (struct sock *sk)
 
int ip6_mc_source (int add, int omode, struct sock *sk, struct group_source_req *pgsr)
 
int ip6_mc_msfilter (struct sock *sk, struct group_filter *gsf)
 
int ip6_mc_msfget (struct sock *sk, struct group_filter *gsf, struct group_filter __user *optval, int __user *optlen)
 
bool inet6_mc_check (struct sock *sk, const struct in6_addr *mc_addr, const struct in6_addr *src_addr)
 
int ipv6_dev_mc_inc (struct net_device *dev, const struct in6_addr *addr)
 
int __ipv6_dev_mc_dec (struct inet6_dev *idev, const struct in6_addr *addr)
 
int ipv6_dev_mc_dec (struct net_device *dev, const struct in6_addr *addr)
 
bool ipv6_is_mld (struct sk_buff *skb, int nexthdr)
 
bool ipv6_chk_mcast_addr (struct net_device *dev, const struct in6_addr *group, const struct in6_addr *src_addr)
 
int igmp6_event_query (struct sk_buff *skb)
 
int igmp6_event_report (struct sk_buff *skb)
 
void ipv6_mc_unmap (struct inet6_dev *idev)
 
void ipv6_mc_remap (struct inet6_dev *idev)
 
void ipv6_mc_down (struct inet6_dev *idev)
 
void ipv6_mc_up (struct inet6_dev *idev)
 
void ipv6_mc_init_dev (struct inet6_dev *idev)
 
void ipv6_mc_destroy_dev (struct inet6_dev *idev)
 
int __init igmp6_init (void)
 
void igmp6_cleanup (void)
 

Variables

int sysctl_mld_max_msf __read_mostly = IPV6_MLD_MAX_MSF
 

Macro Definition Documentation

#define AVAILABLE (   skb)
Value:
((skb) ? ((skb)->dev ? (skb)->dev->mtu - (skb)->len : \
skb_tailroom(skb)) : 0)

Definition at line 1476 of file mcast.c.

#define for_each_pmc_rcu (   np,
  pmc 
)
Value:
for (pmc = rcu_dereference(np->ipv6_mc_list); \
pmc != NULL; \
pmc = rcu_dereference(pmc->next))

Definition at line 126 of file mcast.c.

#define IGMP6_UNSOLICITED_IVAL   (10*HZ)

Definition at line 110 of file mcast.c.

#define IPV6_MLD_MAX_MSF   64

Definition at line 118 of file mcast.c.

#define MCAST_DEBUG   2

Definition at line 67 of file mcast.c.

#define MDBG (   x)

Definition at line 72 of file mcast.c.

#define MLD_QRV_DEFAULT   2

Definition at line 111 of file mcast.c.

#define MLD_V1_SEEN (   idev)
Value:
(dev_net((idev)->dev)->ipv6.devconf_all->force_mld_version == 1 || \
(idev)->cnf.force_mld_version == 1 || \
((idev)->mc_v1_seen && \
time_before(jiffies, (idev)->mc_v1_seen)))

Definition at line 113 of file mcast.c.

Function Documentation

int __ipv6_dev_mc_dec ( struct inet6_dev idev,
const struct in6_addr addr 
)

Definition at line 892 of file mcast.c.

void igmp6_cleanup ( void  )

Definition at line 2667 of file mcast.c.

int igmp6_event_query ( struct sk_buff skb)

Definition at line 1112 of file mcast.c.

int igmp6_event_report ( struct sk_buff skb)

Definition at line 1232 of file mcast.c.

int __init igmp6_init ( void  )

Definition at line 2662 of file mcast.c.

bool inet6_mc_check ( struct sock sk,
const struct in6_addr mc_addr,
const struct in6_addr src_addr 
)

Definition at line 612 of file mcast.c.

int ip6_mc_msfget ( struct sock sk,
struct group_filter gsf,
struct group_filter __user optval,
int __user optlen 
)

Definition at line 539 of file mcast.c.

int ip6_mc_msfilter ( struct sock sk,
struct group_filter gsf 
)

Definition at line 450 of file mcast.c.

int ip6_mc_source ( int  add,
int  omode,
struct sock sk,
struct group_source_req pgsr 
)

Definition at line 315 of file mcast.c.

bool ipv6_chk_mcast_addr ( struct net_device dev,
const struct in6_addr group,
const struct in6_addr src_addr 
)

Definition at line 964 of file mcast.c.

int ipv6_dev_mc_dec ( struct net_device dev,
const struct in6_addr addr 
)

Definition at line 917 of file mcast.c.

int ipv6_dev_mc_inc ( struct net_device dev,
const struct in6_addr addr 
)

Definition at line 820 of file mcast.c.

bool ipv6_is_mld ( struct sk_buff skb,
int  nexthdr 
)

Definition at line 937 of file mcast.c.

void ipv6_mc_destroy_dev ( struct inet6_dev idev)

Definition at line 2274 of file mcast.c.

void ipv6_mc_down ( struct inet6_dev idev)

Definition at line 2215 of file mcast.c.

void ipv6_mc_init_dev ( struct inet6_dev idev)

Definition at line 2253 of file mcast.c.

void ipv6_mc_remap ( struct inet6_dev idev)

Definition at line 2208 of file mcast.c.

void ipv6_mc_unmap ( struct inet6_dev idev)

Definition at line 2196 of file mcast.c.

void ipv6_mc_up ( struct inet6_dev idev)

Definition at line 2239 of file mcast.c.

void ipv6_sock_mc_close ( struct sock sk)

Definition at line 281 of file mcast.c.

int ipv6_sock_mc_drop ( struct sock sk,
int  ifindex,
const struct in6_addr addr 
)

Definition at line 207 of file mcast.c.

int ipv6_sock_mc_join ( struct sock sk,
int  ifindex,
const struct in6_addr addr 
)

Definition at line 131 of file mcast.c.

Variable Documentation

Definition at line 120 of file mcast.c.