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;
}
"netdev",
dp_netdev_run,
dp_netdev_wait,
+ NULL, /* enumerate */
dpif_netdev_open,
dpif_netdev_close,
+ NULL, /* get_all_names */
dpif_netdev_delete,
dpif_netdev_get_stats,
dpif_netdev_get_drop_frags,