int type;
char *tmp;
xmlNodePtr cur = ctxt->node;
+ xmlNodePtr lnk;
+
/* check @type */
tmp = virXPathString("string(./@type)", ctxt);
goto error;
}
def->type = type;
+
+ if (type != VIR_INTERFACE_TYPE_BRIDGE) {
+ /* link status makes no sense for a bridge */
+ lnk = virXPathNode("./link", ctxt);
+ if (lnk && virInterfaceLinkParseXML(lnk, &def->lnk) < 0)
+ goto error;
+ }
+
switch (type) {
case VIR_INTERFACE_TYPE_ETHERNET: {
- xmlNodePtr lnk;
-
if (virInterfaceDefParseName(def, ctxt) < 0)
goto error;
tmp = virXPathString("string(./mac/@address)", ctxt);
if (tmp != NULL)
def->mac = tmp;
- lnk = virXPathNode("./link", ctxt);
- if (lnk && virInterfaceLinkParseXML(lnk, &def->lnk) < 0)
- goto error;
-
if (parentIfType == VIR_INTERFACE_TYPE_LAST) {
/* only recognize these in toplevel bond interfaces */
if (virInterfaceDefParseStartMode(def, ctxt) < 0)
break;
case VIR_INTERFACE_TYPE_BOND:
virInterfaceStartmodeDefFormat(buf, def->startmode);
+ virInterfaceLinkFormat(buf, &def->lnk);
if (def->mtu != 0)
virBufferAsprintf(buf, "<mtu size='%d'/>\n", def->mtu);
virInterfaceProtocolDefFormat(buf, def);
virInterfaceStartmodeDefFormat(buf, def->startmode);
if (def->mac != NULL)
virBufferAsprintf(buf, "<mac address='%s'/>\n", def->mac);
+ virInterfaceLinkFormat(buf, &def->lnk);
if (def->mtu != 0)
virBufferAsprintf(buf, "<mtu size='%d'/>\n", def->mtu);
virInterfaceProtocolDefFormat(buf, def);