memset(&netdev_options, 0, sizeof netdev_options);
netdev_options.name = iface_cfg->name;
- netdev_options.type = iface_cfg->type;
+ if (!strcmp(iface_cfg->type, "internal")) {
+ /* An "internal" config type maps to a netdev "system" type. */
+ netdev_options.type = "system";
+ } else {
+ netdev_options.type = iface_cfg->type;
+ }
netdev_options.args = &options;
netdev_options.ethertype = NETDEV_ETH_TYPE_NONE;
netdev_options.may_create = true;
const char *iface_type = iface_cfg->type && strlen(iface_cfg->type)
? iface_cfg->type : NULL;
+ /* An "internal" config type maps to a netdev "system" type. */
+ if (iface_type && !strcmp(iface_type, "internal")) {
+ iface_type = "system";
+ }
+
if (!iface_type || !strcmp(netdev_type, iface_type)) {
error = netdev_reconfigure(iface->netdev, &options);
} else {
bridge_reconfigure_controller(const struct ovsrec_open_vswitch *ovs_cfg,
struct bridge *br)
{
- char *pfx = xasprintf("bridge.%s.controller", br->name);
const struct ovsrec_controller *c;
c = bridge_get_controller(ovs_cfg, br);
ofproto_set_probe_interval(br->ofproto, 5);
ofproto_set_failure(br->ofproto, false);
}
- free(pfx);
ofproto_set_controller(br->ofproto, br->controller);
}