static int
name_to_dp_idx(const char *name)
{
- if (!strncmp(name, "dp", 2) && isdigit(name[2])) {
+ if (!strncmp(name, "dp", 2) && isdigit((unsigned char)name[2])) {
int dp_idx = atoi(name + 2);
if (dp_idx >= 0 && dp_idx < N_DP_NETDEVS) {
return dp_idx;
if (!internal) {
error = netdev_open(devname, NETDEV_ETH_TYPE_ANY, &netdev);
} else {
- error = netdev_open_tap(devname, &netdev);
+ char *tapname = xasprintf("tap:%s", devname);
+ error = netdev_open(tapname, NETDEV_ETH_TYPE_ANY, &netdev);
+ free(tapname);
}
if (error) {
return error;
port->netdev = netdev;
port->internal = internal;
- mtu = netdev_get_mtu(netdev);
+ netdev_get_mtu(netdev, &mtu);
if (mtu > max_mtu) {
max_mtu = mtu;
}