b.a.t.m.a.n.lists.open-mesh.org archive mirror
 help / color / mirror / Atom feed
* [B.A.T.M.A.N.] [PATCH] batman-adv: add compat support for the new netlink ops
@ 2013-02-17 14:43 Antonio Quartulli
  2013-02-18 23:49 ` Simon Wunderlich
  0 siblings, 1 reply; 12+ messages in thread
From: Antonio Quartulli @ 2013-02-17 14:43 UTC (permalink / raw)
  To: b.a.t.m.a.n

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


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCH] batman-adv: add compat support for the new netlink ops
  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
  2013-02-19  1:08   ` Marek Lindner
  0 siblings, 1 reply; 12+ messages in thread
From: Simon Wunderlich @ 2013-02-18 23:49 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

[-- 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 --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCH] batman-adv: add compat support for the new netlink ops
  2013-02-18 23:49 ` Simon Wunderlich
@ 2013-02-19  1:08   ` Marek Lindner
  2013-02-19 21:43     ` Simon Wunderlich
  0 siblings, 1 reply; 12+ messages in thread
From: Marek Lindner @ 2013-02-19  1:08 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking


Hi Simon,

> 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). 

I feel some confusion here. It could very well be that 2.6.32 did not yet 
support this kind of "interface transfer". You could repeat your test without 
any of the later patches (just go back to the last stable release) to see what 
happens. It is very likely that our patches have nothing to do with that.

These are the tests we should do in order to confirm the compat patch in 
question:

* batctl if add $iface && some OGMS here && batctl if del $iface
* ip link add dev bat0 type batadv && ip link set dev $iface master bat0 && 
some OGMS here && ip link set dev $iface nomaster && ip link del dev bat0

Even more interesting are combinations of those:
* batctl if add $iface && some OGMS here && ip link set dev $iface nomaster && 
ip link del dev bat0
* ip link add dev bat0 type batadv && ip link set dev $iface master bat0 && 
some OGMS here && batctl if del $iface

Thanks for testing!

Cheers,
Marek

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCH] batman-adv: add compat support for the new netlink ops
  2013-02-19  1:08   ` Marek Lindner
@ 2013-02-19 21:43     ` Simon Wunderlich
  2013-02-20 13:26       ` Antonio Quartulli
  0 siblings, 1 reply; 12+ messages in thread
From: Simon Wunderlich @ 2013-02-19 21:43 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

[-- Attachment #1: Type: text/plain, Size: 2469 bytes --]

On Tue, Feb 19, 2013 at 09:08:44AM +0800, Marek Lindner wrote:
> 
> Hi Simon,
> 
> > 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). 
> 
> I feel some confusion here. It could very well be that 2.6.32 did not yet 
> support this kind of "interface transfer". You could repeat your test without 
> any of the later patches (just go back to the last stable release) to see what 
> happens. It is very likely that our patches have nothing to do with that.

you are right - I've checked 2013.0.0, same behaviour - and now that you mention
it, this is all completely independent from batman-adv/netlink. Sorry for reporting
stuff like that ... :)

Also it seems that batctl (2010.0.0, from debian stable) reports all devices, even
if they are not added to batman-adv. It reports them as "not in use". This confused
me, haven't seen that on other systems (unused devices are just skipped ...). After
upding to the wheezy version of batctl (2012.1.0), this effect was gone.

Anyway, I've tested a little more and still I see some issues:

> 
> These are the tests we should do in order to confirm the compat patch in 
> question:
> 
> * batctl if add $iface && some OGMS here && batctl if del $iface

This works fine, I see OGMs, and the interface is removed cleanly.

> * ip link add dev bat0 type batadv

This works fine.

> ip link set dev $iface master bat0

This doesn't work. eth0 is not added to batman. To further test, I've added
it via batctl.

> some OGMS here 

yes (bat0 created with ip, eth0 added using batctl)

>ip link set dev $iface nomaster

has no effect

> ip link del dev bat0

