virNetDevOpenvswitchGetMigrateData;
virNetDevOpenvswitchGetVhostuserIfname;
virNetDevOpenvswitchInterfaceClearQos;
+virNetDevOpenvswitchInterfaceClearRxQos;
+virNetDevOpenvswitchInterfaceClearTxQos;
virNetDevOpenvswitchInterfaceGetMaster;
virNetDevOpenvswitchInterfaceParseStats;
virNetDevOpenvswitchInterfaceSetQos;
return -1;
}
}
+ } else {
+ if (virNetDevOpenvswitchInterfaceClearTxQos(ifname, vmuuid) < 0) {
+ VIR_WARN("Clean tx qos for interface %s failed", ifname);
+ }
}
if (rx) {
_("Unable to set vlan configuration on port %s"), ifname);
return -1;
}
+ } else {
+ if (virNetDevOpenvswitchInterfaceClearRxQos(ifname) < 0) {
+ VIR_WARN("Clean rx qos for interface %s failed", ifname);
+ }
}
return 0;
}
int
-virNetDevOpenvswitchInterfaceClearQos(const char *ifname,
- const unsigned char *vmuuid)
+virNetDevOpenvswitchInterfaceClearTxQos(const char *ifname,
+ const unsigned char *vmuuid)
{
char vmuuidstr[VIR_UUID_STRING_BUFLEN];
g_autoptr(virCommand) cmd = NULL;
return 0;
}
+
+int
+virNetDevOpenvswitchInterfaceClearRxQos(const char *ifname)
+{
+ g_autoptr(virCommand) cmd = NULL;
+
+ cmd = virNetDevOpenvswitchCreateCmd();
+ virCommandAddArgList(cmd, "set", "Interface", ifname, NULL);
+ virCommandAddArgFormat(cmd, "ingress_policing_rate=%llu", 0llu);
+ virCommandAddArgFormat(cmd, "ingress_policing_burst=%llu", 0llu);
+
+ if (virCommandRun(cmd, NULL) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Unable to set vlan configuration on port %s"), ifname);
+ return -1;
+ }
+
+ return 0;
+}
+
+int
+virNetDevOpenvswitchInterfaceClearQos(const char *ifname,
+ const unsigned char *vmuuid)
+{
+ int ret = 0;
+
+ if (virNetDevOpenvswitchInterfaceClearTxQos(ifname, vmuuid) < 0) {
+ VIR_WARN("Clean tx qos for interface %s failed", ifname);
+ ret = -1;
+ }
+
+ if (virNetDevOpenvswitchInterfaceClearRxQos(ifname) < 0) {
+ VIR_WARN("Clean rx qos for interface %s failed", ifname);
+ ret = -1;
+ }
+
+ return ret;
+}
int virNetDevOpenvswitchInterfaceClearQos(const char *ifname,
const unsigned char *vmuuid)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT;
+
+int virNetDevOpenvswitchInterfaceClearRxQos(const char *ifname)
+ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT;
+
+int virNetDevOpenvswitchInterfaceClearTxQos(const char *ifname,
+ const unsigned char *vmid)
+ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT;