From: Sven Eckelmann <sven@narfation.org>
To: b.a.t.m.a.n@lists.open-mesh.org
Cc: Marek Lindner <mareklindner@neomailbox.ch>
Subject: Re: [B.A.T.M.A.N.] [PATCH 2/3] batman-adv: additional checks for virtual interfaces on top of WiFi
Date: Tue, 12 Jul 2016 14:33:09 +0200 [thread overview]
Message-ID: <1954516.MjuANSl94h@bentobox> (raw)
In-Reply-To: <1468314486-29592-2-git-send-email-mareklindner@neomailbox.ch>
[-- Attachment #1: Type: text/plain, Size: 2054 bytes --]
On Dienstag, 12. Juli 2016 17:08:05 CEST Marek Lindner wrote:
> In a few situations batman-adv tries to determine whether a given interface
> is a WiFi interface to enable specific WiFi optimizations. If the interface
> batman-adv has been configured with is a virtual interface (e.g. VLAN) it
> would not be properly detected as WiFi interface and thus not benefit from
> the special WiFi treatment.
> This patch changes that by peeking under the hood whenever a virtual
> interface is in play.
>
> Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
> ---
> net/batman-adv/hard-interface.c | 85 ++++++++++++++++++++++++++++++++++++++---
> net/batman-adv/hard-interface.h | 1 +
> 2 files changed, 81 insertions(+), 5 deletions(-)
Most of the patch looks good. But you may want to first accept the netlink
patches and the rewrite the dev_get_link part.
> diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
> index 478977b..6324474 100644
> --- a/net/batman-adv/hard-interface.c
> +++ b/net/batman-adv/hard-interface.c
[...]
> +struct net_device *batadv_get_real_netdev(struct net_device *net_device)
> +{
[...]
> + net = dev_net(hard_iface->soft_iface);
> + ifindex = dev_get_iflink(net_device);
> + real_netdev = dev_get_by_index(net, ifindex);
Andrew provided a patch [1] which gets the correct namespace of a link. You
should consider to first accept his patch and then use batadv_getlink_net to
get the correct namespace for the device instead of just assuming that it will
be in the same netns as the batman-adv interface.
Something like this:
net = dev_net(hard_iface->soft_iface);
ifindex = dev_get_iflink(net_device);
real_net = = batadv_getlink_net(net_device, net);
real_netdev = dev_get_by_index(real_net, ifindex);
Could it also be that this has to be done with the rtnl lock held? Otherwise
some of the the information may change while we are going through all the
steps to get the real interface.
Kind regards,
Sven
[1] https://patchwork.open-mesh.org/patch/16442/
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2016-07-12 12:33 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-12 9:08 [B.A.T.M.A.N.] [PATCH 1/3] batman-adv: refactor wifi interface detection Marek Lindner
2016-07-12 9:08 ` [B.A.T.M.A.N.] [PATCH 2/3] batman-adv: additional checks for virtual interfaces on top of WiFi Marek Lindner
2016-07-12 12:33 ` Sven Eckelmann [this message]
2016-07-12 15:50 ` Sven Eckelmann
2016-09-30 10:31 ` Sven Eckelmann
2016-07-12 9:08 ` [B.A.T.M.A.N.] [PATCH 3/3] batman-adv: retrieve B.A.T.M.A.N. V WiFi neighbor stats from real interface Marek Lindner
2016-07-12 11:59 ` Sven Eckelmann
2016-07-12 11:58 ` [B.A.T.M.A.N.] [PATCH 1/3] batman-adv: refactor wifi interface detection Sven Eckelmann
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=1954516.MjuANSl94h@bentobox \
--to=sven@narfation.org \
--cc=b.a.t.m.a.n@lists.open-mesh.org \
--cc=mareklindner@neomailbox.ch \
/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