Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e262f50 authored by Alexander Aring's avatar Alexander Aring Committed by Marcel Holtmann
Browse files

6lowpan: ndisc: set invalid unicast short addr to unspec



When receiving neighbour information with short address option field we
should check the complete range of invalid short addresses and set it to
one invalid address setting which is the unspecified address. This
address is also used when by creating at first a new neighbour entry to
indicate no short address is set.

Signed-off-by: default avatarAlexander Aring <aar@pengutronix.de>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent aaa7088e
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -97,10 +97,13 @@ static void lowpan_ndisc_802154_update(struct neighbour *n, u32 flags,
	}

	write_lock_bh(&n->lock);
	if (lladdr_short)
	if (lladdr_short) {
		ieee802154_be16_to_le16(&neigh->short_addr, lladdr_short);
	else
		if (!lowpan_802154_is_valid_src_short_addr(neigh->short_addr))
			neigh->short_addr = cpu_to_le16(IEEE802154_ADDR_SHORT_UNSPEC);
	} else {
		neigh->short_addr = cpu_to_le16(IEEE802154_ADDR_SHORT_UNSPEC);
	}
	write_unlock_bh(&n->lock);
}