- if (!unformat (input, "%_%x:%x:%x:%x:%x:%x%_",
- &mac->bytes[0], &mac->bytes[1], &mac->bytes[2],
- &mac->bytes[3], &mac->bytes[4], &mac->bytes[5]))
- return 0;
+ if (unformat (input, "%_%X:%X:%X:%X:%X:%X%_",
+ 1, &mac->bytes[0], 1, &mac->bytes[1], 1, &mac->bytes[2],
+ 1, &mac->bytes[3], 1, &mac->bytes[4], 1, &mac->bytes[5]))
+ return (1);
+ else if (unformat (input, "%_%x.%x.%x%_", &a[0], &a[1], &a[2]))
+ {
+ for (i = 0; i < ARRAY_LEN (a); i++)
+ if (a[i] >= (1 << 16))
+ return 0;