• J
    Support for interface model='netfront' · dddad4bc
    Jiri Denemark 提交于
    Xen HVM guests with PV drivers end up with two network interfaces for
    each configured interface. One of them being emulated by qemu and the
    other one paravirtual. As this might not be desirable, the attached
    patch provides a way for users to specify that only paravirtual network
    interface should be presented to the guest.
    
    The configuration was inspired by qemu/kvm driver, for which users can
    specify model='virtio' to use paravirtual network interface.
    
    The patch adds support for model='netfront' which results in
    type=netfront instead of type=ioemu (or nothing for newer xen versions)
    in guests native configuration. Xen's qemu ignores interfaces with
    type != ioemu and only paravirtual network device will be seen in the
    guest.
    
    Four possible configuration scenarios follow:
    
    - no model specified in domain's XML
        - libvirt will behave like before this change; it will set
          type=ioemu for HVM guests on xen host which is not newer than
          XEND_CONFIG_MAX_VERS_NET_TYPE_IOEMU
        - covered by existing tests
    
    - PV guest, any model
        - no functional change, model is passed as is (and ignored by the
          hypervisor)
        - covered by existing tests (e.g., *-net-e1000.*)
    - HVM guest, model=netfront
        - type is set to "netfront", model is not specified
        - covered by new *-net-netfront.* tests
    
    - HVM guest, model != netfront
        - type is set to "ioemu", model is passed as is
        - covered by new *-net-ioemu.* tests
    
    The fourth scenario feels like a regression for xen newer than
    XEND_CONFIG_MAX_VERS_NET_TYPE_IOEMU as users who had a model specified
    in their guest's configuration won't see a paravirtual interface in
    their guests any more. On the other hand, the reason for specifying a
    model is most likely the fact that they want to use such model which
    implies emulated interface. Users of older xen won't be affected at all
    as their xen provides paravirtual interface regardless of the type used.
    
    - src/xen/xend_internal.c: add netfront support for the xend backend
    - src/xen/xm_internal.c: add netfront support for the XM serialization too
    dddad4bc
xm_internal.c 97.9 KB