Hi, good catch. Acked-by: Jukka Rissanen <jukka.rissanen@xxxxxxxxxxxxxxx> On Wed, 2016-01-13 at 16:57 +0100, Lukasz Duda wrote: > This patch fixes incorrect handling of the 6lowpan packets that > contain > uncompressed IPv6 header. > > RFC4944 specifies a special dispatch for 6lowpan to carry > uncompressed > IPv6 header. This dispatch (1 byte long) has to be removed during > reception and skb data pointer has to be moved. To correctly point in > the beginning of the IPv6 header the dispatch byte has to be pulled > off > before packet can be processed by netif_rx_in(). > > Test scenario: IPv6 packets are not correctly interpreted by the > network > layer when IPv6 header is not compressed (e.g. ICMPv6 Echo Reply is > not > propagated correctly to the ICMPv6 layer because the extra byte will > make > the header look corrupted). > > Similar approach is done for IEEE 802.15.4. > > Signed-off-by: Lukasz Duda <lukasz.duda@xxxxxxxxxxxxx> > Signed-off-by: Glenn Ruben Bakke <glenn.ruben.bakke@xxxxxxxxxxxxx> > --- > net/bluetooth/6lowpan.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c > index d040365..350f379 100644 > --- a/net/bluetooth/6lowpan.c > +++ b/net/bluetooth/6lowpan.c > @@ -307,6 +307,9 @@ static int recv_pkt(struct sk_buff *skb, struct > net_device *dev, > > /* check that it's our buffer */ > if (lowpan_is_ipv6(*skb_network_header(skb))) { > + /* Pull off the 1-byte of 6lowpan header. */ > + skb_pull(skb, 1); > + > /* Copy the packet so that the IPv6 header is > * properly aligned. > */ Cheers, Jukka -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html