diff options
| author | David S. Miller <davem@davemloft.net> | 2011-07-05 22:45:12 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2011-07-05 22:45:12 -0400 |
| commit | f8bae99ee5030625a4e7f0d87784191882292f0e (patch) | |
| tree | 991cd2aff1ec1b74d1e3c658eb2ea09b0f93e5bd | |
| parent | 994635a137f637466d36a7c6272dae014a46a11c (diff) | |
| parent | 44c4349a2a117b22a5c4087f2ac9faf10c575e17 (diff) | |
Merge branch 'batman-adv/next' of git://git.open-mesh.org/linux-merge
| -rw-r--r-- | net/batman-adv/aggregation.c | 25 | ||||
| -rw-r--r-- | net/batman-adv/gateway_client.c | 5 | ||||
| -rw-r--r-- | net/batman-adv/main.c | 9 | ||||
| -rw-r--r-- | net/batman-adv/main.h | 11 | ||||
| -rw-r--r-- | net/batman-adv/originator.c | 5 | ||||
| -rw-r--r-- | net/batman-adv/packet.h | 11 | ||||
| -rw-r--r-- | net/batman-adv/routing.c | 2 | ||||
| -rw-r--r-- | net/batman-adv/send.c | 21 | ||||
| -rw-r--r-- | net/batman-adv/send.h | 2 | ||||
| -rw-r--r-- | net/batman-adv/soft-interface.c | 2 | ||||
| -rw-r--r-- | net/batman-adv/translation-table.c | 30 | ||||
| -rw-r--r-- | net/batman-adv/translation-table.h | 3 | ||||
| -rw-r--r-- | net/batman-adv/types.h | 4 |
13 files changed, 71 insertions, 59 deletions
diff --git a/net/batman-adv/aggregation.c b/net/batman-adv/aggregation.c index c583e049f421..69467fe71ff2 100644 --- a/net/batman-adv/aggregation.c +++ b/net/batman-adv/aggregation.c | |||
| @@ -28,6 +28,7 @@ | |||
| 28 | 28 | ||
| 29 | /* return true if new_packet can be aggregated with forw_packet */ | 29 | /* return true if new_packet can be aggregated with forw_packet */ |
| 30 | static bool can_aggregate_with(const struct batman_packet *new_batman_packet, | 30 | static bool can_aggregate_with(const struct batman_packet *new_batman_packet, |
| 31 | struct bat_priv *bat_priv, | ||
| 31 | int packet_len, | 32 | int packet_len, |
| 32 | unsigned long send_time, | 33 | unsigned long send_time, |
| 33 | bool directlink, | 34 | bool directlink, |
| @@ -37,6 +38,8 @@ static bool can_aggregate_with(const struct batman_packet *new_batman_packet, | |||
| 37 | struct batman_packet *batman_packet = | 38 | struct batman_packet *batman_packet = |
| 38 | (struct batman_packet *)forw_packet->skb->data; | 39 | (struct batman_packet *)forw_packet->skb->data; |
| 39 | int aggregated_bytes = forw_packet->packet_len + packet_len; | 40 | int aggregated_bytes = forw_packet->packet_len + packet_len; |
| 41 | struct hard_iface *primary_if = NULL; | ||
| 42 | bool res = false; | ||
| 40 | 43 | ||
| 41 | /** | 44 | /** |
| 42 | * we can aggregate the current packet to this aggregated packet | 45 | * we can aggregate the current packet to this aggregated packet |
| @@ -61,6 +64,10 @@ static bool can_aggregate_with(const struct batman_packet *new_batman_packet, | |||
| 61 | * packet | 64 | * packet |
| 62 | */ | 65 | */ |
| 63 | 66 | ||
| 67 | primary_if = primary_if_get_selected(bat_priv); | ||
| 68 | if (!primary_if) | ||
| 69 | goto out; | ||
| 70 | |||
| 64 | /* packets without direct link flag and high TTL | 71 | /* packets without direct link flag and high TTL |
| 65 | * are flooded through the net */ | 72 | * are flooded through the net */ |
| 66 | if ((!directlink) && | 73 | if ((!directlink) && |
| @@ -70,8 +77,10 @@ static bool can_aggregate_with(const struct batman_packet *new_batman_packet, | |||
| 70 | /* own packets originating non-primary | 77 | /* own packets originating non-primary |
| 71 | * interfaces leave only that interface */ | 78 | * interfaces leave only that interface */ |
| 72 | ((!forw_packet->own) || | 79 | ((!forw_packet->own) || |
| 73 | (forw_packet->if_incoming->if_num == 0))) | 80 | (forw_packet->if_incoming == primary_if))) { |
| 74 | return true; | 81 | res = true; |
| 82 | goto out; | ||
| 83 | } | ||
| 75 | 84 | ||
| 76 | /* if the incoming packet is sent via this one | 85 | /* if the incoming packet is sent via this one |
| 77 | * interface only - we still can aggregate */ | 86 | * interface only - we still can aggregate */ |
| @@ -84,11 +93,16 @@ static bool can_aggregate_with(const struct batman_packet *new_batman_packet, | |||
| 84 | * (= secondary interface packets in general) */ | 93 | * (= secondary interface packets in general) */ |
| 85 | (batman_packet->flags & DIRECTLINK || | 94 | (batman_packet->flags & DIRECTLINK || |
| 86 | (forw_packet->own && | 95 | (forw_packet->own && |
| 87 | forw_packet->if_incoming->if_num != 0))) | 96 | forw_packet->if_incoming != primary_if))) { |
| 88 | return true; | 97 | res = true; |
| 98 | goto out; | ||
| 99 | } | ||
| 89 | } | 100 | } |
| 90 | 101 | ||
| 91 | return false; | 102 | out: |
| 103 | if (primary_if) | ||
| 104 | hardif_free_ref(primary_if); | ||
| 105 | return res; | ||
| 92 | } | 106 | } |
| 93 | 107 | ||
| 94 | /* create a new aggregated packet and add this packet to it */ | 108 | /* create a new aggregated packet and add this packet to it */ |
| @@ -210,6 +224,7 @@ void add_bat_packet_to_list(struct bat_priv *bat_priv, | |||
| 210 | hlist_for_each_entry(forw_packet_pos, tmp_node, | 224 | hlist_for_each_entry(forw_packet_pos, tmp_node, |
| 211 | &bat_priv->forw_bat_list, list) { | 225 | &bat_priv->forw_bat_list, list) { |
| 212 | if (can_aggregate_with(batman_packet, | 226 | if (can_aggregate_with(batman_packet, |
| 227 | bat_priv, | ||
| 213 | packet_len, | 228 | packet_len, |
| 214 | send_time, | 229 | send_time, |
| 215 | direct_link, | 230 | direct_link, |
diff --git a/net/batman-adv/gateway_client.c b/net/batman-adv/gateway_client.c index 8b25b52a4764..056180ef9e1a 100644 --- a/net/batman-adv/gateway_client.c +++ b/net/batman-adv/gateway_client.c | |||
| @@ -487,10 +487,9 @@ int gw_client_seq_print_text(struct seq_file *seq, void *offset) | |||
| 487 | } | 487 | } |
| 488 | 488 | ||
| 489 | seq_printf(seq, " %-12s (%s/%i) %17s [%10s]: gw_class ... " | 489 | seq_printf(seq, " %-12s (%s/%i) %17s [%10s]: gw_class ... " |
| 490 | "[B.A.T.M.A.N. adv %s%s, MainIF/MAC: %s/%pM (%s)]\n", | 490 | "[B.A.T.M.A.N. adv %s, MainIF/MAC: %s/%pM (%s)]\n", |
| 491 | "Gateway", "#", TQ_MAX_VALUE, "Nexthop", | 491 | "Gateway", "#", TQ_MAX_VALUE, "Nexthop", |
| 492 | "outgoingIF", SOURCE_VERSION, REVISION_VERSION_STR, | 492 | "outgoingIF", SOURCE_VERSION, primary_if->net_dev->name, |
| 493 | primary_if->net_dev->name, | ||
| 494 | primary_if->net_dev->dev_addr, net_dev->name); | 493 | primary_if->net_dev->dev_addr, net_dev->name); |
| 495 | 494 | ||
| 496 | rcu_read_lock(); | 495 | rcu_read_lock(); |
diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c index e367e690a9f6..b0f9068ade57 100644 --- a/net/batman-adv/main.c +++ b/net/batman-adv/main.c | |||
| @@ -58,9 +58,8 @@ static int __init batman_init(void) | |||
| 58 | 58 | ||
| 59 | register_netdevice_notifier(&hard_if_notifier); | 59 | register_netdevice_notifier(&hard_if_notifier); |
| 60 | 60 | ||
| 61 | pr_info("B.A.T.M.A.N. advanced %s%s (compatibility version %i) " | 61 | pr_info("B.A.T.M.A.N. advanced %s (compatibility version %i) " |
| 62 | "loaded\n", SOURCE_VERSION, REVISION_VERSION_STR, | 62 | "loaded\n", SOURCE_VERSION, COMPAT_VERSION); |
| 63 | COMPAT_VERSION); | ||
| 64 | 63 | ||
| 65 | return 0; | 64 | return 0; |
| 66 | } | 65 | } |
| @@ -184,8 +183,4 @@ MODULE_LICENSE("GPL"); | |||
| 184 | MODULE_AUTHOR(DRIVER_AUTHOR); | 183 | MODULE_AUTHOR(DRIVER_AUTHOR); |
| 185 | MODULE_DESCRIPTION(DRIVER_DESC); | 184 | MODULE_DESCRIPTION(DRIVER_DESC); |
| 186 | MODULE_SUPPORTED_DEVICE(DRIVER_DEVICE); | 185 | MODULE_SUPPORTED_DEVICE(DRIVER_DEVICE); |
| 187 | #ifdef REVISION_VERSION | ||
| 188 | MODULE_VERSION(SOURCE_VERSION "-" REVISION_VERSION); | ||
| 189 | #else | ||
| 190 | MODULE_VERSION(SOURCE_VERSION); | 186 | MODULE_VERSION(SOURCE_VERSION); |
| 191 | #endif | ||
diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h index 4f293b594475..a6df61a6933b 100644 --- a/net/batman-adv/main.h +++ b/net/batman-adv/main.h | |||
| @@ -27,8 +27,9 @@ | |||
| 27 | #define DRIVER_DESC "B.A.T.M.A.N. advanced" | 27 | #define DRIVER_DESC "B.A.T.M.A.N. advanced" |
| 28 | #define DRIVER_DEVICE "batman-adv" | 28 | #define DRIVER_DEVICE "batman-adv" |
| 29 | 29 | ||
| 30 | #define SOURCE_VERSION "next" | 30 | #ifndef SOURCE_VERSION |
| 31 | 31 | #define SOURCE_VERSION "2011.3.0" | |
| 32 | #endif | ||
| 32 | 33 | ||
| 33 | /* B.A.T.M.A.N. parameters */ | 34 | /* B.A.T.M.A.N. parameters */ |
| 34 | 35 | ||
| @@ -144,12 +145,6 @@ enum dbg_level { | |||
| 144 | #include <linux/seq_file.h> | 145 | #include <linux/seq_file.h> |
| 145 | #include "types.h" | 146 | #include "types.h" |
| 146 | 147 | ||
| 147 | #ifndef REVISION_VERSION | ||
| 148 | #define REVISION_VERSION_STR "" | ||
| 149 | #else | ||
| 150 | #define REVISION_VERSION_STR " "REVISION_VERSION | ||
| 151 | #endif | ||
| 152 | |||
| 153 | extern struct list_head hardif_list; | 148 | extern struct list_head hardif_list; |
| 154 | 149 | ||
| 155 | extern unsigned char broadcast_addr[]; | 150 | extern unsigned char broadcast_addr[]; |
diff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c index 338b3c597e4a..4cc94d4ba890 100644 --- a/net/batman-adv/originator.c +++ b/net/batman-adv/originator.c | |||
| @@ -430,9 +430,8 @@ int orig_seq_print_text(struct seq_file *seq, void *offset) | |||
| 430 | goto out; | 430 | goto out; |
| 431 | } | 431 | } |
| 432 | 432 | ||
| 433 | seq_printf(seq, "[B.A.T.M.A.N. adv %s%s, MainIF/MAC: %s/%pM (%s)]\n", | 433 | seq_printf(seq, "[B.A.T.M.A.N. adv %s, MainIF/MAC: %s/%pM (%s)]\n", |
| 434 | SOURCE_VERSION, REVISION_VERSION_STR, | 434 | SOURCE_VERSION, primary_if->net_dev->name, |
| 435 | primary_if->net_dev->name, | ||
| 436 | primary_if->net_dev->dev_addr, net_dev->name); | 435 | |
