All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vlad Yasevich <vladislav.yasevich@hp.com>
To: "Kolbjørn Barmen" <linux@kolla.no>
Cc: Brian Haley <brian.haley@hp.com>,
	davem@davemloft.net, yoshfuji@linux-ipv6.org,
	netdev@vger.kernel.org
Subject: Re: [PATCH] IPv6: Add 'autoconf' and 'disable_ipv6' module parameters
Date: Wed, 25 Mar 2009 07:51:24 -0400	[thread overview]
Message-ID: <49CA1ABC.7000900@hp.com> (raw)
In-Reply-To: <alpine.LNX.2.00.0903250526050.6682@firda.kolla.no>

Kolbjørn Barmen wrote:
> 
>> Also, it looks like if someone decides to switch IPv6 back on for a particular
>> interface, they would have to wait until the next RA to get an address.  Not an
>> optimum solution.
> 
> Isnt this the normal way anyways, or do new interfaces send some sort of
> "I'm new here, give me a prefix and router announcement, please!" normally
> when they go online? If so, maybe that should be done here as well.
> 

When the interface first comes up, it sends a Router Solicitation that triggers
the RA.


>>> @@ -1874,11 +1875,11 @@ void addrconf_prefix_rcv(struct net_device *dev, u8 *opt, int len)
>>>  
>>>  	/* Try to figure out our local address for this prefix */
>>>  
>>> -	if (pinfo->autoconf && in6_dev->cnf.autoconf) {
>>> +	if (pinfo->autoconf && in6_dev->cnf.autoconf &&
>>> +	    net->ipv6.devconf_all->autoconf) {
>>>  		struct inet6_ifaddr * ifp;
>>>  		struct in6_addr addr;
>>>  		int create = 0, update_lft = 0;
>>> -		struct net *net = dev_net(dev);
>>>  
>>>  		if (pinfo->prefix_len == 64) {
>>>  			memcpy(&addr, &pinfo->prefix, 8);
>>> @@ -4378,6 +4379,11 @@ static int addrconf_init_net(struct net *net)
>>>  		dflt = kmemdup(dflt, sizeof(ipv6_devconf_dflt), GFP_KERNEL);
>>>  		if (dflt == NULL)
>>>  			goto err_alloc_dflt;
>>> +	} else {
>>> +		/* these will be inherited by all namespaces */
>>> +		all->autoconf = dflt->autoconf = ipv6_defaults.autoconf;
>>> +		all->disable_ipv6 = dflt->disable_ipv6 =
>>> +			ipv6_defaults.disable_ipv6;
>> Why set 'all'?  Since no interfaces are created yet, setting dflt accomplishes
>> what you want.
> 
> How do you know that no interfaces are created? The IPv6 modules might not
> have been loaded on boot, but at a later stage.
> 

Ah, but the IPv6 portions of the interface are created by the ipv6 module
when it loads.  At the addrconf_init_net() time, no interface are created yet.

-vlad


  reply	other threads:[~2009-03-25 11:51 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-25  1:49 [PATCH] IPv6: Add 'autoconf' and 'disable_ipv6' module parameters Brian Haley
2009-03-25  2:12 ` Vlad Yasevich
2009-03-25  4:28   ` Kolbjørn Barmen
2009-03-25 11:51     ` Vlad Yasevich [this message]
2009-03-25 15:28     ` Brian Haley
2010-01-19 23:45       ` IPv6 autoconf/accept_ra default values - revisited Kolbjørn Barmen
2010-01-20 16:55         ` Brian Haley
2010-02-16 21:58           ` Kolbjørn Barmen
2010-02-17 16:54             ` Brian Haley
2009-03-25 12:36   ` [PATCH] IPv6: Add 'autoconf' and 'disable_ipv6' module parameters Vlad Yasevich
2009-03-25 15:54     ` Brian Haley
2009-03-25 15:22   ` Brian Haley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49CA1ABC.7000900@hp.com \
    --to=vladislav.yasevich@hp.com \
    --cc=brian.haley@hp.com \
    --cc=davem@davemloft.net \
    --cc=linux@kolla.no \
    --cc=netdev@vger.kernel.org \
    --cc=yoshfuji@linux-ipv6.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.