Description of problem: unable to start a network with bandwidth description for outbound QOS my xml for network <network> <name>sda</name> <uuid>173997d2-61b6-4425-a852-8f07a877f75f</uuid> <forward dev='enp3s0' mode='nat'> <nat> <port start='1024' end='2048'/> </nat> <interface dev='enp3s0'/> </forward> <bridge name='virbr0' stp='on' delay='0'/> <mac address='52:54:00:90:cb:d0'/> <domain name='sda'/> <bandwidth> <inbound average='50' peak='50' burst='50'/> <outbound average='50' peak='50' burst='50'/> </bandwidth> <ip address='192.100.0.12' netmask='255.255.255.0'> </ip> </network> Version-Release number of selected component (if applicable):libvirt 3.9.0 How reproducible:100% Steps to Reproduce: 1.create a network with nat mode and with bandwith outbound rule in Qos 2.start the network Actual results: libvirt: error : internal error: Child process (/usr/bin/tc filter add dev virbr0 parent ffff: protocol all u32 match u32 0 0 police rate 50kbps burst 50kb mtu 64kb drop flowid :1) unexpected exit status 1: What is ":1"? Usage: ... u32 [ match SELECTOR ... ] [ link HTID ] [ classid CLASSID ] [ action ACTION_SPEC ] [ offset OFFSET_SPEC ] [ ht HTID ] [ hashkey HASHKEY_SPEC ] [ sample SAMPLE ] [skip_hw | skip_sw] or u32 divisor DIVISOR Where: SELECTOR := SAMPLE SAMPLE ... SAMPLE := { ip | ip6 | udp | tcp | icmp | u{32|16|8} | mark } SAMPLE_ARGS [ divisor DIVISOR ] FILTERID := X:Y:Z NOTE: CLASSID is parsed at hexadecimal input. libvirt: Network Driver error : Network not found: no network with matching uuid 'a734e030-f800-4b72-a077-f360134bdc13' (sda) Expected results: Network must start automatically Additional info: qemu version :2.10.0 dnsmasq is installed
*** Bug 1514960 has been marked as a duplicate of this bug. ***
*** Bug 1514962 has been marked as a duplicate of this bug. ***
*** Bug 1514961 has been marked as a duplicate of this bug. ***
Interesting. I'm unable to reproduce this bug. What's your kernel and iproute packages version? Can you please attach full debug logs? http://wiki.libvirt.org/page/DebugLogs
Created attachment 1359023 [details] Libvirt client log This is the libvirt client log
This has my libvirt daemon log and I have attached my libvirt client log with this bug report https://drive.google.com/open?id=1TVGc5hwnw70biCdmFskmK66wBcYdWfA9
So I've managed to reproduce this issue. But only after I've upgraded tc to 4.13 or newer. I think the problem is the following tc's commit: https://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git/commit/?id=e67aba559581143f9bc34f0706b0c3feeeab08fa I'm investigating further.
So after some investigation I think I have fix: https://marc.info/?l=linux-netdev&m=151180640029095&w=2 Switching over to iproute & Fedora (e.g. F26 has 4.13 built which is affected).
After some discussion on the list, another approach was implemented: https://marc.info/?l=linux-netdev&m=151272830106092&w=2
The patch was merged upstream: commit 3572e01a090a298e2f4c4f796bad6639b652e031 Author: Michal Privoznik <mprivozn> AuthorDate: Fri Dec 8 11:18:07 2017 +0100 Commit: Stephen Hemminger <stephen> CommitDate: Fri Dec 8 10:29:01 2017 -0800 tc: util: Don't call NEXT_ARG_FWD() in __parse_action_control() Not all callers want parse_action_control*() to advance the arguments. For instance act_parse_police() does the argument advancing itself. Fixes: e67aba559581 ("tc: actions: add helpers to parse and print control actions") Signed-off-by: Michal Privoznik <mprivozn> v4.14.1-114-g3572e01a