diff options
Diffstat (limited to 'patches/linux-3.8.13/0175-6lowpan-always-enable-link-layer-acknowledgments.patch')
-rw-r--r-- | patches/linux-3.8.13/0175-6lowpan-always-enable-link-layer-acknowledgments.patch | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/patches/linux-3.8.13/0175-6lowpan-always-enable-link-layer-acknowledgments.patch b/patches/linux-3.8.13/0175-6lowpan-always-enable-link-layer-acknowledgments.patch new file mode 100644 index 0000000..989bd60 --- /dev/null +++ b/patches/linux-3.8.13/0175-6lowpan-always-enable-link-layer-acknowledgments.patch @@ -0,0 +1,30 @@ +From: Tony Cheneau <tony.cheneau@amnesiak.org> +Date: Mon, 25 Mar 2013 23:59:23 -0400 +Subject: [PATCH] 6lowpan: always enable link-layer acknowledgments + +This feature is especially important when using fragmentation, because +the reassembly mechanism cannot recover from the loss of a fragment. + +Note that some hardware ignore this flag and not will not transmit +acknowledgments even if this is set. + +Signed-off-by: Tony Cheneau <tony.cheneau@amnesiak.org> +--- + net/ieee802154/6lowpan.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/net/ieee802154/6lowpan.c b/net/ieee802154/6lowpan.c +index 9f53904..e7f61de 100644 +--- a/net/ieee802154/6lowpan.c ++++ b/net/ieee802154/6lowpan.c +@@ -584,6 +584,10 @@ static int lowpan_header_create(struct sk_buff *skb, + + mac_cb(skb)->flags = IEEE802154_FC_TYPE_DATA; + ++ /* request acknowledgment when possible */ ++ if (!lowpan_is_addr_broadcast(daddr)) ++ mac_cb(skb)->flags |= MAC_CB_FLAG_ACKREQ; ++ + return dev_hard_header(skb, lowpan_dev_info(dev)->real_dev, + type, (void *)&da, (void *)&sa, skb->len); + } |