works.
> 
> Even more interesting are combinations of those:
> * batctl if add $iface && some OGMS here && ip link set dev $iface nomaster && 
> ip link del dev bat0
> * ip link add dev bat0 type batadv && ip link set dev $iface master bat0 && 
> some OGMS here && batctl if del $iface

Some of these combinations are tested above, but I'd suggest we should fix the
general case first. :)

Cheers,
	Simon

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCH] batman-adv: add compat support for the new netlink ops
  2013-02-19 21:43     ` Simon Wunderlich
@ 2013-02-20 13:26       ` Antonio Quartulli
  2013-02-20 14:14         ` Simon Wunderlich
  0 siblings, 1 reply; 12+ messages in thread
From: Antonio Quartulli @ 2013-02-20 13:26 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

[-- Attachment #1: Type: text/plain, Size: 1181 bytes --]

Hi Simon,

> 
> > ip link set dev $iface master bat0
> 
> This doesn't work. eth0 is not added to batman. To further test, I've added
> it via batctl.

I'm not sure..but I think this does not work because the "set master" command
does not use ioctl, but rtnl only. Since in this kernel we don't have rtnl for
these operations (this is why we have this hacky patch) I did not expect this
command to work.

> >ip link set dev $iface nomaster
> 
> has no effect

same as before.

> > 
> > Even more interesting are combinations of those:
> > * batctl if add $iface && some OGMS here && ip link set dev $iface nomaster && 
> > ip link del dev bat0
> > * ip link add dev bat0 type batadv && ip link set dev $iface master bat0 && 
> > some OGMS here && batctl if del $iface
> 
> Some of these combinations are tested above, but I'd suggest we should fix the
> general case first. :)

what would you like to fix? :) We have just implemented a feature and now we
don't have any userspace tool which can exploit it! :-D

Simon, Thanks a lot for testing!

Cheers,


-- 
Antonio Quartulli

..each of us alone is worth nothing..
Ernesto "Che" Guevara

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCH] batman-adv: add compat support for the new netlink ops
  2013-02-20 13:26       ` Antonio Quartulli
@ 2013-02-20 14:14         ` Simon Wunderlich
  2013-02-20 14:27           ` Antonio Quartulli
  0 siblings, 1 reply; 12+ messages in thread
From: Simon Wunderlich @ 2013-02-20 14:14 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

[-- Attachment #1: Type: text/plain, Size: 1289 bytes --]

On Wed, Feb 20, 2013 at 02:26:25PM +0100, Antonio Quartulli wrote:
> Hi Simon,
> 
> > 
> > > ip link set dev $iface master bat0
> > 
> > This doesn't work. eth0 is not added to batman. To further test, I've added
> > it via batctl.
> 
> I'm not sure..but I think this does not work because the "set master" command
> does not use ioctl, but rtnl only. Since in this kernel we don't have rtnl for
> these operations (this is why we have this hacky patch) I did not expect this
> command to work.

OK

> > > 
> > > Even more interesting are combinations of those:
> > > * batctl if add $iface && some OGMS here && ip link set dev $iface nomaster && 
> > > ip link del dev bat0
> > > * ip link add dev bat0 type batadv && ip link set dev $iface master bat0 && 
> > > some OGMS here && batctl if del $iface
> > 
> > Some of these combinations are tested above, but I'd suggest we should fix the
> > general case first. :)
> 
> what would you like to fix? :) We have just implemented a feature and now we
> don't have any userspace tool which can exploit it! :-D

Well, if we don't expect this command to work then it's fine.

Personally I don't care as long as batctl works. :)

If there are any other things to test, please let me know.

