[1/2] batman-adv: print OGM seq numbers as unsigned long

Message ID 1330267182-15607-1-git-send-email-ordex@autistici.org (mailing list archive)
State Accepted, archived
Commit 14b1316b6944b0d552e3c541d0d48d432d3be4b0
Headers

Commit Message

Antonio Quartulli Feb. 26, 2012, 2:39 p.m. UTC
  OGM sequence numbers are declared as uint32_t and so they have to printed
using %u instead of %d in order to avoid wrong representations.

Signed-off-by: Antonio Quartulli <ordex@autistici.org>
---
 bat_iv_ogm.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
  

Comments

Martin Hundebøll Feb. 26, 2012, 4:49 p.m. UTC | #1
On 02/26/2012 03:39 PM, Antonio Quartulli wrote:
> When we receive an OGM from from a node for the first time, the last_real_seqno
> field of the orig_node structure has not been initialised yet. The value of this
> field is used to compute the current ogm-seqno window and therefore the
> protection mechanism will probably drop the packet due to an out-of-window error.
> To avoid this situation this patch adds a check to skip the window protection
> mechanism if no neighbour nodes have already been added. When the first
> neighbour node is added, the last_real_seqno field is initialised too.
>
> Reported-by: Marek Lindner<lindner_marek@yahoo.de>
> Signed-off-by: Antonio Quartulli<ordex@autistici.org>
> ---
>   bat_iv_ogm.c |    3 ++-
>   1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
> index c42e030..d9195b3 100644
> --- a/bat_iv_ogm.c
> +++ b/bat_iv_ogm.c
> @@ -869,7 +869,8 @@ static int bat_iv_ogm_update_seqnos(const struct ethhdr *ethhdr,
>   	seq_diff = batman_ogm_packet->seqno - orig_node->last_real_seqno;
>
>   	/* signalize caller that the packet is to be dropped. */
> -	if (window_protected(bat_priv, seq_diff,
> +	if (!hlist_empty(&orig_node->neigh_list)&&
> +	    window_protected(bat_priv, seq_diff,
>   			&orig_node->batman_seqno_reset))
>   		goto out;
>


Tested this and originators now appear within 3 seconds after being added to the mesh network. Good work, Antonio and Marek!
  
Marek Lindner Feb. 27, 2012, 11:02 a.m. UTC | #2
On Sunday, February 26, 2012 22:39:41 Antonio Quartulli wrote:
> OGM sequence numbers are declared as uint32_t and so they have to printed
> using %u instead of %d in order to avoid wrong representations.

Applied in revision 14b1316.

Thanks,
Marek
  

Patch

diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
index 42c121d..c42e030 100644
--- a/bat_iv_ogm.c
+++ b/bat_iv_ogm.c
@@ -152,7 +152,7 @@  static void bat_iv_ogm_send_to_if(struct forw_packet *forw_packet,
 							    "Sending own" :
 							    "Forwarding"));
 		bat_dbg(DBG_BATMAN, bat_priv,
-			"%s %spacket (originator %pM, seqno %d, TQ %d, TTL %d,"
+			"%s %spacket (originator %pM, seqno %u, TQ %d, TTL %d,"
 			" IDF %s, ttvn %d) on interface %s [%pM]\n",
 			fwd_str, (packet_num > 0 ? "aggregated " : ""),
 			batman_ogm_packet->orig,
@@ -213,7 +213,7 @@  static void bat_iv_ogm_emit(struct forw_packet *forw_packet)
 
 		/* FIXME: what about aggregated packets ? */
 		bat_dbg(DBG_BATMAN, bat_priv,
-			"%s packet (originator %pM, seqno %d, TTL %d) "
+			"%s packet (originator %pM, seqno %u, TTL %d) "
 			"on interface %s [%pM]\n",
 			(forw_packet->own ? "Sending own" : "Forwarding"),
 			batman_ogm_packet->orig,
@@ -900,7 +900,7 @@  static int bat_iv_ogm_update_seqnos(const struct ethhdr *ethhdr,
 
 	if (need_update) {
 		bat_dbg(DBG_BATMAN, bat_priv,
-			"updating last_seqno: old %d, new %d\n",
+			"updating last_seqno: old %u, new %u\n",
 			orig_node->last_real_seqno, batman_ogm_packet->seqno);
 		orig_node->last_real_seqno = batman_ogm_packet->seqno;
 	}
@@ -954,7 +954,7 @@  static void bat_iv_ogm_process(const struct ethhdr *ethhdr,
 
 	bat_dbg(DBG_BATMAN, bat_priv,
 		"Received BATMAN packet via NB: %pM, IF: %s [%pM] "
-		"(from OG: %pM, via prev OG: %pM, seqno %d, ttvn %u, "
+		"(from OG: %pM, via prev OG: %pM, seqno %u, ttvn %u, "
 		"crc %u, changes %u, td %d, TTL %d, V %d, IDF %d)\n",
 		ethhdr->h_source, if_incoming->net_dev->name,
 		if_incoming->net_dev->dev_addr, batman_ogm_packet->orig,