From 8790404de0e5f47ef721e2ed36ebb0f2314722ac Mon Sep 17 00:00:00 2001 From: Alexander Aring Date: Wed, 24 Feb 2016 12:01:03 +0100 Subject: 6lowpan: iphc: fix stateful multicast compression In case of multicast address we need to set always the LOWPAN_IPHC_M bit and if a destination context identifier was found for a multicast address then we need to set the LOWPAN_IPHC_DAC as well. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann --- net/6lowpan/iphc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'net/6lowpan') diff --git a/net/6lowpan/iphc.c b/net/6lowpan/iphc.c index d2a565cde4f4..8dd8388c8eba 100644 --- a/net/6lowpan/iphc.c +++ b/net/6lowpan/iphc.c @@ -1118,12 +1118,13 @@ int lowpan_header_compress(struct sk_buff *skb, const struct net_device *dev, /* destination address compression */ if (ipv6_daddr_type & IPV6_ADDR_MULTICAST) { pr_debug("destination address is multicast: "); + iphc1 |= LOWPAN_IPHC_M; if (dci) { iphc1 |= lowpan_iphc_mcast_ctx_addr_compress(&hc_ptr, &dci_entry, &hdr->daddr); + iphc1 |= LOWPAN_IPHC_DAC; } else { - iphc1 |= LOWPAN_IPHC_M; iphc1 |= lowpan_iphc_mcast_addr_compress(&hc_ptr, &hdr->daddr); } -- cgit v1.2.3-55-g7522