All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Thery <benjamin.thery@bull.net>
To: Daniel Lezcano <dlezcano@fr.ibm.com>
Cc: davem@davemloft.net, netdev@vger.kernel.org
Subject: Re: [patch 5/9][NETNS][IPV6] make bindv6only sysctl per namespace
Date: Mon, 07 Jan 2008 17:32:02 +0100	[thread overview]
Message-ID: <47825402.8030504@bull.net> (raw)
In-Reply-To: <20080104111431.444295890@localhost.localdomain>

Daniel,

The kernel fails to build with this patch applied when CONFIG_SYSCTL=n
See comment below.

Daniel Lezcano wrote:
> This patch moves the bindv6only sysctl to the network namespace
> structure. Until the ipv6 protocol is not per namespace, the sysctl
> variable is always from the initial network namespace.
> 
> Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
> ---
>  include/net/ipv6.h         |    1 -
>  include/net/netns/ipv6.h   |    1 +
>  net/ipv6/af_inet6.c        |    4 +---
>  net/ipv6/sysctl_net_ipv6.c |    6 +++++-
>  4 files changed, 7 insertions(+), 5 deletions(-)
> 
> Index: net-2.6.25/include/net/ipv6.h
> ===================================================================
> --- net-2.6.25.orig/include/net/ipv6.h
> +++ net-2.6.25/include/net/ipv6.h
> @@ -109,7 +109,6 @@ struct frag_hdr {
>  #include <net/sock.h>
>  
>  /* sysctls */
> -extern int sysctl_ipv6_bindv6only;
>  extern int sysctl_mld_max_msf;
>  
>  #define _DEVINC(statname, modifier, idev, field)			\
> Index: net-2.6.25/include/net/netns/ipv6.h
> ===================================================================
> --- net-2.6.25.orig/include/net/netns/ipv6.h
> +++ net-2.6.25/include/net/netns/ipv6.h
> @@ -9,6 +9,7 @@ struct ctl_table_header;
>  
>  struct netns_sysctl_ipv6 {
>  	struct ctl_table_header *table;
> + 	int bindv6only;
>  };
>  
>  struct netns_ipv6 {
> Index: net-2.6.25/net/ipv6/af_inet6.c
> ===================================================================
> --- net-2.6.25.orig/net/ipv6/af_inet6.c
> +++ net-2.6.25/net/ipv6/af_inet6.c
> @@ -66,8 +66,6 @@ MODULE_AUTHOR("Cast of dozens");
>  MODULE_DESCRIPTION("IPv6 protocol stack for Linux");
>  MODULE_LICENSE("GPL");
>  
> -int sysctl_ipv6_bindv6only __read_mostly;
> -
>  /* The inetsw6 table contains everything that inet6_create needs to
>   * build a new socket.
>   */
> @@ -193,7 +191,7 @@ lookup_protocol:
>  	np->mcast_hops	= -1;
>  	np->mc_loop	= 1;
>  	np->pmtudisc	= IPV6_PMTUDISC_WANT;
> -	np->ipv6only	= sysctl_ipv6_bindv6only;
> +	np->ipv6only	= init_net.ipv6.sysctl.bindv6only;


The problem is here:
init_net.ipv6.sysctl is not defined if CONFIG_SYSCTL=n.

Benjamin

>  
>  	/* Init the ipv4 part of the socket since we can have sockets
>  	 * using v6 API for ipv4.
> Index: net-2.6.25/net/ipv6/sysctl_net_ipv6.c
> ===================================================================
> --- net-2.6.25.orig/net/ipv6/sysctl_net_ipv6.c
> +++ net-2.6.25/net/ipv6/sysctl_net_ipv6.c
> @@ -35,7 +35,7 @@ static ctl_table ipv6_table_template[] =
>  	{
>  		.ctl_name	= NET_IPV6_BINDV6ONLY,
>  		.procname	= "bindv6only",
> -		.data		= &sysctl_ipv6_bindv6only,
> +		.data		= &init_net.ipv6.sysctl.bindv6only,
>  		.maxlen		= sizeof(int),
>  		.mode		= 0644,
>  		.proc_handler	= &proc_dointvec
> @@ -115,6 +115,10 @@ static int ipv6_sysctl_net_init(struct n
>     	ipv6_table[0].child = ipv6_route_table;
>     	ipv6_table[1].child = ipv6_icmp_table;
>  
> +  	ipv6_table[2].data = &net->ipv6.sysctl.bindv6only;
> +
> +	net->ipv6.sysctl.bindv6only = 0;
> +
>     	net->ipv6.sysctl.table = register_net_sysctl_table(net, ipv6_ctl_path, ipv6_table);
>     	if (!net->ipv6.sysctl.table)
>     		goto out_ipv6_icmp_table;
> 
> -- -- 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 


-- 
B e n j a m i n   T h e r y  - BULL/DT/Open Software R&D

    http://www.bull.com

  reply	other threads:[~2008-01-07 16:32 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-04 11:12 [patch 0/9][NETNS][IPV6] make sysctl per namespace Daniel Lezcano
2008-01-04 11:12 ` [patch 1/9][NETNS][IPV6] make ipv6_sysctl_register to return a value Daniel Lezcano
2008-01-04 11:12 ` [patch 2/9][NETNS][IPV6] make the ipv6 sysctl to be a netns subsystem Daniel Lezcano
2008-01-04 11:12 ` [patch 3/9][NETNS][IPV6] make ipv6 structure for netns Daniel Lezcano
2008-01-04 11:12 ` [patch 4/9][NETNS][IPV6] make multiple instance of sysctl tables Daniel Lezcano
2008-01-04 11:12 ` [patch 5/9][NETNS][IPV6] make bindv6only sysctl per namespace Daniel Lezcano
2008-01-07 16:32   ` Benjamin Thery [this message]
2008-01-07 16:36     ` Daniel Lezcano
2008-01-07 16:49       ` Eric Dumazet
2008-01-09  8:25       ` David Miller
2008-01-04 11:12 ` [patch 6/9][NETNS][IPV6] make ip6_frags " Daniel Lezcano
2008-01-04 11:12 ` [patch 7/9][NETNS][IPV6] make mld_max_msf readonly in other namespaces Daniel Lezcano
2008-01-04 11:12 ` [patch 8/9][NETNS][IPV6] make sysctls route per namespace Daniel Lezcano
2008-01-04 11:12 ` [patch 9/9][NETNS][IPV6] make icmpv6_time sysctl " Daniel Lezcano
  -- strict thread matches above, loose matches on Subject: below --
2008-01-02 12:25 [patch 0/9][NETNS][IPV6] make " Daniel Lezcano
2008-01-02 12:25 ` [patch 5/9][NETNS][IPV6] make bindv6only " Daniel Lezcano

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=47825402.8030504@bull.net \
    --to=benjamin.thery@bull.net \
    --cc=davem@davemloft.net \
    --cc=dlezcano@fr.ibm.com \
    --cc=netdev@vger.kernel.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.