netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* A question about setting the net device for multicast forwarding in IPv4 and in IPv6
@ 2008-05-06 13:38 David Shwatrz
  2008-05-12  8:57 ` Andy Johnson
  0 siblings, 1 reply; 3+ messages in thread
From: David Shwatrz @ 2008-05-06 13:38 UTC (permalink / raw)
  To: netdev, YOSHIFUJI Hideaki / 吉藤英明

Hi,
  I had noticed that in IPV4 we set the net device for multicast
forwarding in case
it is not already configured so, when the user space app calls
setsockopt() with MRT_INIT;
this is done by calling IPV4_DEVCONF_ALL(sock_net(sk), MC_FORWARDING)++;
in ip_mroute_setsockopt(); (net/ipv4/ipmr.c).

On the other hand, the parallel method in IPv6 does **not** performs
such action, as can be seen
from ip6_mroute_setsockopt() in net/ipv6/ip6mr.c.

My question is : is there any special for it to be so? (In case it
should be also in IPv6, I will happy to send such a patch).

Best Regards,
DS

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: A question about setting the net device for multicast forwarding in IPv4 and in IPv6
  2008-05-06 13:38 A question about setting the net device for multicast forwarding in IPv4 and in IPv6 David Shwatrz
@ 2008-05-12  8:57 ` Andy Johnson
  2008-05-12 11:08   ` Rami Rosen
  0 siblings, 1 reply; 3+ messages in thread
From: Andy Johnson @ 2008-05-12  8:57 UTC (permalink / raw)
  To: David Shwatrz
  Cc: netdev, YOSHIFUJI Hideaki / 吉藤英明

Hello, David,

  - I wanted to note that there is one more difference I had noted
between IPv4 and IPv6
regarding multicast forwarding:

  - In IPv4, mc_forwarding is disabled by default (the value is 0). If
you will try to change it thus:
echo "1" >  /proc/sys/net/ipv4/conf/eth0/mc_forwarding
you will get:

/proc/sys/net/ipv4/conf/eth0/mc_forwarding: Permission denied.

ls -al /proc/sys/net/ipv4/conf/eth0/mc_forwarding
will show:
-r--r--r-- 1 root root 0 ...

But:
  chmod 666  /proc/sys/net/ipv4/conf/eth0/mc_forwarding
gives:

chmod 666  /proc/sys/net/ipv4/conf/eth0/mc_forwarding
chmod: changing permissions of
`/proc/sys/net/ipv4/conf/eth0/mc_forwarding': Operation not permitted

User space daemons (like xorp) will set
/proc/sys/net/ipv4/conf/all/mc_forwarding  to 1
(because they call setsockopt with MRT_INIT, which calls
IPV4_DEVCONF_ALL(sock_net(sk), MC_FORWARDING)++;
in ip_mroute_setsockopt(), as you mentioned.

 In IPV6, this does not happen.

In IPV6, Multicast Routing is also disabled by default.

**But **

echo "1" >  /proc/sys/net/ipv6/conf/all/mc_forwarding
**does** work and **does not** give an error (as in IPV4).

I wonder what is the reason for it ? Or maybe it should be changed to
have the same behaviour both in IPV6 and IPV4?

Regards,
Andy






On Tue, May 6, 2008 at 4:38 PM, David Shwatrz <dshwatrz@gmail.com> wrote:
> Hi,
>  I had noticed that in IPV4 we set the net device for multicast
> forwarding in case
> it is not already configured so, when the user space app calls
> setsockopt() with MRT_INIT;
> this is done by calling IPV4_DEVCONF_ALL(sock_net(sk), MC_FORWARDING)++;
> in ip_mroute_setsockopt(); (net/ipv4/ipmr.c).
>
> On the other hand, the parallel method in IPv6 does **not** performs
> such action, as can be seen
> from ip6_mroute_setsockopt() in net/ipv6/ip6mr.c.
>
> My question is : is there any special for it to be so? (In case it
> should be also in IPv6, I will happy to send such a patch).
>
> Best Regards,
> DS
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: A question about setting the net device for multicast forwarding in IPv4 and in IPv6
  2008-05-12  8:57 ` Andy Johnson
@ 2008-05-12 11:08   ` Rami Rosen
  0 siblings, 0 replies; 3+ messages in thread
From: Rami Rosen @ 2008-05-12 11:08 UTC (permalink / raw)
  To: Andy Johnson
  Cc: David Shwatrz, netdev,
	YOSHIFUJI Hideaki / 吉藤英明

Hi,


>If you will try to change it thus:
>echo "1" >  /proc/sys/net/ipv4/conf/eth0/mc_forwarding
>you will get:
...

To be more accurate, the MRT_INIT option when calling
setsockopt() sets multicast forwarding on /proc/sys/net/ipv4/conf/all
but **not** on /proc/sys/net/ipv4/conf/eth0.

>User space daemons (like xorp) will set
>/proc/sys/net/ipv4/conf/all/mc_forwarding  to 1
>(because they call setsockopt with MRT_INIT, which calls
>IPV4_DEVCONF_ALL(sock_net(sk), MC_FORWARDING)++;
>in ip_mroute_setsockopt(), as you mentioned


This is true; but user space daemons (like xorp) also set
/proc/sys/net/ipv4/conf/eth0/mc_forwarding  to 1. (or other eth*).
And this is done also via setsockopt(); but this time it is done
**NOT**with MRT_INIT but with MRT_ADD_VIF, which calls
IPV4_DEVCONF(in_dev->cnf, MC_FORWARDING)++
in vif_add(). (net/ipv4/ipmr.c).

Regards,
Rami Rosen





On Mon, May 12, 2008 at 11:57 AM, Andy Johnson <johnsonzjo@gmail.com> wrote:
> Hello, David,
>
>   - I wanted to note that there is one more difference I had noted
>  between IPv4 and IPv6
>  regarding multicast forwarding:
>
>   - In IPv4, mc_forwarding is disabled by default (the value is 0). If
>  you will try to change it thus:
>  echo "1" >  /proc/sys/net/ipv4/conf/eth0/mc_forwarding
>  you will get:
>
>  /proc/sys/net/ipv4/conf/eth0/mc_forwarding: Permission denied.
>
>  ls -al /proc/sys/net/ipv4/conf/eth0/mc_forwarding
>  will show:
>  -r--r--r-- 1 root root 0 ...
>
>  But:
>   chmod 666  /proc/sys/net/ipv4/conf/eth0/mc_forwarding
>  gives:
>
>  chmod 666  /proc/sys/net/ipv4/conf/eth0/mc_forwarding
>  chmod: changing permissions of
>  `/proc/sys/net/ipv4/conf/eth0/mc_forwarding': Operation not permitted
>
>  User space daemons (like xorp) will set
>  /proc/sys/net/ipv4/conf/all/mc_forwarding  to 1
>  (because they call setsockopt with MRT_INIT, which calls
>
> IPV4_DEVCONF_ALL(sock_net(sk), MC_FORWARDING)++;
>  in ip_mroute_setsockopt(), as you mentioned.
>
>   In IPV6, this does not happen.
>
>  In IPV6, Multicast Routing is also disabled by default.
>
>  **But **
>
>  echo "1" >  /proc/sys/net/ipv6/conf/all/mc_forwarding
>  **does** work and **does not** give an error (as in IPV4).
>
>  I wonder what is the reason for it ? Or maybe it should be changed to
>  have the same behaviour both in IPV6 and IPV4?
>
>  Regards,
>  Andy
>
>
>
>
>
>
>
>
>  On Tue, May 6, 2008 at 4:38 PM, David Shwatrz <dshwatrz@gmail.com> wrote:
>  > Hi,
>  >  I had noticed that in IPV4 we set the net device for multicast
>  > forwarding in case
>  > it is not already configured so, when the user space app calls
>  > setsockopt() with MRT_INIT;
>  > this is done by calling IPV4_DEVCONF_ALL(sock_net(sk), MC_FORWARDING)++;
>  > in ip_mroute_setsockopt(); (net/ipv4/ipmr.c).
>  >
>  > On the other hand, the parallel method in IPv6 does **not** performs
>  > such action, as can be seen
>  > from ip6_mroute_setsockopt() in net/ipv6/ip6mr.c.
>  >
>  > My question is : is there any special for it to be so? (In case it
>  > should be also in IPv6, I will happy to send such a patch).
>  >
>  > Best Regards,
>  > DS
>  > --
>  > To unsubscribe from this list: send the line "unsubscribe netdev" in
>  > the body of a message to majordomo@vger.kernel.org
>  > More majordomo info at  http://vger.kernel.org/majordomo-info.html
>  >
>  --
>  To unsubscribe from this list: send the line "unsubscribe netdev" in
>  the body of a message to majordomo@vger.kernel.org
>  More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-05-12 11:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-06 13:38 A question about setting the net device for multicast forwarding in IPv4 and in IPv6 David Shwatrz
2008-05-12  8:57 ` Andy Johnson
2008-05-12 11:08   ` Rami Rosen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).