linux integration; annotated tag, v2.6.36-rc6, created. v2.6.36-rc6
by postmaster@open-mesh.org
The annotated tag, v2.6.36-rc6 has been created
at 93590f17a2e3ba2aed400c7608263b97da62b6d4 (tag)
tagging 899611ee7d373e5eeda08e9a8632684e1ebbbf00 (commit)
replaces v2.6.36-rc5
tagged by Linus Torvalds
on Tue Sep 28 18:01:40 2010 -0700
- Shortlog ------------------------------------------------------------
Linux 2.6.36-rc6
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
iEYEABECAAYFAkyij/4ACgkQF3YsRnbiHLtohwCeLKb8kCjNoar8hWHjVvmJbHsR
pWkAn3wt2Bo8MXirOYmUq02M0IC0F43b
=voMb
-----END PGP SIGNATURE-----
-----------------------------------------------------------------------
--
linux integration
12 years, 4 months
batman-adv; branch, master, updated. v2010.1.0-180-g0c5ee66
by postmaster@open-mesh.org
The following commit has been merged in the master branch:
commit 498a2a4fd19e7cf77e29e91747a0af2daf936751
Author: Andreas Langer <an.langer at gmx.de>
Date: Sat Sep 25 10:06:52 2010 +0000
batman-adv: fragment forwarded packets
If a packet is too big to be forwarded over an interface it will be
fragmented on-the-fly (if fragmentation is enabled).
Signed-off-by: Andreas Langer <an.langer at gmx.de>
diff --git a/routing.c b/routing.c
index e566a32..731920d 100644
--- a/routing.c
+++ b/routing.c
@@ -1181,6 +1181,12 @@ static int route_unicast_packet(struct sk_buff *skb,
unicast_packet = (struct unicast_packet *)skb->data;
+ if (unicast_packet->packet_type == BAT_UNICAST &&
+ atomic_read(&bat_priv->frag_enabled) &&
+ skb->len > batman_if->net_dev->mtu)
+ return frag_send_skb(skb, bat_priv, batman_if,
+ dstaddr);
+
/* decrement ttl */
unicast_packet->ttl--;
diff --git a/unicast.h b/unicast.h
index 5908b01..e32b786 100644
--- a/unicast.h
+++ b/unicast.h
@@ -29,5 +29,7 @@ int frag_reassemble_skb(struct sk_buff *skb, struct bat_priv *bat_priv,
struct sk_buff **new_skb);
void frag_list_free(struct list_head *head);
int unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv);
+int frag_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv,
+ struct batman_if *batman_if, uint8_t dstaddr[]);
#endif /* _NET_BATMAN_ADV_UNICAST_H_ */
--
batman-adv
12 years, 4 months
batman-adv; branch, master, updated. v2010.1.0-180-g0c5ee66
by postmaster@open-mesh.org
The following commit has been merged in the master branch:
commit 0c5ee66dcfff8a7eec0530f744faab8de772676f
Author: Andreas Langer <an.langer at gmx.de>
Date: Sat Sep 25 10:06:54 2010 +0000
batman-adv: reassemble fragmented skb if mtu allows it
Signed-off-by: Andreas Langer <an.langer at gmx.de>
diff --git a/routing.c b/routing.c
index 731920d..37ad3c4 100644
--- a/routing.c
+++ b/routing.c
@@ -1144,6 +1144,8 @@ static int route_unicast_packet(struct sk_buff *skb,
unsigned long flags;
struct unicast_packet *unicast_packet;
struct ethhdr *ethhdr = (struct ethhdr *)skb_mac_header(skb);
+ int ret;
+ struct sk_buff *new_skb;
unicast_packet = (struct unicast_packet *)skb->data;
@@ -1187,6 +1189,22 @@ static int route_unicast_packet(struct sk_buff *skb,
return frag_send_skb(skb, bat_priv, batman_if,
dstaddr);
+ if (unicast_packet->packet_type == BAT_UNICAST_FRAG &&
+ 2 * skb->len - hdr_size <= batman_if->net_dev->mtu) {
+
+ ret = frag_reassemble_skb(skb, bat_priv, &new_skb);
+
+ if (ret == NET_RX_DROP)
+ return NET_RX_DROP;
+
+ /* packet was buffered for late merge */
+ if (!new_skb)
+ return NET_RX_SUCCESS;
+
+ skb = new_skb;
+ unicast_packet = (struct unicast_packet *) skb->data;
+ }
+
/* decrement ttl */
unicast_packet->ttl--;
@@ -1240,7 +1258,8 @@ int recv_ucast_frag_packet(struct sk_buff *skb, struct batman_if *recv_if)
if (!new_skb)
return NET_RX_SUCCESS;
- interface_rx(recv_if->soft_iface, new_skb, hdr_size);
+ interface_rx(recv_if->soft_iface, new_skb,
+ sizeof(struct unicast_packet));
return NET_RX_SUCCESS;
}
diff --git a/unicast.c b/unicast.c
index 25284d8..bca69f6 100644
--- a/unicast.c
+++ b/unicast.c
@@ -37,6 +37,9 @@ static struct sk_buff *frag_merge_packet(struct list_head *head,
struct unicast_frag_packet *up =
(struct unicast_frag_packet *)skb->data;
struct sk_buff *tmp_skb;
+ struct unicast_packet *unicast_packet;
+ int hdr_len = sizeof(struct unicast_packet),
+ uni_diff = sizeof(struct unicast_frag_packet) - hdr_len;
/* set skb to the first part and tmp_skb to the second part */
if (up->flags & UNI_FRAG_HEAD) {
@@ -60,6 +63,11 @@ static struct sk_buff *frag_merge_packet(struct list_head *head,
memcpy(skb_put(skb, tmp_skb->len), tmp_skb->data, tmp_skb->len);
kfree_skb(tmp_skb);
+
+ memmove(skb->data + uni_diff, skb->data, hdr_len);
+ unicast_packet = (struct unicast_packet *) skb_pull(skb, uni_diff);
+ unicast_packet->packet_type = BAT_UNICAST;
+
return skb;
}
--
batman-adv
12 years, 4 months
batman-adv; branch, master, updated. v2010.1.0-180-g0c5ee66
by postmaster@open-mesh.org
The following commit has been merged in the master branch:
commit a10b9aa90937448096b509504afe4feed289c25a
Author: Andreas Langer <an.langer at gmx.de>
Date: Sat Sep 25 10:06:47 2010 +0000
batman-adv: restructure fragmentation to handle batman unicast packets
The unicast_frag_send_skb() function expected 'raw' packets (without any
batman-adv header) to fragment them. This needs to be changed, so that
this function is able to fragment packets that already traveled inside the
mesh but need to be fragmented now.
Signed-off-by: Andreas Langer <an.langer at gmx.de>
diff --git a/unicast.c b/unicast.c
index ee85c7c..750f10e 100644
--- a/unicast.c
+++ b/unicast.c
@@ -153,55 +153,58 @@ void frag_list_free(struct list_head *head)
return;
}
-static int unicast_send_frag_skb(struct sk_buff *skb, struct bat_priv *bat_priv,
- struct batman_if *batman_if, uint8_t dstaddr[],
- struct orig_node *orig_node)
+int frag_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv,
+ struct batman_if *batman_if, uint8_t dstaddr[])
{
- struct unicast_frag_packet *ucast_frag1, *ucast_frag2;
- int hdr_len = sizeof(struct unicast_frag_packet);
+ struct unicast_packet tmp_uc, *unicast_packet;
struct sk_buff *frag_skb;
+ struct unicast_frag_packet *frag1, *frag2;
+ int uc_hdr_len = sizeof(struct unicast_packet);
+ int ucf_hdr_len = sizeof(struct unicast_frag_packet);
int data_len = skb->len;
if (!bat_priv->primary_if)
goto dropped;
- frag_skb = dev_alloc_skb(data_len - (data_len / 2) + hdr_len);
+ unicast_packet = (struct unicast_packet *) skb->data;
+
+ memcpy(&tmp_uc, unicast_packet, uc_hdr_len);
+ frag_skb = dev_alloc_skb(data_len - (data_len / 2) + ucf_hdr_len);
skb_split(skb, frag_skb, data_len / 2);
- if (my_skb_head_push(frag_skb, hdr_len) < 0 ||
- my_skb_head_push(skb, hdr_len) < 0)
+ if (my_skb_head_push(skb, ucf_hdr_len - uc_hdr_len) < 0 ||
+ my_skb_head_push(frag_skb, ucf_hdr_len) < 0)
goto drop_frag;
- ucast_frag1 = (struct unicast_frag_packet *)skb->data;
- ucast_frag2 = (struct unicast_frag_packet *)frag_skb->data;
+ frag1 = (struct unicast_frag_packet *)skb->data;
+ frag2 = (struct unicast_frag_packet *)frag_skb->data;
- ucast_frag1->version = COMPAT_VERSION;
- ucast_frag1->packet_type = BAT_UNICAST_FRAG;
- ucast_frag1->ttl = TTL;
- memcpy(ucast_frag1->orig,
- bat_priv->primary_if->net_dev->dev_addr, ETH_ALEN);
- memcpy(ucast_frag1->dest, orig_node->orig, ETH_ALEN);
+ memcpy(frag1, &tmp_uc, sizeof(struct unicast_packet));
- memcpy(ucast_frag2, ucast_frag1, sizeof(struct unicast_frag_packet));
+ frag1->ttl--;
+ frag1->version = COMPAT_VERSION;
+ frag1->packet_type = BAT_UNICAST_FRAG;
- ucast_frag1->flags |= UNI_FRAG_HEAD;
- ucast_frag2->flags &= ~UNI_FRAG_HEAD;
+ memcpy(frag1->orig, bat_priv->primary_if->net_dev->dev_addr, ETH_ALEN);
+ memcpy(frag2, frag1, sizeof(struct unicast_frag_packet));
- ucast_frag1->seqno = htons((uint16_t)atomic_inc_return(
- &batman_if->frag_seqno));
+ frag1->flags |= UNI_FRAG_HEAD;
+ frag2->flags &= ~UNI_FRAG_HEAD;
- ucast_frag2->seqno = htons((uint16_t)atomic_inc_return(
- &batman_if->frag_seqno));
+ frag1->seqno = htons((uint16_t)atomic_inc_return(
+ &batman_if->frag_seqno));
+ frag2->seqno = htons((uint16_t)atomic_inc_return(
+ &batman_if->frag_seqno));
send_skb_packet(skb, batman_if, dstaddr);
send_skb_packet(frag_skb, batman_if, dstaddr);
- return 0;
+ return NET_RX_SUCCESS;
drop_frag:
kfree_skb(frag_skb);
dropped:
kfree_skb(skb);
- return 1;
+ return NET_RX_DROP;
}
int unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv)
@@ -244,11 +247,6 @@ int unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv)
if (batman_if->if_status != IF_ACTIVE)
goto dropped;
- if (atomic_read(&bat_priv->frag_enabled) &&
- data_len + sizeof(struct unicast_packet) > batman_if->net_dev->mtu)
- return unicast_send_frag_skb(skb, bat_priv, batman_if,
- dstaddr, orig_node);
-
if (my_skb_head_push(skb, sizeof(struct unicast_packet)) < 0)
goto dropped;
@@ -262,6 +260,14 @@ int unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv)
/* copy the destination for faster routing */
memcpy(unicast_packet->dest, orig_node->orig, ETH_ALEN);
+ if (atomic_read(&bat_priv->frag_enabled) &&
+ data_len + sizeof(struct unicast_packet) >
+ batman_if->net_dev->mtu) {
+ /* send frag skb decreases ttl */
+ unicast_packet->ttl++;
+ return frag_send_skb(skb, bat_priv, batman_if,
+ dstaddr);
+ }
send_skb_packet(skb, batman_if, dstaddr);
return 0;
--
batman-adv
12 years, 4 months
batman-adv; branch, master, updated. v2010.1.0-180-g0c5ee66
by postmaster@open-mesh.org
The following commit has been merged in the master branch:
commit a5e2ce07aa72a49c1356289b41637fa924a4c253
Author: Andreas Langer <an.langer at gmx.de>
Date: Sat Sep 25 10:06:49 2010 +0000
batman-adv: add frag_ prefix to all fragmentation related functions
Signed-off-by: Andreas Langer <an.langer at gmx.de>
diff --git a/routing.c b/routing.c
index 1781b7e..03aeb4a 100644
--- a/routing.c
+++ b/routing.c
@@ -1247,24 +1247,24 @@ int recv_ucast_frag_packet(struct sk_buff *skb, struct batman_if *recv_if)
orig_node->last_frag_packet = jiffies;
if (list_empty(&orig_node->frag_list) &&
- create_frag_buffer(&orig_node->frag_list)) {
+ frag_create_buffer(&orig_node->frag_list)) {
spin_unlock_irqrestore(&bat_priv->orig_hash_lock,
flags);
return NET_RX_DROP;
}
tmp_frag_entry =
- search_frag_packet(&orig_node->frag_list,
+ frag_search_packet(&orig_node->frag_list,
unicast_packet);
if (!tmp_frag_entry) {
- create_frag_entry(&orig_node->frag_list, skb);
+ frag_create_entry(&orig_node->frag_list, skb);
spin_unlock_irqrestore(&bat_priv->orig_hash_lock,
flags);
return NET_RX_SUCCESS;
}
- skb = merge_frag_packet(&orig_node->frag_list,
+ skb = frag_merge_packet(&orig_node->frag_list,
tmp_frag_entry, skb);
spin_unlock_irqrestore(&bat_priv->orig_hash_lock, flags);
if (!skb)
diff --git a/unicast.c b/unicast.c
index 750f10e..23a9373 100644
--- a/unicast.c
+++ b/unicast.c
@@ -30,9 +30,9 @@
#include "hard-interface.h"
-struct sk_buff *merge_frag_packet(struct list_head *head,
- struct frag_packet_list_entry *tfp,
- struct sk_buff *skb)
+static struct sk_buff *frag_merge_packet(struct list_head *head,
+ struct frag_packet_list_entry *tfp,
+ struct sk_buff *skb)
{
struct unicast_frag_packet *up =
(struct unicast_frag_packet *)skb->data;
@@ -63,7 +63,7 @@ struct sk_buff *merge_frag_packet(struct list_head *head,
return skb;
}
-void create_frag_entry(struct list_head *head, struct sk_buff *skb)
+void frag_create_entry(struct list_head *head, struct sk_buff *skb)
{
struct frag_packet_list_entry *tfp;
struct unicast_frag_packet *up =
@@ -79,7 +79,7 @@ void create_frag_entry(struct list_head *head, struct sk_buff *skb)
return;
}
-int create_frag_buffer(struct list_head *head)
+int frag_create_buffer(struct list_head *head)
{
int i;
struct frag_packet_list_entry *tfp;
@@ -100,7 +100,7 @@ int create_frag_buffer(struct list_head *head)
return 0;
}
-struct frag_packet_list_entry *search_frag_packet(struct list_head *head,
+struct frag_packet_list_entry *frag_search_packet(struct list_head *head,
struct unicast_frag_packet *up)
{
struct frag_packet_list_entry *tfp;
diff --git a/unicast.h b/unicast.h
index 7973697..b50d61b 100644
--- a/unicast.h
+++ b/unicast.h
@@ -25,13 +25,13 @@
#define FRAG_TIMEOUT 10000 /* purge frag list entrys after time in ms */
#define FRAG_BUFFER_SIZE 6 /* number of list elements in buffer */
-struct sk_buff *merge_frag_packet(struct list_head *head,
+struct sk_buff *frag_merge_packet(struct list_head *head,
struct frag_packet_list_entry *tfp,
struct sk_buff *skb);
-void create_frag_entry(struct list_head *head, struct sk_buff *skb);
-int create_frag_buffer(struct list_head *head);
-struct frag_packet_list_entry *search_frag_packet(struct list_head *head,
+void frag_create_entry(struct list_head *head, struct sk_buff *skb);
+int frag_create_buffer(struct list_head *head);
+struct frag_packet_list_entry *frag_search_packet(struct list_head *head,
struct unicast_frag_packet *up);
void frag_list_free(struct list_head *head);
int unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv);
--
batman-adv
12 years, 4 months
batman-adv; branch, master, updated. v2010.1.0-180-g0c5ee66
by postmaster@open-mesh.org
The following commit has been merged in the master branch:
commit 3c4cf409df4b484eec810f9875914395cd158aa5
Author: Andreas Langer <an.langer at gmx.de>
Date: Sat Sep 25 10:06:50 2010 +0000
batman-adv: move skb reassembly of fragmented packets into dedicated function
Signed-off-by: Andreas Langer <an.langer at gmx.de>
diff --git a/routing.c b/routing.c
index 03aeb4a..6f8d13a 100644
--- a/routing.c
+++ b/routing.c
@@ -1220,10 +1220,9 @@ int recv_ucast_frag_packet(struct sk_buff *skb, struct batman_if *recv_if)
{
struct bat_priv *bat_priv = netdev_priv(recv_if->soft_iface);
struct unicast_frag_packet *unicast_packet;
- struct orig_node *orig_node;
- struct frag_packet_list_entry *tmp_frag_entry;
int hdr_size = sizeof(struct unicast_frag_packet);
- unsigned long flags;
+ struct sk_buff *new_skb = NULL;
+ int ret;
if (check_unicast_packet(skb, hdr_size) < 0)
return NET_RX_DROP;
@@ -1233,44 +1232,16 @@ int recv_ucast_frag_packet(struct sk_buff *skb, struct batman_if *recv_if)
/* packet for me */
if (is_my_mac(unicast_packet->dest)) {
- spin_lock_irqsave(&bat_priv->orig_hash_lock, flags);
- orig_node = ((struct orig_node *)
- hash_find(bat_priv->orig_hash, unicast_packet->orig));
-
- if (!orig_node) {
- pr_debug("couldn't find orig node for fragmentation\n");
- spin_unlock_irqrestore(&bat_priv->orig_hash_lock,
- flags);
- return NET_RX_DROP;
- }
-
- orig_node->last_frag_packet = jiffies;
+ ret = frag_reassemble_skb(skb, bat_priv, &new_skb);
- if (list_empty(&orig_node->frag_list) &&
- frag_create_buffer(&orig_node->frag_list)) {
- spin_unlock_irqrestore(&bat_priv->orig_hash_lock,
- flags);
+ if (ret == NET_RX_DROP)
return NET_RX_DROP;
- }
-
- tmp_frag_entry =
- frag_search_packet(&orig_node->frag_list,
- unicast_packet);
- if (!tmp_frag_entry) {
- frag_create_entry(&orig_node->frag_list, skb);
- spin_unlock_irqrestore(&bat_priv->orig_hash_lock,
- flags);
+ /* packet was buffered for late merge */
+ if (!new_skb)
return NET_RX_SUCCESS;
- }
- skb = frag_merge_packet(&orig_node->frag_list,
- tmp_frag_entry, skb);
- spin_unlock_irqrestore(&bat_priv->orig_hash_lock, flags);
- if (!skb)
- return NET_RX_DROP;
-
- interface_rx(recv_if->soft_iface, skb, hdr_size);
+ interface_rx(recv_if->soft_iface, new_skb, hdr_size);
return NET_RX_SUCCESS;
}
diff --git a/unicast.c b/unicast.c
index 23a9373..25284d8 100644
--- a/unicast.c
+++ b/unicast.c
@@ -63,7 +63,7 @@ static struct sk_buff *frag_merge_packet(struct list_head *head,
return skb;
}
-void frag_create_entry(struct list_head *head, struct sk_buff *skb)
+static void frag_create_entry(struct list_head *head, struct sk_buff *skb)
{
struct frag_packet_list_entry *tfp;
struct unicast_frag_packet *up =
@@ -79,7 +79,7 @@ void frag_create_entry(struct list_head *head, struct sk_buff *skb)
return;
}
-int frag_create_buffer(struct list_head *head)
+static int frag_create_buffer(struct list_head *head)
{
int i;
struct frag_packet_list_entry *tfp;
@@ -100,7 +100,7 @@ int frag_create_buffer(struct list_head *head)
return 0;
}
-struct frag_packet_list_entry *frag_search_packet(struct list_head *head,
+static struct frag_packet_list_entry *frag_search_packet(struct list_head *head,
struct unicast_frag_packet *up)
{
struct frag_packet_list_entry *tfp;
@@ -153,6 +153,60 @@ void frag_list_free(struct list_head *head)
return;
}
+/* frag_reassemble_skb():
+ * returns NET_RX_DROP if the operation failed - skb is left intact
+ * returns NET_RX_SUCCESS if the fragment was buffered (skb_new will be NULL)
+ * or the skb could be reassembled (skb_new will point to the new packet and
+ * skb was freed)
+ */
+int frag_reassemble_skb(struct sk_buff *skb, struct bat_priv *bat_priv,
+ struct sk_buff **new_skb)
+{
+ unsigned long flags;
+ struct orig_node *orig_node;
+ struct frag_packet_list_entry *tmp_frag_entry;
+ int ret = NET_RX_DROP;
+ struct unicast_frag_packet *unicast_packet =
+ (struct unicast_frag_packet *)skb->data;
+
+ *new_skb = NULL;
+ spin_lock_irqsave(&bat_priv->orig_hash_lock, flags);
+ orig_node = ((struct orig_node *)
+ hash_find(bat_priv->orig_hash, unicast_packet->orig));
+
+ if (!orig_node) {
+ pr_debug("couldn't find originator in orig_hash\n");
+ goto out;
+ }
+
+ orig_node->last_frag_packet = jiffies;
+
+ if (list_empty(&orig_node->frag_list) &&
+ frag_create_buffer(&orig_node->frag_list)) {
+ pr_debug("couldn't create frag buffer\n");
+ goto out;
+ }
+
+ tmp_frag_entry = frag_search_packet(&orig_node->frag_list,
+ unicast_packet);
+
+ if (!tmp_frag_entry) {
+ frag_create_entry(&orig_node->frag_list, skb);
+ ret = NET_RX_SUCCESS;
+ goto out;
+ }
+
+ *new_skb = frag_merge_packet(&orig_node->frag_list, tmp_frag_entry,
+ skb);
+ /* if not, merge failed */
+ if (*new_skb)
+ ret = NET_RX_SUCCESS;
+out:
+ spin_unlock_irqrestore(&bat_priv->orig_hash_lock, flags);
+
+ return ret;
+}
+
int frag_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv,
struct batman_if *batman_if, uint8_t dstaddr[])
{
diff --git a/unicast.h b/unicast.h
index b50d61b..5908b01 100644
--- a/unicast.h
+++ b/unicast.h
@@ -25,14 +25,8 @@
#define FRAG_TIMEOUT 10000 /* purge frag list entrys after time in ms */
#define FRAG_BUFFER_SIZE 6 /* number of list elements in buffer */
-struct sk_buff *frag_merge_packet(struct list_head *head,
- struct frag_packet_list_entry *tfp,
- struct sk_buff *skb);
-
-void frag_create_entry(struct list_head *head, struct sk_buff *skb);
-int frag_create_buffer(struct list_head *head);
-struct frag_packet_list_entry *frag_search_packet(struct list_head *head,
- struct unicast_frag_packet *up);
+int frag_reassemble_skb(struct sk_buff *skb, struct bat_priv *bat_priv,
+ struct sk_buff **new_skb);
void frag_list_free(struct list_head *head);
int unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv);
--
batman-adv
12 years, 4 months
batman-adv; branch, master, updated. v2010.1.0-180-g0c5ee66
by postmaster@open-mesh.org
The following commit has been merged in the master branch:
commit 6981e95f7283295a44b9cd505d5c0fd1b383c2bb
Author: Andreas Langer <an.langer at gmx.de>
Date: Sat Sep 25 10:06:51 2010 +0000
batman-adv:remove redundant is_my_mac() check in route_unicast_packet - callers deal with it
Signed-off-by: Andreas Langer <an.langer at gmx.de>
diff --git a/routing.c b/routing.c
index 6f8d13a..e566a32 100644
--- a/routing.c
+++ b/routing.c
@@ -1147,12 +1147,6 @@ static int route_unicast_packet(struct sk_buff *skb,
unicast_packet = (struct unicast_packet *)skb->data;
- /* packet for me */
- if (is_my_mac(unicast_packet->dest)) {
- interface_rx(recv_if->soft_iface, skb, hdr_size);
- return NET_RX_SUCCESS;
- }
-
/* TTL exceeded */
if (unicast_packet->ttl < 2) {
pr_debug("Warning - can't forward unicast packet from %pM to "
@@ -1186,7 +1180,6 @@ static int route_unicast_packet(struct sk_buff *skb,
return NET_RX_DROP;
unicast_packet = (struct unicast_packet *)skb->data;
- ethhdr = (struct ethhdr *)skb_mac_header(skb);
/* decrement ttl */
unicast_packet->ttl--;
--
batman-adv
12 years, 4 months
linux integration; branch, linux, updated. v2.6.36-rc3-516-gc47f2d3
by postmaster@open-mesh.org
The following commit has been merged in the linux branch:
commit c47f2d31185ac7c53d5e495b0a7124602527f38d
Author: Sven Eckelmann <sven.eckelmann(a)gmx.de>
Date: Fri Sep 24 23:44:13 2010 +0200
Staging: batman-adv: Add hash recommendations to TODO
David Miller <davem(a)davemloft.net> recommended in
20100924.134334.28812338.davem(a)davemloft.net that we must make the hash
abstraction helper more efficient and may remove it completely.
Signed-off-by: Sven Eckelmann <sven.eckelmann(a)gmx.de>
diff --git a/drivers/staging/batman-adv/TODO b/drivers/staging/batman-adv/TODO
index 5913731..11c384f 100644
--- a/drivers/staging/batman-adv/TODO
+++ b/drivers/staging/batman-adv/TODO
@@ -1,3 +1,7 @@
+ * remove own list functionality from hash
+ * use hlist_head, hlist_node in hash
+ * don't use callbacks for compare+choose in hash
+ * think about more efficient ways instead of abstraction of hash
* Request a new review
* Process the comments from the review
* Move into mainline proper
--
linux integration
12 years, 4 months
linux integration; annotated tag, v2.6.36-rc5, created. v2.6.36-rc5
by postmaster@open-mesh.org
The annotated tag, v2.6.36-rc5 has been created
at f4d2c86897046fb2dd9680b3446dfcc17a11e7f4 (tag)
tagging b30a3f6257ed2105259b404d419b4964e363928c (commit)
replaces v2.6.36-rc4
tagged by Linus Torvalds
on Mon Sep 20 16:57:04 2010 -0700
- Shortlog ------------------------------------------------------------
Linux 2.6.36-rc5
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
iEYEABECAAYFAkyX9NYACgkQF3YsRnbiHLtxmQCaAtmCFmXy7VBqa1SI1YtMclzB
mAEAn0QjkTx/L2U0AP3w3YxSxAqornBn
=p/Y4
-----END PGP SIGNATURE-----
Sven Eckelmann (1):
Revert: "Staging: batman-adv: Adding netfilter-bridge hooks"
-----------------------------------------------------------------------
--
linux integration
12 years, 4 months
linux integration; branch, linux, updated. v2.6.36-rc3-515-g7300218
by postmaster@open-mesh.org
The following commit has been merged in the linux branch:
commit fa64b60d9efaeb9aff401c4efb85f87300e2b457
Author: Sven Eckelmann <sven.eckelmann(a)gmx.de>
Date: Sat Sep 18 19:38:23 2010 +0200
Staging: batman-adv: Move mailing list address to .org
The official mailing list is run on lists.open-mesh.org and it should be
avoided to sent them to lists.open-mesh.net to reduce the number of
receipents and double posts.
Signed-off-by: Sven Eckelmann <sven.eckelmann(a)gmx.de>
diff --git a/drivers/staging/batman-adv/README b/drivers/staging/batman-adv/README
index cab178b..7c878bb 100644
--- a/drivers/staging/batman-adv/README
+++ b/drivers/staging/batman-adv/README
@@ -229,8 +229,9 @@ CONTACT
Please send us comments, experiences, questions, anything :)
IRC: #batman on irc.freenode.org
-Mailing-list: b.a.t.m.a.n(a)open-mesh.org (optional subscription
- at https://lists.open-mesh.org/mm/listinfo/b.a.t.m.a.n)
+Mailing-list: b.a.t.m.a.n@b.a.t.m.a.n@lists.open-mesh.org
+ (optional subscription at
+ https://lists.open-mesh.org/mm/listinfo/b.a.t.m.a.n)
You can also contact the Authors:
--
linux integration
12 years, 4 months