In virsh, we have this convenient domif-setlink command, which is just a wrapper over virDomainUpdateDeviceFlags() and which allows setting link state of given guest NIC. It does so by fetching corresponding <interface/> XML snippet and either putting <link state=''/> into it, OR if the element already exists setting the attribute to desired value. The XML is then fed into the update API. There's, however, a small bug in detecting the pre-existence of the element and its attribute. The code looks at "link" attribute, while in fact, the attribute is called "state". Resolves: https://gitlab.com/libvirt/libvirt/-/issues/426 Fixes: e575bf082ed4889280be07c986375f1ca15bb7ee Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> --- tools/virsh-domain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index 6b431bd1e5..59b2b3ce60 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -3209,7 +3209,7 @@ cmdDomIfSetLink(vshControl *ctl, const vshCmd *cmd) } } - if (xmlHasProp(linkNode, BAD_CAST "link")) + if (xmlHasProp(linkNode, BAD_CAST "state")) stateAttr = xmlSetProp(linkNode, BAD_CAST "state", BAD_CAST state); else stateAttr = xmlNewProp(linkNode, BAD_CAST "state", BAD_CAST state); -- 2.39.1