Cheers,
	Simon


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCH] batman-adv: add compat support for the new netlink ops
  2013-02-20 14:14         ` Simon Wunderlich
@ 2013-02-20 14:27           ` Antonio Quartulli
  2013-02-20 14:40             ` Antonio Quartulli
  0 siblings, 1 reply; 12+ messages in thread
From: Antonio Quartulli @ 2013-02-20 14:27 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

[-- Attachment #1: Type: text/plain, Size: 1827 bytes --]

On Wed, Feb 20, 2013 at 03:14:13PM +0100, Simon Wunderlich wrote:
> On Wed, Feb 20, 2013 at 02:26:25PM +0100, Antonio Quartulli wrote:
> > Hi Simon,
> > 
> > > 
> > > > ip link set dev $iface master bat0
> > > 
> > > This doesn't work. eth0 is not added to batman. To further test, I've added
> > > it via batctl.
> > 
> > I'm not sure..but I think this does not work because the "set master" command
> > does not use ioctl, but rtnl only. Since in this kernel we don't have rtnl for
> > these operations (this is why we have this hacky patch) I did not expect this
> > command to work.
> 
> OK
> 
> > > > 
> > > > Even more interesting are combinations of those:
> > > > * batctl if add $iface && some OGMS here && ip link set dev $iface nomaster && 
> > > > ip link del dev bat0
> > > > * ip link add dev bat0 type batadv && ip link set dev $iface master bat0 && 
> > > > some OGMS here && batctl if del $iface
> > > 
> > > Some of these combinations are tested above, but I'd suggest we should fix the
> > > general case first. :)
> > 
> > what would you like to fix? :) We have just implemented a feature and now we
> > don't have any userspace tool which can exploit it! :-D
> 
> Well, if we don't expect this command to work then it's fine.

I just double-checked. iplink handles the master subcommand by sending a rtnl
request with the IFLA_MASTER flasg set, nothing else. Unluckily, this flag is
not supported in 2.6.32.

> 
> Personally I don't care as long as batctl works. :)

yeah, that's the important point. And batman-adv is still working with this
patch.

> 
> If there are any other things to test, please let me know.
> 

Nothing on my side.
Thanks again :)

Cheers,


-- 
Antonio Quartulli

..each of us alone is worth nothing..
Ernesto "Che" Guevara

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCH] batman-adv: add compat support for the new netlink ops
  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
  0 siblings, 1 reply; 12+ messages in thread
From: Antonio Quartulli @ 2013-02-20 14:40 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

[-- Attachment #1: Type: text/plain, Size: 502 bytes --]

On Wed, Feb 20, 2013 at 03:27:27PM +0100, Antonio Quartulli wrote:
> 
> Nothing on my side.
> Thanks again :)

I just realised that the ioctl commands this code is handling are for a bridge
interface. Since batman-adv does not have its own set of ioctls, then the
ndo_do_ioctl() callback should simply return EOPNOTSUPP.

I'm going to send v2. This will not affect any tested behaviour.

Cheers,



-- 
Antonio Quartulli

..each of us alone is worth nothing..
Ernesto "Che" Guevara

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [B.A.T.M.A.N.] [PATCHv2] batman-adv: add compat support for the new netlink ops
  2013-02-20 14:40             ` Antonio Quartulli
@ 2013-02-20 14:57               ` Antonio Quartulli
  2013-02-26 21:28                 ` Simon Wunderlich
  0 siblings, 1 reply; 12+ messages in thread
From: Antonio Quartulli @ 2013-02-20 14:57 UTC (permalink / raw)
  To: b.a.t.m.a.n

This patches enable the new rtnl ops to compile on kernels starting from 2.6.32

Signed-off-by: Antonio Quartulli <ordex@autistici.org>
---

v2:
 - do not handle ioctl. just return EOPNOTSUPP

 compat.h | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/compat.h b/compat.h
index 425b3d9..23ced4a 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,24 @@ 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 -EOPNOTSUPP;\
+}\
+static int __attribute__((unused)) __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)\
+{\
+	return -EOPNOTSUPP;\
+}\
+static int __attribute__((unused)) __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


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCHv2] batman-adv: add compat support for the new netlink ops
  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
  0 siblings, 2 replies; 12+ messages in thread
From: Simon Wunderlich @ 2013-02-26 21:28 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

