From: James Chapman <jchapman@katalix.com>
To: "François Cachereul" <f.cachereul@alphalink.fr>,
"Paul Mackerras" <paulus@samba.org>
Cc: netdev@vger.kernel.org, linux-ppp@vger.kernel.org
Subject: Re: [RFC PATCH net-next] ppp: Allow ppp device connected to an l2tp session to change of namespace
Date: Thu, 24 Oct 2013 10:55:45 +0000 [thread overview]
Message-ID: <5268FCB1.7020903@katalix.com> (raw)
In-Reply-To: <5268F6CD.9070600@alphalink.fr>
On 24/10/13 11:30, François Cachereul wrote:
> Remove NETIF_F_NETNS_LOCAL flag from ppp device in ppp_connect_channel()
> if the device is connected to a l2tp session socket.
> Restore the flag in ppp_disconnect_channel().
What about pppd's network namespace? Also, L2TP's tunnel socket (UDP or
L2TP/IP) will be in a different namespace if the ppp interface is moved.
>
> Signed-off-by: François CACHEREUL <f.cachereul@alphalink.fr>
> ---
> I'm trying to get rid of this flag for ppp device connected to l2tp
> session, it's seem to be safe to do it for as l2tp_ppp module hasn't any
> reference to the ppp device except to the device name. We can probably
> do it for others modules but pppoe and pptp will require more work.
>
> I remove the flag for l2tp in ppp_generic.c because I couldn't find a
> place like a callback to do it in l2tp_ppp.c. The best will be to
> remove the flag for all ppp devices.
>
> François
>
> drivers/net/ppp/ppp_generic.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c
> index 72ff14b..7ccf2ae 100644
> --- a/drivers/net/ppp/ppp_generic.c
> +++ b/drivers/net/ppp/ppp_generic.c
> @@ -54,6 +54,8 @@
> #include <net/net_namespace.h>
> #include <net/netns/generic.h>
>
> +#include <linux/if_pppox.h>
> +
> #define PPP_VERSION "2.4.2"
>
> /*
> @@ -2861,6 +2863,7 @@ ppp_connect_channel(struct channel *pch, int unit)
> struct ppp_net *pn;
> int ret = -ENXIO;
> int hdrlen;
> + struct sock *sk;
>
> pn = ppp_pernet(pch->chan_net);
>
> @@ -2883,6 +2886,13 @@ ppp_connect_channel(struct channel *pch, int unit)
> ++ppp->n_channels;
> pch->ppp = ppp;
> atomic_inc(&ppp->file.refcnt);
> +
> + /* allow ppp net device to be moved in another network namespace
> + * if it's connected to an l2tp session */
> + sk = (struct sock *)pch->chan->private;
> + if (sk && sk->sk_protocol = PX_PROTO_OL2TP)
> + ppp->dev->features &= ~NETIF_F_NETNS_LOCAL;
> +
> ppp_unlock(ppp);
> ret = 0;
>
> @@ -2912,6 +2922,7 @@ ppp_disconnect_channel(struct channel *pch)
> list_del(&pch->clist);
> if (--ppp->n_channels = 0)
> wake_up_interruptible(&ppp->file.rwait);
> + ppp->dev->features |= NETIF_F_NETNS_LOCAL;
> ppp_unlock(ppp);
> if (atomic_dec_and_test(&ppp->file.refcnt))
> ppp_destroy_interface(ppp);
>
--
James Chapman
Katalix Systems Ltd
http://www.katalix.com
Catalysts for your Embedded Linux software development
next prev parent reply other threads:[~2013-10-24 10:55 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-24 10:30 [RFC PATCH net-next] ppp: Allow ppp device connected to an l2tp session to change of namespace François Cachereul
2013-10-24 10:55 ` James Chapman [this message]
2013-10-24 13:41 ` François Cachereul
2013-10-24 15:43 ` James Chapman
2013-10-24 15:53 ` Benjamin LaHaise
2013-10-24 16:51 ` James Chapman
2013-10-25 8:27 ` François Cachereul
2013-10-25 8:24 ` François Cachereul
2013-10-24 14:23 ` Sergei Shtylyov
2013-10-25 8:05 ` terry white
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=5268FCB1.7020903@katalix.com \
--to=jchapman@katalix.com \
--cc=f.cachereul@alphalink.fr \
--cc=linux-ppp@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=paulus@samba.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox