|
@@ -474,6 +474,22 @@ static inline int is_multicast_ether_addr(const u8 *addr)
|
|
return (0x01 & addr[0]);
|
|
return (0x01 & addr[0]);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ * is_valid_ether_addr - Determine if the given Ethernet address is valid
|
|
|
|
+ * @addr: Pointer to a six-byte array containing the Ethernet address
|
|
|
|
+ *
|
|
|
|
+ * Check that the Ethernet address (MAC) is not 00:00:00:00:00:00, is not
|
|
|
|
+ * a multicast address, and is not FF:FF:FF:FF:FF:FF.
|
|
|
|
+ *
|
|
|
|
+ * Return true if the address is valid.
|
|
|
|
+ */
|
|
|
|
+static inline int is_valid_ether_addr(const u8 * addr)
|
|
|
|
+{
|
|
|
|
+ /* FF:FF:FF:FF:FF:FF is a multicast address so we don't need to
|
|
|
|
+ * explicitly check for it here. */
|
|
|
|
+ return !is_multicast_ether_addr(addr) && !is_zero_ether_addr(addr);
|
|
|
|
+}
|
|
|
|
+
|
|
/* Convert an IP address to a string */
|
|
/* Convert an IP address to a string */
|
|
extern void ip_to_string (IPaddr_t x, char *s);
|
|
extern void ip_to_string (IPaddr_t x, char *s);
|
|
|
|
|