root/lib/net_utils.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. mac_pton

   1 // SPDX-License-Identifier: GPL-2.0
   2 #include <linux/string.h>
   3 #include <linux/if_ether.h>
   4 #include <linux/ctype.h>
   5 #include <linux/kernel.h>
   6 
   7 bool mac_pton(const char *s, u8 *mac)
   8 {
   9         int i;
  10 
  11         /* XX:XX:XX:XX:XX:XX */
  12         if (strlen(s) < 3 * ETH_ALEN - 1)
  13                 return false;
  14 
  15         /* Don't dirty result unless string is valid MAC. */
  16         for (i = 0; i < ETH_ALEN; i++) {
  17                 if (!isxdigit(s[i * 3]) || !isxdigit(s[i * 3 + 1]))
  18                         return false;
  19                 if (i != ETH_ALEN - 1 && s[i * 3 + 2] != ':')
  20                         return false;
  21         }
  22         for (i = 0; i < ETH_ALEN; i++) {
  23                 mac[i] = (hex_to_bin(s[i * 3]) << 4) | hex_to_bin(s[i * 3 + 1]);
  24         }
  25         return true;
  26 }
  27 EXPORT_SYMBOL(mac_pton);

/* [<][>][^][v][top][bottom][index][help] */