Re: [libvirt] [PATCH 4/5] conf: add options for disabling segment offloading
On 09/16/2014 12:24 AM, John Ferlan wrote: On 09/11/2014 07:43 AM, Ján Tomko wrote: Add the following attributes: csum, gso, guest_tso4, guest_tso6, guest_ecn to the driver element of network interface which control the virtio-net device properties of the same names. --- docs/formatdomain.html.in | 27 docs/schemas/domaincommon.rng | 25 +++ src/conf/domain_conf.c | 81 ++ src/conf/domain_conf.h | 5 ++ .../qemuxml2argv-net-virtio-disable-offloads.xml | 32 + tests/qemuxml2xmltest.c| 1 + 6 files changed, 171 insertions(+) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-virtio-disable-offloads.xml diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index a2ea758..5b2758a 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -3847,6 +3847,12 @@ qemu-kvm -net nic,model=? /dev/null lt;model type='virtio'/gt; blt;driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='5'/gt;/b lt;/interfacegt; +lt;interface type='network'gt; + lt;source network='default'/gt; + lt;target dev='vnet2'/gt; + lt;model type='virtio'/gt; + blt;driver csum='off' gso='off' guest_tso4='off' guest_tso6='off' guest_ecn='off'/gt;/b +lt;/interfacegt; This doesn't require a driver name='' value? AFAIK only queues require name='vhost'. lt;/devicesgt; .../pre @@ -3949,6 +3955,27 @@ qemu-kvm -net nic,model=? /dev/null processor, resulting in much higher throughput. span class=sinceSince 1.0.6 (QEMU and KVM only)/span /dd + dtcodecsum/code/dt + dd +The codecsum/code attribute with possible values codeon/code +and codeoff/code controls host-side support for packets with +partial checksum values. +span class=sinceSince 1.2.9 (QEMU only)/spanbr/br/ + +bIn general you should leave this option alone, unless you +are very certain you know what you are doing./b + /dd + dtsegment offloading options/dt + dd +The attributes codegso/code, codeguest_tso4/code, +codeguest_tso6/code, codeguest_ecn/code with possible +values of codeon/code and codeoff/code can be used +to tune segment offloading. +span class=sinceSince 1.2.9 (QEMU only)/spanbr/br/ + +bIn general you should leave this option alone, unless you +are very certain you know what you are doing./b s/this option/these options/ [oh - I'm having a flashback to something similar I had to do at my former employer with their virtualization switch software... these got enabled by some application and caused shall we say significant performance issues, especially for older drivers. That particular software was loaded/started after the virtualization network switch and thus reset what our code had done... Bugger to find as it embedded in some output from some network command that was executed rarely in our vswitch network daemon layer] Anyway, I understand it's desired to not say much about them, but is there any need to say what the defaults are? Furthermore, does one domain's setting affect other domains? I guess my curiosity is more is this a domain function or an interface (host) setting. We may want to indicate that here... Is the difference dependent upon the driver name? This is a per (guest) interface setting, I'm not aware of it affecting other interfaces or domains. Perhaps the 'leave this option alone' was too harsh. I'll add the defaults before pushing/sending another version. Jan I know from my previous experience it had a wider affect, but that code had a very different implementation. The vswitch was separate from the guest as a host process to which guests could configure ports. The vswitch software had the configuration magic to the lower level network driver(s) which is where the tso/cko, etc. were managed in the kernel. The equivalent of 'em0', 'eth0', etc - the physical NIC. A vswitch was tied to a particular physical NIC. So any changes to the pNIC cast a wide net, which is why other software setting TSO/CKO options on the same pNIC our vswitch used after our code disabled it caused all sorts of issues. (Just so you understand why I'm asking the question). + /dd /dl h5a name=elementsNICSTargetOverrideOverriding the target element/a/h5 signature.asc Description: OpenPGP digital signature -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 4/5] conf: add options for disabling segment offloading
On 09/16/2014 12:30 AM, Eric Blake wrote: On 09/11/2014 05:43 AM, Ján Tomko wrote: Add the following attributes: csum, gso, guest_tso4, guest_tso6, guest_ecn to the driver element of network interface which control the virtio-net device properties of the same names. --- docs/formatdomain.html.in | 27 docs/schemas/domaincommon.rng | 25 +++ src/conf/domain_conf.c | 81 ++ src/conf/domain_conf.h | 5 ++ .../qemuxml2argv-net-virtio-disable-offloads.xml | 32 + tests/qemuxml2xmltest.c| 1 + 6 files changed, 171 insertions(+) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-virtio-disable-offloads.xml diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index a2ea758..5b2758a 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -3847,6 +3847,12 @@ qemu-kvm -net nic,model=? /dev/null lt;model type='virtio'/gt; blt;driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='5'/gt;/b lt;/interfacegt; +lt;interface type='network'gt; + lt;source network='default'/gt; + lt;target dev='vnet2'/gt; + lt;model type='virtio'/gt; + blt;driver csum='off' gso='off' guest_tso4='off' guest_tso6='off' guest_ecn='off'/gt;/b +lt;/interfacegt; Are we stuck with names with underscores in our XML? I'm still not sure if we've come up with the best naming for exposing all these knobs. I'd rather not mix underscores (event_idx) and other word separators in the same element. Alternatively, we could do something like: driver csum='off' gso='off' guest tso4='off' tso6='off' ecn='off'/ /driver to get rid of the multi-word attributes, but I like the underscores better because they match QEMU arguments. Jan signature.asc Description: OpenPGP digital signature -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 4/5] conf: add options for disabling segment offloading
On Mon, Sep 15, 2014 at 04:30:46PM -0600, Eric Blake wrote: On 09/11/2014 05:43 AM, Ján Tomko wrote: Add the following attributes: csum, gso, guest_tso4, guest_tso6, guest_ecn to the driver element of network interface which control the virtio-net device properties of the same names. --- docs/formatdomain.html.in | 27 docs/schemas/domaincommon.rng | 25 +++ src/conf/domain_conf.c | 81 ++ src/conf/domain_conf.h | 5 ++ .../qemuxml2argv-net-virtio-disable-offloads.xml | 32 + tests/qemuxml2xmltest.c| 1 + 6 files changed, 171 insertions(+) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-virtio-disable-offloads.xml diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index a2ea758..5b2758a 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -3847,6 +3847,12 @@ qemu-kvm -net nic,model=? /dev/null lt;model type='virtio'/gt; blt;driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='5'/gt;/b lt;/interfacegt; +lt;interface type='network'gt; + lt;source network='default'/gt; + lt;target dev='vnet2'/gt; + lt;model type='virtio'/gt; + blt;driver csum='off' gso='off' guest_tso4='off' guest_tso6='off' guest_ecn='off'/gt;/b +lt;/interfacegt; Are we stuck with names with underscores in our XML? I'm still not sure if we've come up with the best naming for exposing all these knobs. I'm not really convinced having a 'guest_' prefix really buys us anything here, since there's no naming clash to avoid. Why don't we just kill the 'guest_' prefixes. NB, remember that precisely matching QEMU naming is a non-goal, we should be designing something that makes sense in general. Regards, Daniel -- |: http://berrange.com -o-http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 4/5] conf: add options for disabling segment offloading
On 09/17/2014 08:57 AM, Daniel P. Berrange wrote: + blt;driver csum='off' gso='off' guest_tso4='off' guest_tso6='off' guest_ecn='off'/gt;/b +lt;/interfacegt; Are we stuck with names with underscores in our XML? I'm still not sure if we've come up with the best naming for exposing all these knobs. I'm not really convinced having a 'guest_' prefix really buys us anything here, since there's no naming clash to avoid. Why don't we just kill the 'guest_' prefixes. NB, remember that precisely matching QEMU naming is a non-goal, we should be designing something that makes sense in general. I agree; I'd be fine with: driver csum='off' gso='off' tso4='off' tso6='off' ecn='off'/ with no need for a guest sub-structure. Yeah, we'll have to do some glue logic to translate to qemu names, but that's what libvirt is for. -- Eric Blake eblake redhat com+1-919-301-3266 Libvirt virtualization library http://libvirt.org signature.asc Description: OpenPGP digital signature -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 4/5] conf: add options for disabling segment offloading
On 09/17/2014 04:57 PM, Daniel P. Berrange wrote: On Mon, Sep 15, 2014 at 04:30:46PM -0600, Eric Blake wrote: On 09/11/2014 05:43 AM, Ján Tomko wrote: Add the following attributes: csum, gso, guest_tso4, guest_tso6, guest_ecn to the driver element of network interface which control the virtio-net device properties of the same names. --- docs/formatdomain.html.in | 27 docs/schemas/domaincommon.rng | 25 +++ src/conf/domain_conf.c | 81 ++ src/conf/domain_conf.h | 5 ++ .../qemuxml2argv-net-virtio-disable-offloads.xml | 32 + tests/qemuxml2xmltest.c| 1 + 6 files changed, 171 insertions(+) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-virtio-disable-offloads.xml diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index a2ea758..5b2758a 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -3847,6 +3847,12 @@ qemu-kvm -net nic,model=? /dev/null lt;model type='virtio'/gt; blt;driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='5'/gt;/b lt;/interfacegt; +lt;interface type='network'gt; + lt;source network='default'/gt; + lt;target dev='vnet2'/gt; + lt;model type='virtio'/gt; + blt;driver csum='off' gso='off' guest_tso4='off' guest_tso6='off' guest_ecn='off'/gt;/b +lt;/interfacegt; Are we stuck with names with underscores in our XML? I'm still not sure if we've come up with the best naming for exposing all these knobs. I'm not really convinced having a 'guest_' prefix really buys us anything here, since there's no naming clash to avoid. Why don't we just kill the 'guest_' prefixes. The clash is in the options I didn't expose: http://git.qemu.org/?p=qemu.git;a=blob;f=include/hw/virtio/virtio-net.h;h=6ceb5aa92 because they weren't requested by the (private :() bug 1139364 Jan signature.asc Description: OpenPGP digital signature -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 4/5] conf: add options for disabling segment offloading
On Wed, Sep 17, 2014 at 05:36:18PM +0200, Ján Tomko wrote: On 09/17/2014 04:57 PM, Daniel P. Berrange wrote: On Mon, Sep 15, 2014 at 04:30:46PM -0600, Eric Blake wrote: On 09/11/2014 05:43 AM, Ján Tomko wrote: Add the following attributes: csum, gso, guest_tso4, guest_tso6, guest_ecn to the driver element of network interface which control the virtio-net device properties of the same names. --- docs/formatdomain.html.in | 27 docs/schemas/domaincommon.rng | 25 +++ src/conf/domain_conf.c | 81 ++ src/conf/domain_conf.h | 5 ++ .../qemuxml2argv-net-virtio-disable-offloads.xml | 32 + tests/qemuxml2xmltest.c| 1 + 6 files changed, 171 insertions(+) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-virtio-disable-offloads.xml diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index a2ea758..5b2758a 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -3847,6 +3847,12 @@ qemu-kvm -net nic,model=? /dev/null lt;model type='virtio'/gt; blt;driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='5'/gt;/b lt;/interfacegt; +lt;interface type='network'gt; + lt;source network='default'/gt; + lt;target dev='vnet2'/gt; + lt;model type='virtio'/gt; + blt;driver csum='off' gso='off' guest_tso4='off' guest_tso6='off' guest_ecn='off'/gt;/b +lt;/interfacegt; Are we stuck with names with underscores in our XML? I'm still not sure if we've come up with the best naming for exposing all these knobs. I'm not really convinced having a 'guest_' prefix really buys us anything here, since there's no naming clash to avoid. Why don't we just kill the 'guest_' prefixes. The clash is in the options I didn't expose: http://git.qemu.org/?p=qemu.git;a=blob;f=include/hw/virtio/virtio-net.h;h=6ceb5aa92 because they weren't requested by the (private :() bug 1139364 Ah, so this is why you shouldn't take the precise solution requested in a bug too literally, and instead look at the general picture :-) So QEMU exposes alot of stuff: $ qemu-kvm -device virtio-net,? virtio-net-pci.ioeventfd=on/off virtio-net-pci.vectors=uint32 virtio-net-pci.indirect_desc=on/off virtio-net-pci.event_idx=on/off virtio-net-pci.any_layout=on/off virtio-net-pci.csum=on/off virtio-net-pci.guest_csum=on/off virtio-net-pci.gso=on/off virtio-net-pci.guest_tso4=on/off virtio-net-pci.guest_tso6=on/off virtio-net-pci.guest_ecn=on/off virtio-net-pci.guest_ufo=on/off virtio-net-pci.host_tso4=on/off virtio-net-pci.host_tso6=on/off virtio-net-pci.host_ecn=on/off virtio-net-pci.host_ufo=on/off virtio-net-pci.mrg_rxbuf=on/off virtio-net-pci.status=on/off virtio-net-pci.ctrl_vq=on/off virtio-net-pci.ctrl_rx=on/off virtio-net-pci.ctrl_vlan=on/off virtio-net-pci.ctrl_rx_extra=on/off virtio-net-pci.ctrl_mac_addr=on/off virtio-net-pci.ctrl_guest_offloads=on/off virtio-net-pci.mq=on/off virtio-net-pci.mac=macaddr virtio-net-pci.vlan=vlan virtio-net-pci.netdev=netdev virtio-net-pci.bootindex=int32 virtio-net-pci.x-txtimer=uint32 virtio-net-pci.x-txburst=int32 virtio-net-pci.tx=str virtio-net-pci.addr=pci-devfn virtio-net-pci.romfile=str virtio-net-pci.rombar=uint32 virtio-net-pci.multifunction=on/off virtio-net-pci.command_serr_enable=on/off Which to me indicates that Eric's suggestion for sub-elements is a good idea. eg go for: driver guest / host / /driver and support the host bits too Regards, Daniel -- |: http://berrange.com -o-http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 4/5] conf: add options for disabling segment offloading
On 09/17/2014 09:52 AM, Daniel P. Berrange wrote: Ah, so this is why you shouldn't take the precise solution requested in a bug too literally, and instead look at the general picture :-) So QEMU exposes alot of stuff: $ qemu-kvm -device virtio-net,? virtio-net-pci.guest_tso4=on/off virtio-net-pci.guest_tso6=on/off virtio-net-pci.guest_ecn=on/off virtio-net-pci.guest_ufo=on/off virtio-net-pci.host_tso4=on/off virtio-net-pci.host_tso6=on/off virtio-net-pci.host_ecn=on/off virtio-net-pci.host_ufo=on/off Which to me indicates that Eric's suggestion for sub-elements is a Wasn't my idea, but Jan's. good idea. eg go for: driver guest / host / /driver and support the host bits too but yes, I could live with that, now that I'm seeing how many more options there are to be exposed. -- Eric Blake eblake redhat com+1-919-301-3266 Libvirt virtualization library http://libvirt.org signature.asc Description: OpenPGP digital signature -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 4/5] conf: add options for disabling segment offloading
On 09/11/2014 07:43 AM, Ján Tomko wrote: Add the following attributes: csum, gso, guest_tso4, guest_tso6, guest_ecn to the driver element of network interface which control the virtio-net device properties of the same names. --- docs/formatdomain.html.in | 27 docs/schemas/domaincommon.rng | 25 +++ src/conf/domain_conf.c | 81 ++ src/conf/domain_conf.h | 5 ++ .../qemuxml2argv-net-virtio-disable-offloads.xml | 32 + tests/qemuxml2xmltest.c| 1 + 6 files changed, 171 insertions(+) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-virtio-disable-offloads.xml diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index a2ea758..5b2758a 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -3847,6 +3847,12 @@ qemu-kvm -net nic,model=? /dev/null lt;model type='virtio'/gt; blt;driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='5'/gt;/b lt;/interfacegt; +lt;interface type='network'gt; + lt;source network='default'/gt; + lt;target dev='vnet2'/gt; + lt;model type='virtio'/gt; + blt;driver csum='off' gso='off' guest_tso4='off' guest_tso6='off' guest_ecn='off'/gt;/b +lt;/interfacegt; This doesn't require a driver name='' value? lt;/devicesgt; .../pre @@ -3949,6 +3955,27 @@ qemu-kvm -net nic,model=? /dev/null processor, resulting in much higher throughput. span class=sinceSince 1.0.6 (QEMU and KVM only)/span /dd + dtcodecsum/code/dt + dd +The codecsum/code attribute with possible values codeon/code +and codeoff/code controls host-side support for packets with +partial checksum values. +span class=sinceSince 1.2.9 (QEMU only)/spanbr/br/ + +bIn general you should leave this option alone, unless you +are very certain you know what you are doing./b + /dd + dtsegment offloading options/dt + dd +The attributes codegso/code, codeguest_tso4/code, +codeguest_tso6/code, codeguest_ecn/code with possible +values of codeon/code and codeoff/code can be used +to tune segment offloading. +span class=sinceSince 1.2.9 (QEMU only)/spanbr/br/ + +bIn general you should leave this option alone, unless you +are very certain you know what you are doing./b s/this option/these options/ [oh - I'm having a flashback to something similar I had to do at my former employer with their virtualization switch software... these got enabled by some application and caused shall we say significant performance issues, especially for older drivers. That particular software was loaded/started after the virtualization network switch and thus reset what our code had done... Bugger to find as it embedded in some output from some network command that was executed rarely in our vswitch network daemon layer] Anyway, I understand it's desired to not say much about them, but is there any need to say what the defaults are? Furthermore, does one domain's setting affect other domains? I guess my curiosity is more is this a domain function or an interface (host) setting. We may want to indicate that here... Is the difference dependent upon the driver name? I know from my previous experience it had a wider affect, but that code had a very different implementation. The vswitch was separate from the guest as a host process to which guests could configure ports. The vswitch software had the configuration magic to the lower level network driver(s) which is where the tso/cko, etc. were managed in the kernel. The equivalent of 'em0', 'eth0', etc - the physical NIC. A vswitch was tied to a particular physical NIC. So any changes to the pNIC cast a wide net, which is why other software setting TSO/CKO options on the same pNIC our vswitch used after our code disabled it caused all sorts of issues. (Just so you understand why I'm asking the question). + /dd /dl h5a name=elementsNICSTargetOverrideOverriding the target element/a/h5 diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 6ae940a..c5b092f 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -2373,6 +2373,31 @@ optional ref name=event_idx/ /optional + optional +attribute name=csum + ref name=virSwitch/ +/attribute + /optional + optional +attribute name=gso + ref name=virSwitch/ +/attribute + /optional + optional +attribute name=guest_tso4 + ref name=virSwitch/ +
Re: [libvirt] [PATCH 4/5] conf: add options for disabling segment offloading
On 09/11/2014 05:43 AM, Ján Tomko wrote: Add the following attributes: csum, gso, guest_tso4, guest_tso6, guest_ecn to the driver element of network interface which control the virtio-net device properties of the same names. --- docs/formatdomain.html.in | 27 docs/schemas/domaincommon.rng | 25 +++ src/conf/domain_conf.c | 81 ++ src/conf/domain_conf.h | 5 ++ .../qemuxml2argv-net-virtio-disable-offloads.xml | 32 + tests/qemuxml2xmltest.c| 1 + 6 files changed, 171 insertions(+) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-virtio-disable-offloads.xml diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index a2ea758..5b2758a 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -3847,6 +3847,12 @@ qemu-kvm -net nic,model=? /dev/null lt;model type='virtio'/gt; blt;driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='5'/gt;/b lt;/interfacegt; +lt;interface type='network'gt; + lt;source network='default'/gt; + lt;target dev='vnet2'/gt; + lt;model type='virtio'/gt; + blt;driver csum='off' gso='off' guest_tso4='off' guest_tso6='off' guest_ecn='off'/gt;/b +lt;/interfacegt; Are we stuck with names with underscores in our XML? I'm still not sure if we've come up with the best naming for exposing all these knobs. -- Eric Blake eblake redhat com+1-919-301-3266 Libvirt virtualization library http://libvirt.org signature.asc Description: OpenPGP digital signature -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
[libvirt] [PATCH 4/5] conf: add options for disabling segment offloading
Add the following attributes: csum, gso, guest_tso4, guest_tso6, guest_ecn to the driver element of network interface which control the virtio-net device properties of the same names. --- docs/formatdomain.html.in | 27 docs/schemas/domaincommon.rng | 25 +++ src/conf/domain_conf.c | 81 ++ src/conf/domain_conf.h | 5 ++ .../qemuxml2argv-net-virtio-disable-offloads.xml | 32 + tests/qemuxml2xmltest.c| 1 + 6 files changed, 171 insertions(+) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-virtio-disable-offloads.xml diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index a2ea758..5b2758a 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -3847,6 +3847,12 @@ qemu-kvm -net nic,model=? /dev/null lt;model type='virtio'/gt; blt;driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='5'/gt;/b lt;/interfacegt; +lt;interface type='network'gt; + lt;source network='default'/gt; + lt;target dev='vnet2'/gt; + lt;model type='virtio'/gt; + blt;driver csum='off' gso='off' guest_tso4='off' guest_tso6='off' guest_ecn='off'/gt;/b +lt;/interfacegt; lt;/devicesgt; .../pre @@ -3949,6 +3955,27 @@ qemu-kvm -net nic,model=? /dev/null processor, resulting in much higher throughput. span class=sinceSince 1.0.6 (QEMU and KVM only)/span /dd + dtcodecsum/code/dt + dd +The codecsum/code attribute with possible values codeon/code +and codeoff/code controls host-side support for packets with +partial checksum values. +span class=sinceSince 1.2.9 (QEMU only)/spanbr/br/ + +bIn general you should leave this option alone, unless you +are very certain you know what you are doing./b + /dd + dtsegment offloading options/dt + dd +The attributes codegso/code, codeguest_tso4/code, +codeguest_tso6/code, codeguest_ecn/code with possible +values of codeon/code and codeoff/code can be used +to tune segment offloading. +span class=sinceSince 1.2.9 (QEMU only)/spanbr/br/ + +bIn general you should leave this option alone, unless you +are very certain you know what you are doing./b + /dd /dl h5a name=elementsNICSTargetOverrideOverriding the target element/a/h5 diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 6ae940a..c5b092f 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -2373,6 +2373,31 @@ optional ref name=event_idx/ /optional + optional +attribute name=csum + ref name=virSwitch/ +/attribute + /optional + optional +attribute name=gso + ref name=virSwitch/ +/attribute + /optional + optional +attribute name=guest_tso4 + ref name=virSwitch/ +/attribute + /optional + optional +attribute name=guest_tso6 + ref name=virSwitch/ +/attribute + /optional + optional +attribute name=guest_ecn + ref name=virSwitch/ +/attribute + /optional /group /choice empty/ diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 0fdfa6f..cc67e35 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -6892,6 +6892,11 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt, char *ioeventfd = NULL; char *event_idx = NULL; char *queues = NULL; +char *csum = NULL; +char *gso = NULL; +char *guest_tso4 = NULL; +char *guest_tso6 = NULL; +char *guest_ecn = NULL; char *filter = NULL; char *internal = NULL; char *devaddr = NULL; @@ -7015,6 +7020,11 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt, ioeventfd = virXMLPropString(cur, ioeventfd); event_idx = virXMLPropString(cur, event_idx); queues = virXMLPropString(cur, queues); +csum = virXMLPropString(cur, csum); +gso = virXMLPropString(cur, gso); +guest_tso4 = virXMLPropString(cur, guest_tso4); +guest_tso6 = virXMLPropString(cur, guest_tso6); +guest_ecn = virXMLPropString(cur, guest_ecn); } else if (xmlStrEqual(cur-name, BAD_CAST filterref)) { if (filter) { virReportError(VIR_ERR_XML_ERROR, %s, @@ -7377,6 +7387,51 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt, }