* [B.A.T.M.A.N.] [PATCH 3/8] batman-adv: randomize initial seqno to avoid collision
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 2/8] batman-adv: refactoring API: find generalized name for bat_ogm_init callback Marek Lindner
@ 2012-02-07 9:20 ` Marek Lindner
2012-02-07 9:33 ` Martin Hundebøll
` (2 more replies)
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 4/8] batman-adv: add iface_disable() callback to routing API Marek Lindner
` (5 subsequent siblings)
6 siblings, 3 replies; 24+ messages in thread
From: Marek Lindner @ 2012-02-07 9:20 UTC (permalink / raw)
To: b.a.t.m.a.n; +Cc: Marek Lindner
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
bat_iv_ogm.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
index 3eff7f0..4ac2d1d 100644
--- a/bat_iv_ogm.c
+++ b/bat_iv_ogm.c
@@ -33,6 +33,11 @@
static void bat_iv_ogm_iface_enable(struct hard_iface *hard_iface)
{
struct batman_ogm_packet *batman_ogm_packet;
+ unsigned long random_seqno;
+
+ /* randomize initial seqno to avoid collision */
+ get_random_bytes(&random_seqno, sizeof(unsigned long));
+ atomic_set(&hard_iface->seqno, (uint32_t)random_seqno);
hard_iface->packet_len = BATMAN_OGM_LEN;
hard_iface->packet_buff = kmalloc(hard_iface->packet_len, GFP_ATOMIC);
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [B.A.T.M.A.N.] [PATCH 3/8] batman-adv: randomize initial seqno to avoid collision
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 3/8] batman-adv: randomize initial seqno to avoid collision Marek Lindner
@ 2012-02-07 9:33 ` Martin Hundebøll
2012-02-07 11:10 ` Marek Lindner
2012-02-07 12:12 ` Andrew Lunn
2012-02-12 15:01 ` Marek Lindner
2 siblings, 1 reply; 24+ messages in thread
From: Martin Hundebøll @ 2012-02-07 9:33 UTC (permalink / raw)
To: b.a.t.m.a.n
On 2012-02-07 10:20, Marek Lindner wrote:
> Signed-off-by: Marek Lindner<lindner_marek@yahoo.de>
> ---
> bat_iv_ogm.c | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
> index 3eff7f0..4ac2d1d 100644
> --- a/bat_iv_ogm.c
> +++ b/bat_iv_ogm.c
> @@ -33,6 +33,11 @@
> static void bat_iv_ogm_iface_enable(struct hard_iface *hard_iface)
> {
> struct batman_ogm_packet *batman_ogm_packet;
> + unsigned long random_seqno;
> +
> + /* randomize initial seqno to avoid collision */
> + get_random_bytes(&random_seqno, sizeof(unsigned long));
> + atomic_set(&hard_iface->seqno, (uint32_t)random_seqno);
Wouldn't it be better to cast "unsigned long" in the call to atomic_set()?
--
Kind Regards,
Martin Hundebøll
Nordborggade 57, 2. 1
8000 Aarhus C
+45 61 65 54 61
martin@hundeboll.net
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [B.A.T.M.A.N.] [PATCH 3/8] batman-adv: randomize initial seqno to avoid collision
2012-02-07 9:33 ` Martin Hundebøll
@ 2012-02-07 11:10 ` Marek Lindner
2012-02-07 11:13 ` Martin Hundebøll
0 siblings, 1 reply; 24+ messages in thread
From: Marek Lindner @ 2012-02-07 11:10 UTC (permalink / raw)
To: The list for a Better Approach To Mobile Ad-hoc Networking
On Tuesday, February 07, 2012 17:33:14 Martin Hundebøll wrote:
> On 2012-02-07 10:20, Marek Lindner wrote:
> > Signed-off-by: Marek Lindner<lindner_marek@yahoo.de>
> > ---
> >
> > bat_iv_ogm.c | 5 +++++
> > 1 files changed, 5 insertions(+), 0 deletions(-)
> >
> > diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
> > index 3eff7f0..4ac2d1d 100644
> > --- a/bat_iv_ogm.c
> > +++ b/bat_iv_ogm.c
> > @@ -33,6 +33,11 @@
> >
> > static void bat_iv_ogm_iface_enable(struct hard_iface *hard_iface)
> > {
> >
> > struct batman_ogm_packet *batman_ogm_packet;
> >
> > + unsigned long random_seqno;
> > +
> > + /* randomize initial seqno to avoid collision */
> > + get_random_bytes(&random_seqno, sizeof(unsigned long));
> > + atomic_set(&hard_iface->seqno, (uint32_t)random_seqno);
>
> Wouldn't it be better to cast "unsigned long" in the call to atomic_set()?
Why should it better ?
Regards,
Marek
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [B.A.T.M.A.N.] [PATCH 3/8] batman-adv: randomize initial seqno to avoid collision
2012-02-07 11:10 ` Marek Lindner
@ 2012-02-07 11:13 ` Martin Hundebøll
2012-02-07 11:50 ` Marek Lindner
0 siblings, 1 reply; 24+ messages in thread
From: Martin Hundebøll @ 2012-02-07 11:13 UTC (permalink / raw)
To: b.a.t.m.a.n
On 2012-02-07 12:10, Marek Lindner wrote:
>>> + unsigned long random_seqno;
>>> > > +
>>> > > + /* randomize initial seqno to avoid collision */
>>> > > + get_random_bytes(&random_seqno, sizeof(unsigned long));
>>> > > + atomic_set(&hard_iface->seqno, (uint32_t)random_seqno);
>> >
>> > Wouldn't it be better to cast "unsigned long" in the call to atomic_set()?
> Why should it better ?
Maybe not better, but at least it is consistent with the type of random_seqno, which is unsigned long. I know the two types are identical, but nevertheless, I like to use the same type of type :)
--
Med venlig hilsen
Martin Hundebøll
Nordborggade 57, 2. 1
8000 Aarhus C
+45 61 65 54 61
martin@hundeboll.net
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [B.A.T.M.A.N.] [PATCH 3/8] batman-adv: randomize initial seqno to avoid collision
2012-02-07 11:13 ` Martin Hundebøll
@ 2012-02-07 11:50 ` Marek Lindner
0 siblings, 0 replies; 24+ messages in thread
From: Marek Lindner @ 2012-02-07 11:50 UTC (permalink / raw)
To: The list for a Better Approach To Mobile Ad-hoc Networking
On Tuesday, February 07, 2012 19:13:27 Martin Hundebøll wrote:
> On 2012-02-07 12:10, Marek Lindner wrote:
> >>> + unsigned long random_seqno;
> >>>
> >>> > > +
> >>> > > + /* randomize initial seqno to avoid collision */
> >>> > > + get_random_bytes(&random_seqno, sizeof(unsigned long));
> >>> > > + atomic_set(&hard_iface->seqno, (uint32_t)random_seqno);
> >> >
> >> > Wouldn't it be better to cast "unsigned long" in the call to
> >> > atomic_set()?
> >
> > Why should it better ?
>
> Maybe not better, but at least it is consistent with the type of
> random_seqno, which is unsigned long. I know the two types are identical,
> but nevertheless, I like to use the same type of type :)
You lost me somewhere. Yes, random_seqno is unsigned long. If we wanted to
store unsigned long we would not need a cast.
However, in my kernel the second argument for atomic_set() is "int" and not
"unsigned long" which why we have a cast there.
Regards,
Marek
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [B.A.T.M.A.N.] [PATCH 3/8] batman-adv: randomize initial seqno to avoid collision
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 3/8] batman-adv: randomize initial seqno to avoid collision Marek Lindner
2012-02-07 9:33 ` Martin Hundebøll
@ 2012-02-07 12:12 ` Andrew Lunn
2012-02-07 12:21 ` Marek Lindner
2012-02-12 15:01 ` Marek Lindner
2 siblings, 1 reply; 24+ messages in thread
From: Andrew Lunn @ 2012-02-07 12:12 UTC (permalink / raw)
To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Marek Lindner
On Tue, Feb 07, 2012 at 05:20:46PM +0800, Marek Lindner wrote:
> Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
> ---
> bat_iv_ogm.c | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
> index 3eff7f0..4ac2d1d 100644
> --- a/bat_iv_ogm.c
> +++ b/bat_iv_ogm.c
> @@ -33,6 +33,11 @@
> static void bat_iv_ogm_iface_enable(struct hard_iface *hard_iface)
> {
> struct batman_ogm_packet *batman_ogm_packet;
> + unsigned long random_seqno;
> +
> + /* randomize initial seqno to avoid collision */
> + get_random_bytes(&random_seqno, sizeof(unsigned long));
> + atomic_set(&hard_iface->seqno, (uint32_t)random_seqno);
Hi Marek
Does this sequence number have any security relevance? Does it make
sense to use the TCP sequence number generation code?
Andrew
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [B.A.T.M.A.N.] [PATCH 3/8] batman-adv: randomize initial seqno to avoid collision
2012-02-07 12:12 ` Andrew Lunn
@ 2012-02-07 12:21 ` Marek Lindner
2012-02-07 12:46 ` Andrew Lunn
0 siblings, 1 reply; 24+ messages in thread
From: Marek Lindner @ 2012-02-07 12:21 UTC (permalink / raw)
To: The list for a Better Approach To Mobile Ad-hoc Networking
On Tuesday, February 07, 2012 20:12:00 Andrew Lunn wrote:
> Does this sequence number have any security relevance? Does it make
> sense to use the TCP sequence number generation code?
There is no security relevance I know of. The idea was simply to start with
random number. Random is a bit better than 1. ;-)
Where can I find the TCP sequence number code you are referring to ?
Regards,
Marek
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [B.A.T.M.A.N.] [PATCH 3/8] batman-adv: randomize initial seqno to avoid collision
2012-02-07 12:21 ` Marek Lindner
@ 2012-02-07 12:46 ` Andrew Lunn
0 siblings, 0 replies; 24+ messages in thread
From: Andrew Lunn @ 2012-02-07 12:46 UTC (permalink / raw)
To: The list for a Better Approach To Mobile Ad-hoc Networking
On Tue, Feb 07, 2012 at 08:21:55PM +0800, Marek Lindner wrote:
> On Tuesday, February 07, 2012 20:12:00 Andrew Lunn wrote:
> > Does this sequence number have any security relevance? Does it make
> > sense to use the TCP sequence number generation code?
>
> There is no security relevance I know of. The idea was simply to start with
> random number. Random is a bit better than 1. ;-)
>
> Where can I find the TCP sequence number code you are referring to ?
I had to go find it, since i've never looked at it before.
net/core/secure_seq.c:
__u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr,
__be16 sport, __be16 dport)
but it does not look very re-usable, since it takes all these
addresses. What might be usable is:
__u32 secure_ip_id(__be32 daddr)
{
u32 hash[MD5_DIGEST_WORDS];
hash[0] = (__force __u32) daddr;
hash[1] = net_secret[13];
hash[2] = net_secret[14];
hash[3] = net_secret[15];
md5_transform(hash, net_secret);
return hash[0];
}
passing it the last four bytes of the originator MAC address?
Andrew
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [B.A.T.M.A.N.] [PATCH 3/8] batman-adv: randomize initial seqno to avoid collision
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 3/8] batman-adv: randomize initial seqno to avoid collision Marek Lindner
2012-02-07 9:33 ` Martin Hundebøll
2012-02-07 12:12 ` Andrew Lunn
@ 2012-02-12 15:01 ` Marek Lindner
2 siblings, 0 replies; 24+ messages in thread
From: Marek Lindner @ 2012-02-12 15:01 UTC (permalink / raw)
To: The list for a Better Approach To Mobile Ad-hoc Networking
On Tuesday, February 07, 2012 17:20:46 Marek Lindner wrote:
> Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
> ---
> bat_iv_ogm.c | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
Applied in revision 852b9dc.
Regards,
Marek
^ permalink raw reply [flat|nested] 24+ messages in thread
* [B.A.T.M.A.N.] [PATCH 4/8] batman-adv: add iface_disable() callback to routing API
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 2/8] batman-adv: refactoring API: find generalized name for bat_ogm_init callback Marek Lindner
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 3/8] batman-adv: randomize initial seqno to avoid collision Marek Lindner
@ 2012-02-07 9:20 ` Marek Lindner
2012-02-12 15:02 ` Marek Lindner
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 5/8] batman-adv: handle routing code initialization properly Marek Lindner
` (4 subsequent siblings)
6 siblings, 1 reply; 24+ messages in thread
From: Marek Lindner @ 2012-02-07 9:20 UTC (permalink / raw)
To: b.a.t.m.a.n; +Cc: Marek Lindner
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
bat_iv_ogm.c | 7 +++++++
hard-interface.c | 3 +--
main.c | 1 +
types.h | 2 ++
4 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
index 4ac2d1d..98c41f5 100644
--- a/bat_iv_ogm.c
+++ b/bat_iv_ogm.c
@@ -52,6 +52,12 @@ static void bat_iv_ogm_iface_enable(struct hard_iface *hard_iface)
batman_ogm_packet->ttvn = 0;
}
+static void bat_iv_ogm_iface_disable(struct hard_iface *hard_iface)
+{
+ kfree(hard_iface->packet_buff);
+ hard_iface->packet_buff = NULL;
+}
+
static void bat_iv_ogm_init_primary(struct hard_iface *hard_iface)
{
struct batman_ogm_packet *batman_ogm_packet;
@@ -1186,6 +1192,7 @@ static void bat_iv_ogm_receive(struct hard_iface *if_incoming,
static struct bat_algo_ops batman_iv __read_mostly = {
.name = "BATMAN IV",
.bat_iface_enable = bat_iv_ogm_iface_enable,
+ .bat_iface_disable = bat_iv_ogm_iface_disable,
.bat_ogm_init_primary = bat_iv_ogm_init_primary,
.bat_ogm_update_mac = bat_iv_ogm_update_mac,
.bat_ogm_schedule = bat_iv_ogm_schedule,
diff --git a/hard-interface.c b/hard-interface.c
index 4052444..ec2f478 100644
--- a/hard-interface.c
+++ b/hard-interface.c
@@ -409,8 +409,7 @@ void hardif_disable_interface(struct hard_iface *hard_iface)
hardif_free_ref(new_if);
}
- kfree(hard_iface->packet_buff);
- hard_iface->packet_buff = NULL;
+ bat_priv->bat_algo_ops->bat_iface_disable(hard_iface);
hard_iface->if_status = IF_NOT_IN_USE;
/* delete all references to this hard_iface */
diff --git a/main.c b/main.c
index 8bc27e1..c4a9b2b 100644
--- a/main.c
+++ b/main.c
@@ -209,6 +209,7 @@ int bat_algo_register(struct bat_algo_ops *bat_algo_ops)
/* all algorithms must implement all ops (for now) */
if (!bat_algo_ops->bat_iface_enable ||
+ !bat_algo_ops->bat_iface_disable ||
!bat_algo_ops->bat_ogm_init_primary ||
!bat_algo_ops->bat_ogm_update_mac ||
!bat_algo_ops->bat_ogm_schedule ||
diff --git a/types.h b/types.h
index c78b925..5e8de0e 100644
--- a/types.h
+++ b/types.h
@@ -371,6 +371,8 @@ struct bat_algo_ops {
char *name;
/* init routing info when hard-interface is enabled */
void (*bat_iface_enable)(struct hard_iface *hard_iface);
+ /* de-init routing info when hard-interface is disabled */
+ void (*bat_iface_disable)(struct hard_iface *hard_iface);
/* init primary OGM when primary interface is selected */
void (*bat_ogm_init_primary)(struct hard_iface *hard_iface);
/* init mac addresses of the OGM belonging to this hard-interface */
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [B.A.T.M.A.N.] [PATCH 5/8] batman-adv: handle routing code initialization properly
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 2/8] batman-adv: refactoring API: find generalized name for bat_ogm_init callback Marek Lindner
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 3/8] batman-adv: randomize initial seqno to avoid collision Marek Lindner
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 4/8] batman-adv: add iface_disable() callback to routing API Marek Lindner
@ 2012-02-07 9:20 ` Marek Lindner
2012-02-12 15:04 ` Marek Lindner
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 6/8] batman-adv: refactoring API: find generalized name for bat_ogm_init_primary callback Marek Lindner
` (3 subsequent siblings)
6 siblings, 1 reply; 24+ messages in thread
From: Marek Lindner @ 2012-02-07 9:20 UTC (permalink / raw)
To: b.a.t.m.a.n; +Cc: Marek Lindner
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
bat_iv_ogm.c | 11 ++++++++++-
hard-interface.c | 14 ++++++--------
types.h | 2 +-
3 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
index 98c41f5..d944a0b 100644
--- a/bat_iv_ogm.c
+++ b/bat_iv_ogm.c
@@ -30,10 +30,11 @@
#include "send.h"
#include "bat_algo.h"
-static void bat_iv_ogm_iface_enable(struct hard_iface *hard_iface)
+static int bat_iv_ogm_iface_enable(struct hard_iface *hard_iface)
{
struct batman_ogm_packet *batman_ogm_packet;
unsigned long random_seqno;
+ int res = -1;
/* randomize initial seqno to avoid collision */
get_random_bytes(&random_seqno, sizeof(unsigned long));
@@ -42,6 +43,9 @@ static void bat_iv_ogm_iface_enable(struct hard_iface *hard_iface)
hard_iface->packet_len = BATMAN_OGM_LEN;
hard_iface->packet_buff = kmalloc(hard_iface->packet_len, GFP_ATOMIC);
+ if (!hard_iface->packet_buff)
+ goto out;
+
batman_ogm_packet = (struct batman_ogm_packet *)hard_iface->packet_buff;
batman_ogm_packet->header.packet_type = BAT_OGM;
batman_ogm_packet->header.version = COMPAT_VERSION;
@@ -50,6 +54,11 @@ static void bat_iv_ogm_iface_enable(struct hard_iface *hard_iface)
batman_ogm_packet->tq = TQ_MAX_VALUE;
batman_ogm_packet->tt_num_changes = 0;
batman_ogm_packet->ttvn = 0;
+
+ res = 0;
+
+out:
+ return res;
}
static void bat_iv_ogm_iface_disable(struct hard_iface *hard_iface)
diff --git a/hard-interface.c b/hard-interface.c
index ec2f478..d6b25e0 100644
--- a/hard-interface.c
+++ b/hard-interface.c
@@ -310,21 +310,17 @@ int hardif_enable_interface(struct hard_iface *hard_iface,
pr_err("Can't create batman mesh interface %s: "
"already exists as regular interface\n",
soft_iface->name);
- dev_put(soft_iface);
ret = -EINVAL;
- goto err;
+ goto err_dev;
}
hard_iface->soft_iface = soft_iface;
bat_priv = netdev_priv(hard_iface->soft_iface);
- bat_priv->bat_algo_ops->bat_iface_enable(hard_iface);
-
- if (!hard_iface->packet_buff) {
- bat_err(hard_iface->soft_iface, "Can't add interface packet "
- "(%s): out of memory\n", hard_iface->net_dev->name);
+ ret = bat_priv->bat_algo_ops->bat_iface_enable(hard_iface);
+ if (ret < 0) {
ret = -ENOMEM;
- goto err;
+ goto err_dev;
}
hard_iface->if_num = bat_priv->num_ifaces;
@@ -375,6 +371,8 @@ int hardif_enable_interface(struct hard_iface *hard_iface,
out:
return 0;
+err_dev:
+ dev_put(soft_iface);
err:
hardif_free_ref(hard_iface);
return ret;
diff --git a/types.h b/types.h
index 5e8de0e..3df38df 100644
--- a/types.h
+++ b/types.h
@@ -370,7 +370,7 @@ struct bat_algo_ops {
struct hlist_node list;
char *name;
/* init routing info when hard-interface is enabled */
- void (*bat_iface_enable)(struct hard_iface *hard_iface);
+ int (*bat_iface_enable)(struct hard_iface *hard_iface);
/* de-init routing info when hard-interface is disabled */
void (*bat_iface_disable)(struct hard_iface *hard_iface);
/* init primary OGM when primary interface is selected */
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [B.A.T.M.A.N.] [PATCH 6/8] batman-adv: refactoring API: find generalized name for bat_ogm_init_primary callback
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 2/8] batman-adv: refactoring API: find generalized name for bat_ogm_init callback Marek Lindner
` (2 preceding siblings ...)
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 5/8] batman-adv: handle routing code initialization properly Marek Lindner
@ 2012-02-07 9:20 ` Marek Lindner
2012-02-12 15:08 ` Marek Lindner
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 7/8] batman-adv: rename BATMAN_OGM_LEN to BATMAN_OGM_HLEN Marek Lindner
` (2 subsequent siblings)
6 siblings, 1 reply; 24+ messages in thread
From: Marek Lindner @ 2012-02-07 9:20 UTC (permalink / raw)
To: b.a.t.m.a.n; +Cc: Marek Lindner
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
bat_iv_ogm.c | 4 ++--
hard-interface.c | 2 +-
main.c | 2 +-
types.h | 4 ++--
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
index d944a0b..b82a772 100644
--- a/bat_iv_ogm.c
+++ b/bat_iv_ogm.c
@@ -67,7 +67,7 @@ static void bat_iv_ogm_iface_disable(struct hard_iface *hard_iface)
hard_iface->packet_buff = NULL;
}
-static void bat_iv_ogm_init_primary(struct hard_iface *hard_iface)
+static void bat_iv_ogm_primary_iface_set(struct hard_iface *hard_iface)
{
struct batman_ogm_packet *batman_ogm_packet;
@@ -1202,7 +1202,7 @@ static struct bat_algo_ops batman_iv __read_mostly = {
.name = "BATMAN IV",
.bat_iface_enable = bat_iv_ogm_iface_enable,
.bat_iface_disable = bat_iv_ogm_iface_disable,
- .bat_ogm_init_primary = bat_iv_ogm_init_primary,
+ .bat_primary_iface_set = bat_iv_ogm_primary_iface_set,
.bat_ogm_update_mac = bat_iv_ogm_update_mac,
.bat_ogm_schedule = bat_iv_ogm_schedule,
.bat_ogm_emit = bat_iv_ogm_emit,
diff --git a/hard-interface.c b/hard-interface.c
index d6b25e0..2a435ec 100644
--- a/hard-interface.c
+++ b/hard-interface.c
@@ -146,7 +146,7 @@ static void primary_if_select(struct bat_priv *bat_priv,
if (!new_hard_iface)
goto out;
- bat_priv->bat_algo_ops->bat_ogm_init_primary(new_hard_iface);
+ bat_priv->bat_algo_ops->bat_primary_iface_set(new_hard_iface);
primary_if_update_addr(bat_priv, curr_hard_iface);
out:
diff --git a/main.c b/main.c
index c4a9b2b..87b75a9 100644
--- a/main.c
+++ b/main.c
@@ -210,7 +210,7 @@ int bat_algo_register(struct bat_algo_ops *bat_algo_ops)
/* all algorithms must implement all ops (for now) */
if (!bat_algo_ops->bat_iface_enable ||
!bat_algo_ops->bat_iface_disable ||
- !bat_algo_ops->bat_ogm_init_primary ||
+ !bat_algo_ops->bat_primary_iface_set ||
!bat_algo_ops->bat_ogm_update_mac ||
!bat_algo_ops->bat_ogm_schedule ||
!bat_algo_ops->bat_ogm_emit ||
diff --git a/types.h b/types.h
index 3df38df..e3d2f1f 100644
--- a/types.h
+++ b/types.h
@@ -373,8 +373,8 @@ struct bat_algo_ops {
int (*bat_iface_enable)(struct hard_iface *hard_iface);
/* de-init routing info when hard-interface is disabled */
void (*bat_iface_disable)(struct hard_iface *hard_iface);
- /* init primary OGM when primary interface is selected */
- void (*bat_ogm_init_primary)(struct hard_iface *hard_iface);
+ /* called when primary interface is selected / changed */
+ void (*bat_primary_iface_set)(struct hard_iface *hard_iface);
/* init mac addresses of the OGM belonging to this hard-interface */
void (*bat_ogm_update_mac)(struct hard_iface *hard_iface);
/* prepare a new outgoing OGM for the send queue */
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [B.A.T.M.A.N.] [PATCH 7/8] batman-adv: rename BATMAN_OGM_LEN to BATMAN_OGM_HLEN
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 2/8] batman-adv: refactoring API: find generalized name for bat_ogm_init callback Marek Lindner
` (3 preceding siblings ...)
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 6/8] batman-adv: refactoring API: find generalized name for bat_ogm_init_primary callback Marek Lindner
@ 2012-02-07 9:20 ` Marek Lindner
2012-02-12 15:09 ` Marek Lindner
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 8/8] batman-adv: mark existing ogm variables as batman iv Marek Lindner
2012-02-12 14:58 ` [B.A.T.M.A.N.] [PATCH 2/8] batman-adv: refactoring API: find generalized name for bat_ogm_init callback Marek Lindner
6 siblings, 1 reply; 24+ messages in thread
From: Marek Lindner @ 2012-02-07 9:20 UTC (permalink / raw)
To: b.a.t.m.a.n; +Cc: Marek Lindner
Using BATMAN_OGM_LEN leaves one with the impression that this is
the full packet size which is not the case. Therefore the variable
is renamed.
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
bat_iv_ogm.c | 12 ++++++------
packet.h | 2 +-
routing.c | 2 +-
send.c | 12 ++++++------
4 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
index b82a772..da93525 100644
--- a/bat_iv_ogm.c
+++ b/bat_iv_ogm.c
@@ -40,7 +40,7 @@ static int bat_iv_ogm_iface_enable(struct hard_iface *hard_iface)
get_random_bytes(&random_seqno, sizeof(unsigned long));
atomic_set(&hard_iface->seqno, (uint32_t)random_seqno);
- hard_iface->packet_len = BATMAN_OGM_LEN;
+ hard_iface->packet_len = BATMAN_OGM_HLEN;
hard_iface->packet_buff = kmalloc(hard_iface->packet_len, GFP_ATOMIC);
if (!hard_iface->packet_buff)
@@ -112,7 +112,7 @@ static uint8_t hop_penalty(uint8_t tq, const struct bat_priv *bat_priv)
static int bat_iv_ogm_aggr_packet(int buff_pos, int packet_len,
int tt_num_changes)
{
- int next_buff_pos = buff_pos + BATMAN_OGM_LEN + tt_len(tt_num_changes);
+ int next_buff_pos = buff_pos + BATMAN_OGM_HLEN + tt_len(tt_num_changes);
return (next_buff_pos <= packet_len) &&
(next_buff_pos <= MAX_AGGREGATION_BYTES);
@@ -163,7 +163,7 @@ static void bat_iv_ogm_send_to_if(struct forw_packet *forw_packet,
batman_ogm_packet->ttvn, hard_iface->net_dev->name,
hard_iface->net_dev->dev_addr);
- buff_pos += BATMAN_OGM_LEN +
+ buff_pos += BATMAN_OGM_HLEN +
tt_len(batman_ogm_packet->tt_num_changes);
packet_num++;
batman_ogm_packet = (struct batman_ogm_packet *)
@@ -544,7 +544,7 @@ static void bat_iv_ogm_forward(struct orig_node *orig_node,
batman_ogm_packet->flags &= ~DIRECTLINK;
bat_iv_ogm_queue_add(bat_priv, (unsigned char *)batman_ogm_packet,
- BATMAN_OGM_LEN + tt_len(tt_num_changes),
+ BATMAN_OGM_HLEN + tt_len(tt_num_changes),
if_incoming, 0, bat_iv_ogm_fwd_send_time());
}
@@ -1184,12 +1184,12 @@ static void bat_iv_ogm_receive(struct hard_iface *if_incoming,
batman_ogm_packet->seqno = ntohl(batman_ogm_packet->seqno);
batman_ogm_packet->tt_crc = ntohs(batman_ogm_packet->tt_crc);
- tt_buff = packet_buff + buff_pos + BATMAN_OGM_LEN;
+ tt_buff = packet_buff + buff_pos + BATMAN_OGM_HLEN;
bat_iv_ogm_process(ethhdr, batman_ogm_packet,
tt_buff, if_incoming);
- buff_pos += BATMAN_OGM_LEN +
+ buff_pos += BATMAN_OGM_HLEN +
tt_len(batman_ogm_packet->tt_num_changes);
batman_ogm_packet = (struct batman_ogm_packet *)
diff --git a/packet.h b/packet.h
index caa12fe..ed16ec3 100644
--- a/packet.h
+++ b/packet.h
@@ -125,7 +125,7 @@ struct batman_ogm_packet {
uint16_t tt_crc;
} __packed;
-#define BATMAN_OGM_LEN sizeof(struct batman_ogm_packet)
+#define BATMAN_OGM_HLEN sizeof(struct batman_ogm_packet)
struct icmp_packet {
struct batman_header header;
diff --git a/routing.c b/routing.c
index 7b7fcbe..92fe20b 100644
--- a/routing.c
+++ b/routing.c
@@ -254,7 +254,7 @@ int recv_bat_ogm_packet(struct sk_buff *skb, struct hard_iface *hard_iface)
struct ethhdr *ethhdr;
/* drop packet if it has not necessary minimum size */
- if (unlikely(!pskb_may_pull(skb, BATMAN_OGM_LEN)))
+ if (unlikely(!pskb_may_pull(skb, BATMAN_OGM_HLEN)))
return NET_RX_DROP;
ethhdr = (struct ethhdr *)skb_mac_header(skb);
diff --git a/send.c b/send.c
index 4137580..36e1d27 100644
--- a/send.c
+++ b/send.c
@@ -87,7 +87,7 @@ static void realloc_packet_buffer(struct hard_iface *hard_iface,
/* keep old buffer if kmalloc should fail */
if (new_buff) {
memcpy(new_buff, hard_iface->packet_buff,
- BATMAN_OGM_LEN);
+ BATMAN_OGM_HLEN);
kfree(hard_iface->packet_buff);
hard_iface->packet_buff = new_buff;
@@ -101,13 +101,13 @@ static int prepare_packet_buffer(struct bat_priv *bat_priv,
{
int new_len;
- new_len = BATMAN_OGM_LEN +
+ new_len = BATMAN_OGM_HLEN +
tt_len((uint8_t)atomic_read(&bat_priv->tt_local_changes));
/* if we have too many changes for one packet don't send any
* and wait for the tt table request which will be fragmented */
if (new_len > hard_iface->soft_iface->mtu)
- new_len = BATMAN_OGM_LEN;
+ new_len = BATMAN_OGM_HLEN;
realloc_packet_buffer(hard_iface, new_len);
@@ -117,14 +117,14 @@ static int prepare_packet_buffer(struct bat_priv *bat_priv,
atomic_set(&bat_priv->tt_ogm_append_cnt, TT_OGM_APPEND_MAX);
return tt_changes_fill_buffer(bat_priv,
- hard_iface->packet_buff + BATMAN_OGM_LEN,
- hard_iface->packet_len - BATMAN_OGM_LEN);
+ hard_iface->packet_buff + BATMAN_OGM_HLEN,
+ hard_iface->packet_len - BATMAN_OGM_HLEN);
}
static int reset_packet_buffer(struct bat_priv *bat_priv,
struct hard_iface *hard_iface)
{
- realloc_packet_buffer(hard_iface, BATMAN_OGM_LEN);
+ realloc_packet_buffer(hard_iface, BATMAN_OGM_HLEN);
return 0;
}
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [B.A.T.M.A.N.] [PATCH 8/8] batman-adv: mark existing ogm variables as batman iv
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 2/8] batman-adv: refactoring API: find generalized name for bat_ogm_init callback Marek Lindner
` (4 preceding siblings ...)
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 7/8] batman-adv: rename BATMAN_OGM_LEN to BATMAN_OGM_HLEN Marek Lindner
@ 2012-02-07 9:20 ` Marek Lindner
2012-02-12 15:11 ` Marek Lindner
2012-02-12 14:58 ` [B.A.T.M.A.N.] [PATCH 2/8] batman-adv: refactoring API: find generalized name for bat_ogm_init callback Marek Lindner
6 siblings, 1 reply; 24+ messages in thread
From: Marek Lindner @ 2012-02-07 9:20 UTC (permalink / raw)
To: b.a.t.m.a.n; +Cc: Marek Lindner
The coming protocol changes also will have a part called "OGM". That
makes it necessary to introduce a distinction in the code base.
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
bat_iv_ogm.c | 4 ++--
hard-interface.c | 2 +-
packet.h | 4 ++--
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
index da93525..caa67e4 100644
--- a/bat_iv_ogm.c
+++ b/bat_iv_ogm.c
@@ -47,7 +47,7 @@ static int bat_iv_ogm_iface_enable(struct hard_iface *hard_iface)
goto out;
batman_ogm_packet = (struct batman_ogm_packet *)hard_iface->packet_buff;
- batman_ogm_packet->header.packet_type = BAT_OGM;
+ batman_ogm_packet->header.packet_type = BAT_IV_OGM;
batman_ogm_packet->header.version = COMPAT_VERSION;
batman_ogm_packet->header.ttl = 2;
batman_ogm_packet->flags = NO_FLAGS;
@@ -942,7 +942,7 @@ static void bat_iv_ogm_process(const struct ethhdr *ethhdr,
* packet in an aggregation. Here we expect that the padding
* is always zero (or not 0x01)
*/
- if (batman_ogm_packet->header.packet_type != BAT_OGM)
+ if (batman_ogm_packet->header.packet_type != BAT_IV_OGM)
return;
/* could be changed by schedule_own_packet() */
diff --git a/hard-interface.c b/hard-interface.c
index 2a435ec..30b1c07 100644
--- a/hard-interface.c
+++ b/hard-interface.c
@@ -617,7 +617,7 @@ static int batman_skb_recv(struct sk_buff *skb, struct net_device *dev,
switch (batman_ogm_packet->header.packet_type) {
/* batman originator packet */
- case BAT_OGM:
+ case BAT_IV_OGM:
ret = recv_bat_ogm_packet(skb, hard_iface);
break;
diff --git a/packet.h b/packet.h
index ed16ec3..7971a69 100644
--- a/packet.h
+++ b/packet.h
@@ -25,7 +25,7 @@
#define ETH_P_BATMAN 0x4305 /* unofficial/not registered Ethertype */
enum bat_packettype {
- BAT_OGM = 0x01,
+ BAT_IV_OGM = 0x01,
BAT_ICMP = 0x02,
BAT_UNICAST = 0x03,
BAT_BCAST = 0x04,
@@ -38,7 +38,7 @@ enum bat_packettype {
/* this file is included by batctl which needs these defines */
#define COMPAT_VERSION 14
-enum batman_flags {
+enum batman_iv_flags {
PRIMARIES_FIRST_HOP = 1 << 4,
VIS_SERVER = 1 << 5,
DIRECTLINK = 1 << 6
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [B.A.T.M.A.N.] [PATCH 2/8] batman-adv: refactoring API: find generalized name for bat_ogm_init callback
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 2/8] batman-adv: refactoring API: find generalized name for bat_ogm_init callback Marek Lindner
` (5 preceding siblings ...)
2012-02-07 9:20 ` [B.A.T.M.A.N.] [PATCH 8/8] batman-adv: mark existing ogm variables as batman iv Marek Lindner
@ 2012-02-12 14:58 ` Marek Lindner
6 siblings, 0 replies; 24+ messages in thread
From: Marek Lindner @ 2012-02-12 14:58 UTC (permalink / raw)
To: The list for a Better Approach To Mobile Ad-hoc Networking
On Tuesday, February 07, 2012 17:20:45 Marek Lindner wrote:
> Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
> ---
> bat_iv_ogm.c | 4 ++--
> hard-interface.c | 2 +-
> main.c | 2 +-
> types.h | 4 ++--
> 4 files changed, 6 insertions(+), 6 deletions(-)
Applied in revision 7deba89.
Regards,
Marek
^ permalink raw reply [flat|nested] 24+ messages in thread