[-- Attachment #1: Type: text/plain, Size: 2763 bytes --]

Hey guys,

As requested, just did a quick test again:
* batctl if add $iface && some OGMS here && batctl if del $iface
 --> still works fine
 * batctl link add dev bat0 type batadv
 --> creates the bat0 interface
 * ip link set dev eth0 master bat0
 --> no output, no effect
 * ip link del dev bat0
 --> deletes the bat0 interface

Used: Debian stable (squeeze) with original kernel (linux-iamge-2.6.32-5-686, version 2.6.32-46)
batctl (2012.1.0-1) and iproute (20120521-3) from wheezy 

So no difference noticed here. :)

I've checked back with iproute package from squeeze (20120521-3):
 * "ip link add dev bat0 type batadv" still works
 * "ip link set dev eth0 master bat0" throws an error and does nothing:
Error: either "dev" is duplicate, or "master" is a garbage.

so to summarize: it compiles again, batctl works, and ip at least allows to add the bat0
interface but adding interfaces into a softiface using ip doesn't.

Hope that helps!
Cheers,
	Simon

Tested-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>

On Wed, Feb 20, 2013 at 03:57:31PM +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>
> ---
> 
> v2:
>  - do not handle ioctl. just return EOPNOTSUPP
> 
>  compat.h | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
> 
> diff --git a/compat.h b/compat.h
> index 425b3d9..23ced4a 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,24 @@ 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 -EOPNOTSUPP;\
> +}\
> +static int __attribute__((unused)) __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)\
> +{\
> +	return -EOPNOTSUPP;\
> +}\
> +static int __attribute__((unused)) __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 --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCHv2] batman-adv: add compat support for the new netlink ops
  2013-02-26 21:28                 ` Simon Wunderlich
@ 2013-02-26 21:31                   ` Antonio Quartulli
  2013-02-27  3:20                   ` Marek Lindner
  1 sibling, 0 replies; 12+ messages in thread
From: Antonio Quartulli @ 2013-02-26 21:31 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

[-- Attachment #1: Type: text/plain, Size: 1336 bytes --]

On Tue, Feb 26, 2013 at 10:28:13PM +0100, Simon Wunderlich wrote:
> Hey guys,
> 
> As requested, just did a quick test again:
> * batctl if add $iface && some OGMS here && batctl if del $iface
>  --> still works fine
>  * batctl link add dev bat0 type batadv
>  --> creates the bat0 interface
>  * ip link set dev eth0 master bat0
>  --> no output, no effect
>  * ip link del dev bat0
>  --> deletes the bat0 interface
> 
> Used: Debian stable (squeeze) with original kernel (linux-iamge-2.6.32-5-686, version 2.6.32-46)
> batctl (2012.1.0-1) and iproute (20120521-3) from wheezy 
> 
> So no difference noticed here. :)
> 
> I've checked back with iproute package from squeeze (20120521-3):
>  * "ip link add dev bat0 type batadv" still works
>  * "ip link set dev eth0 master bat0" throws an error and does nothing:
> Error: either "dev" is duplicate, or "master" is a garbage.
> 
> so to summarize: it compiles again, batctl works, and ip at least allows to add the bat0
> interface but adding interfaces into a softiface using ip doesn't.
> 
> Hope that helps!
> Cheers,
> 	Simon
> 
> Tested-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>

Thank you very much Simon! :)
This is what we expected.

Cheers,


-- 
Antonio Quartulli

..each of us alone is worth nothing..
Ernesto "Che" Guevara

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCHv2] batman-adv: add compat support for the new netlink ops
  2013-02-26 21:28                 ` Simon Wunderlich
  2013-02-26 21:31                   ` Antonio Quartulli
@ 2013-02-27  3:20                   ` Marek Lindner
  1 sibling, 0 replies; 12+ messages in thread
From: Marek Lindner @ 2013-02-27  3:20 UTC (permalink / raw)
  To: b.a.t.m.a.n

On Wednesday, February 27, 2013 05:28:13 Simon Wunderlich wrote:
> so to summarize: it compiles again, batctl works, and ip at least allows to
> add the bat0 interface but adding interfaces into a softiface using ip
> doesn't.
>
> [..]
>
> Tested-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>

Thanks for testing!

Applied in revision 988f5b2.

Thanks,
Marek

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2013-02-27  3:20 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).