diff --git a/lldp_vdp.c b/lldp_vdp.c
index 57133d1..2a6e828 100644
--- a/lldp_vdp.c
+++ b/lldp_vdp.c
@@ -1479,13 +1479,18 @@ struct vsi_profile *vdp_add_profile(struct vdp_data *vd,
}
profile = p;
} else {
-
- profile->response = VDP_RESPONSE_NO_RESPONSE;
+ /* Libvirt sends dis-assoc command and no profile active */
+ if (profile->mode == VDP_MODE_DEASSOCIATE) {
+ profile->response = VDP_RESPONSE_SUCCESS;
+ LLDPAD_DBG("%s: dis-assoc without profile\n", __func__);
+ } else
+ profile->response = VDP_RESPONSE_NO_RESPONSE;
LIST_INSERT_HEAD(&vd->profile_head, profile, profile);
}
- vdp_somethingChangedLocal(profile, true);
+ if (profile->response != VDP_RESPONSE_SUCCESS)
+ vdp_somethingChangedLocal(profile, true);
return profile;
}