Re: [PATCH 3/5] util: don't re-add the qdisc used for tx filters if it already exists

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 22, 2024 at 04:16:37PM -0500, Laine Stump wrote:
> There will soon be two separate users of tc on virtual networks, and
> both will use the "qdisc root handle 1: htb" to add tx filters. One or the
> other could get the first chance to add the qdisc, and then if at a
> later time the other decides to use it, we need to prevent the 2nd
> user from attempting to re-add the qdisc (because that just generates
> an error).
> 
> We do this by running "tc qdisc show dev $bridge handle 1:" then
> checking if the output of that command starts with "qdisc htb 1:
> root". If it does then the qdisc is already there. If not then we need
> to add it now.
> 


> diff --git a/src/util/virnetdevbandwidth.c b/src/util/virnetdevbandwidth.c
> index 09c10e9a15..ae7214a9d5 100644
> --- a/src/util/virnetdevbandwidth.c
> +++ b/src/util/virnetdevbandwidth.c

> +
> +    /* output will be something like: "qdisc htb 1: root refcnt ..."
> +     * if the qdisc was already added.
> +     */
> +    if (!(testResult && STRPREFIX(testResult, "qdisc htb 1: root"))) {

I wonder a little how stable "tc qdisc show" output format has been
over time ? This is a very exact match we're performing. Don't
suppose there's some way to detect this scenario without parsing
human output from 'tc' ?

> +        /* didn't find qdisc in output, so we need to add one */
> +        g_autoptr(virCommand) addCmd = virCommandNew(TC);
> +
> +        virCommandAddArgList(addCmd, "qdisc", "add", "dev", ifname, "root",
> +                             "handle", "1:", "htb", "default",
> +                             hierarchical_class ? "2" : "1", NULL);
> +
> +        return virCommandRun(addCmd, NULL);
> +    }
> +
> +    return 0;
>  }

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux