Blob Blame History Raw
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;
 }