From: Andrew Lunn <andrew@lunn.ch>
To: Sven Eckelmann <sven@narfation.org>
Cc: "B.A.T.M.A.N" <b.a.t.m.a.n@lists.open-mesh.net>,
b.a.t.m.a.n@lists.open-mesh.org,
Antonio Quartulli <a@unstable.cc>
Subject: Re: [B.A.T.M.A.N.] [PATCHv2 3/4] batman-adv: Handle parent interfaces in a different netns
Date: Mon, 7 Mar 2016 15:31:30 +0100 [thread overview]
Message-ID: <20160307143130.GB15541@lunn.ch> (raw)
In-Reply-To: <121426826.jDACy89axc@bentobox>
On Fri, Mar 04, 2016 at 01:35:01PM +0100, Sven Eckelmann wrote:
> On Tuesday 01 March 2016 22:19:07 Andrew Lunn wrote:
> > batman-adv tries to prevent the user from placing a batX soft
> > interface into another batman mesh as a hard interface. It does this
> > by walking up the devices list of parents and ensures they are all
> > none batX interfaces. iflink can point to an interface in a different
> > namespace, so also retrieve the parents name space when finding the
> > parent and use it when doing the comparison.
> >
> > Signed-off-by: Andrew Lunn <andrew@lunn.ch>
> > Acked-by: Antonio Quartulli <a@untable.cc>
> > ---
> > net/batman-adv/hard-interface.c | 31 ++++++++++++++++++++++++-------
> > 1 file changed, 24 insertions(+), 7 deletions(-)
>
> Include missing in net/batman-adv/hard-interface.c
>
> #include <net/rtnetlink.h>
Hi Sven
How are you determining this? It compiled fine for me, which is my
usual test.
>
> Does anyone (not only Andrew) have a proposal regarding the compat code?
> Patch 1+2 should be unproblematic (maybe these can already be applied?).
I've not much history with netns. One thing which might be interesting
it know, is when did it become mature enough to the usable? Maybe for
kernels older than v4.0, deny that netns exists, and find a way for
functions like get_link_net() to return the default net.
compat.h could contain
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0))
#if IS_ENABLED(CONFIG_NET_NS)
#error Network Namespaces not support with this vintage of kernel. Please disable
#endif
#endif
You then know everything is going to be in the default namespace for
these old kernels.
> This patch here is the first problematic one because it uses get_link_net
> which was first introduced in v4.0 with d37512a277df ("rtnl: add link netns
> id to interface messages"). I personally see some function substractions
> coming at us. But then it would be better to have this code in a smaller
> function to make "patching" easier (but I don't have a complete solution
> right now):
>
> dev_parent_net = default_net;
> if (dev->rtnl_link_ops && dev->rtnl_link_ops->get_link_net)
> dev_parent_net = dev->rtnl_link_ops->get_link_net(dev);
Horrible, and i have no idea if it actually works, but how about
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0))
#define dev->rtnl_link_ops->get_link_net true
#define dev->rtnl_link_ops->get_link_net(dev) init_net
#endif
so we get the default namespace.
> The next problematic part in regards of compat stuff is the patch 4.
> linux/ns_common.h is missing (can be added without a problem in
> compat-includes). More problematic is the net::ns substruct (to be more
> precise the net::ns.inum) which was first introduced in 3.19 with
> 435d5f4bb2cc ("common object embedded into various struct ....ns") and
> was previously called net::proc_inum (3.8-3.18) and did not exist
> before v3.8 98f842e675f9 ("proc: Usable inode numbers for the
> namespace file descriptors.").
How about something along the lines of
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0))
#define init_net.ns.inum 42
#define net->ns.inum 42
#endif
Andrew
next prev parent reply other threads:[~2016-03-07 14:31 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-01 21:19 [B.A.T.M.A.N.] [PATCHv2 0/4] batman-adv: Add network name space support Andrew Lunn
2016-03-01 21:19 ` [B.A.T.M.A.N.] [PATCHv2 1/4] batman-adv: NETIF_F_NETNS_LOCAL feature to prevent netns moves Andrew Lunn
2016-03-13 9:29 ` Sven Eckelmann
2016-03-13 15:24 ` Andrew Lunn
2016-04-21 10:48 ` Marek Lindner
2016-03-01 21:19 ` [B.A.T.M.A.N.] [PATCHv2 2/4] batman-adv: Create batman soft interfaces within correct netns Andrew Lunn
2016-03-13 10:48 ` Sven Eckelmann
2016-03-13 15:35 ` Andrew Lunn
2016-03-01 21:19 ` [B.A.T.M.A.N.] [PATCHv2 3/4] batman-adv: Handle parent interfaces in a different netns Andrew Lunn
2016-03-04 12:35 ` Sven Eckelmann
2016-03-07 14:31 ` Andrew Lunn [this message]
2016-03-07 14:45 ` Sven Eckelmann
2016-03-11 23:37 ` Sven Eckelmann
2016-03-12 4:42 ` Antonio Quartulli
2016-03-12 7:34 ` Sven Eckelmann
2016-03-12 7:40 ` Sven Eckelmann
2016-03-07 4:21 ` Linus Lüssing
2016-03-07 13:47 ` Andrew Lunn
2016-03-13 11:02 ` Sven Eckelmann
2016-03-13 15:38 ` Andrew Lunn
2016-03-13 15:59 ` Sven Eckelmann
2016-03-01 21:19 ` [B.A.T.M.A.N.] [PATCHv2 4/4] batman-adv: debugfs: Add netns support Andrew Lunn
2016-03-07 14:21 ` Matthias Schiffer
2016-03-13 9:12 ` Sven Eckelmann
2016-03-13 15:42 ` Andrew Lunn
2016-04-18 14:41 ` Simon Wunderlich
2016-04-20 2:36 ` Andrew Lunn
2016-04-20 3:23 ` Antonio Quartulli
2016-04-20 7:02 ` Sven Eckelmann
2016-03-14 10:41 ` Matthias Schiffer
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=20160307143130.GB15541@lunn.ch \
--to=andrew@lunn.ch \
--cc=a@unstable.cc \
--cc=b.a.t.m.a.n@lists.open-mesh.net \
--cc=b.a.t.m.a.n@lists.open-mesh.org \
--cc=sven@narfation.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