mcast: add multicast proxy support (IPv4 and IPv6)
authorNicolas Dichtel <nicolas.dichtel@6wind.com>
Mon, 21 Jan 2013 06:00:26 +0000 (06:00 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 21 Jan 2013 18:55:14 +0000 (13:55 -0500)
commit660b26dc1a8aeb33c2a2246ebf1b3684449a74b7
tree867f1141b7cc2396443b7fa293124a8ef0948330
parentbbb923a4c2d17ebd5ec34755fe19a33914cbd86f
mcast: add multicast proxy support (IPv4 and IPv6)

This patch add the support of proxy multicast, ie being able to build a static
multicast tree. It adds the support of (*,*) and (*,G) entries.

The user should define an (*,*) entry which is not used for real forwarding.
This entry defines the upstream in iif and contains all interfaces from the
static tree in its oifs. It will be used to forward packet upstream when they
come from an interface belonging to the static tree.
Hence, the user should define (*,G) entries to build its static tree. Note that
upstream interface must be part of oifs: packets are sent to all oifs
interfaces except the input interface. This ensures to always join the whole
static tree, even if the packet is not coming from the upstream interface.

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Acked-by: David L Stevens <dlstevens@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/mroute.h
include/uapi/linux/mroute6.h
net/ipv4/ipmr.c
net/ipv6/ip6mr.c