From: Simon Wunderlich <simon.wunderlich@s2003.tu-chemnitz.de>
To: The list for a Better Approach To Mobile Ad-hoc Networking
<b.a.t.m.a.n@lists.open-mesh.org>
Subject: Re: [B.A.T.M.A.N.] [PATCH] batman-adv: add compat support for the new netlink ops
Date: Tue, 19 Feb 2013 00:49:04 +0100 [thread overview]
Message-ID: <20130218234904.GA24241@pandem0nium> (raw)
In-Reply-To: <1361112184-9927-1-git-send-email-ordex@autistici.org>
[-- Attachment #1: Type: text/plain, Size: 3661 bytes --]
Hey Antonio,
I've tested this (just test, no code review) in my 2.6.32 qemu (Debian squeeze, iproute from wheezy).
It generally loads and batctl if add/del seems to work, but there is something weird going on with
bridge interaction. After calling the following 3 commands:
brctl addbr br0
batctl if add eth0
ip link set dev eth0 master br0
I would expect that eth0 moved from bat0 to br0 (or some error is reported). But what I see is:
root@debian:~# batctl if
eth0: active
br0: not in use
root@debian:~# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000000000000 no
Even more weird, after doing batctl if del eth0 or batctl if del br0, I don't get any output, but
both devices remain in bat0 (according to batctl if). But I do get some output that it's trying
to remove eth0:
[ 102.788930] batman_adv: bat0: Interface deactivated: eth0
[ 102.788935] batman_adv: bat0: Removing interface: eth0
Note that I don't have this behaviour on my host machine (3.2.0, Debian unstable kernel).
So I can't ack this now, although I don't know if the problem is in this patch, in the
current batman-adv/netlink implementation or somewhere in 2.6.32 kernel release.
Cheers,
Simon
On Sun, Feb 17, 2013 at 03:43:04PM +0100, Antonio Quartulli wrote:
> This patches enable the new rtnl ops to compile on kernels starting from 2.6.32
>
> Signed-off-by: Antonio Quartulli <ordex@autistici.org>
> ---
>
> Could not be uglier.
> *Compile tested only* because linux-2.6.32 does not compile on my laptop
>
>
>
> compat.h | 40 ++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 40 insertions(+)
>
> diff --git a/compat.h b/compat.h
> index 885e551..de22e2b 100644
> --- a/compat.h
> +++ b/compat.h
> @@ -71,6 +71,9 @@ static inline void batadv_this_cpu_add(uint64_t *count_ptr, size_t count)
> put_cpu();
> }
>
> +#define batadv_softif_destroy_netlink(dev, head) batadv_softif_destroy_netlink(dev)
> +#define unregister_netdevice_queue(dev, head) unregister_netdevice(dev)
> +
> #endif /* < KERNEL_VERSION(2, 6, 33) */
>
>
> @@ -132,6 +135,43 @@ static inline int batadv_param_set_copystring(const char *val,
> #define kstrtoul strict_strtoul
> #define kstrtol strict_strtol
>
> +#define batadv_softif_slave_add(x, y) \
> +batadv_softif_slave_add(struct net_device *dev, struct ifreq *rq, int cmd)\
> +{\
> + return 0;\
> +}\
> +static int __batadv_softif_slave_add(x, y)
> +
> +#define batadv_softif_slave_del(x, y) \
> +__batadv_softif_slave_del(struct net_device *dev, struct net_device *slave_dev);\
> +static int batadv_softif_slave_del(struct net_device *dev, struct ifreq *rq, int cmd)\
> +{\
> + struct batadv_priv *bat_priv = netdev_priv(dev);\
> + struct net_device *slave_dev;\
> + int ret;\
> + if (!capable(CAP_NET_ADMIN))\
> + return -EPERM;\
> + slave_dev = dev_get_by_index(&init_net, rq->ifr_ifindex);\
> + if (!dev)\
> + return -EINVAL;\
> + switch(cmd) {\
> + case SIOCBRADDIF:\
> + ret = __batadv_softif_slave_add(bat_priv->soft_iface, slave_dev);\
> + case SIOCBRDELIF:\
> + ret = __batadv_softif_slave_del(bat_priv->soft_iface, slave_dev);\
> + default:\
> + pr_debug("batman-adv does not support ioctl 0x%x\n", cmd);\
> + return -EOPNOTSUPP;\
> + }\
> +\
> + dev_put(slave_dev);\
> + return ret;\
> +}\
> +static int __batadv_softif_slave_del(x, y)
> +
> +#define ndo_add_slave ndo_do_ioctl
> +#define ndo_del_slave ndo_do_ioctl
> +
> #endif /* < KERNEL_VERSION(2, 6, 39) */
>
>
> --
> 1.8.1.2
>
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
next prev parent reply other threads:[~2013-02-18 23:49 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-17 14:43 [B.A.T.M.A.N.] [PATCH] batman-adv: add compat support for the new netlink ops Antonio Quartulli
2013-02-18 23:49 ` Simon Wunderlich [this message]
2013-02-19 1:08 ` Marek Lindner
2013-02-19 21:43 ` Simon Wunderlich
2013-02-20 13:26 ` Antonio Quartulli
2013-02-20 14:14 ` Simon Wunderlich
2013-02-20 14:27 ` Antonio Quartulli
2013-02-20 14:40 ` Antonio Quartulli
2013-02-20 14:57 ` [B.A.T.M.A.N.] [PATCHv2] " Antonio Quartulli
2013-02-26 21:28 ` Simon Wunderlich
2013-02-26 21:31 ` Antonio Quartulli
2013-02-27 3:20 ` Marek Lindner
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=20130218234904.GA24241@pandem0nium \
--to=simon.wunderlich@s2003.tu-chemnitz.de \
--cc=b.a.t.m.a.n@lists.open-mesh.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