Convert 0011:2233:4455 to ethernet address */
| 71 | |
| 72 | /* Convert 0011:2233:4455 to ethernet address */ |
| 73 | static bool get_ether_addr3(const char *s, struct rte_ether_addr *ea, |
| 74 | const char sep) |
| 75 | { |
| 76 | int i, j; |
| 77 | |
| 78 | for (i = 0; i < RTE_ETHER_ADDR_LEN; i += 2) { |
| 79 | uint16_t w = 0; |
| 80 | |
| 81 | for (j = 0; j < 4; j++) { |
| 82 | int8_t x; |
| 83 | |
| 84 | x = get_xdigit(*s++); |
| 85 | if (x < 0) |
| 86 | return false; /* not a hex digit */ |
| 87 | w = (w << 4) | x; |
| 88 | } |
| 89 | |
| 90 | ea->addr_bytes[i] = w >> 8; |
| 91 | ea->addr_bytes[i + 1] = w & 0xff; |
| 92 | |
| 93 | if (i < RTE_ETHER_ADDR_LEN - 2 && |
| 94 | *s++ != sep) |
| 95 | return false; |
| 96 | } |
| 97 | |
| 98 | return *s == '\0'; |
| 99 | } |
| 100 | |
| 101 | /* |
| 102 | * Scan input to see if separated by dash, colon or period |
no test coverage detected