ieee802154: add extended address validation helper
authorAlexander Aring <alex.aring@gmail.com>
Sun, 2 Nov 2014 03:18:45 +0000 (04:18 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Sun, 2 Nov 2014 03:51:08 +0000 (04:51 +0100)
This patch introduce an extended address validation helper to check if
an extended address is valid or not.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
include/linux/ieee802154.h

index 6e50a2a1d4851f77163b0dacf4623b17909363bd..9bba5ca7f0ad0bf52a7415febf49e6d363f093d0 100644 (file)
@@ -197,4 +197,18 @@ static inline bool ieee802154_is_valid_psdu_len(const u8 len)
        return (len >= IEEE802154_MIN_PSDU_LEN && len <= IEEE802154_MTU);
 }
 
+/**
+ * ieee802154_is_valid_psdu_len - check if extended addr is valid
+ * @addr: extended addr to check
+ */
+static inline bool ieee802154_is_valid_extended_addr(const __le64 addr)
+{
+       /* These EUI-64 addresses are reserved by IEEE. 0xffffffffffffffff
+        * is used internally as extended to short address broadcast mapping.
+        * This is currently a workaround because neighbor discovery can't
+        * deal with short addresses types right now.
+        */
+       return ((addr != 0x0000000000000000) || (addr != 0xffffffffffffffff));
+}
+
 #endif /* LINUX_IEEE802154_H */