formatnetworkport.html.in 7.5 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <body>
    <h1>Network XML format</h1>

    <ul id="toc">
    </ul>

    <p>
      This page provides an introduction to the network port XML format.
12 13
      This stores information about the connection between a virtual
      interface of a virtual domain, and the virtual network it is
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
      attached to.
    </p>

    <h2><a id="elements">Element and attribute overview</a></h2>

    <p>
      The root element required for all virtual network ports is
      named <code>networkport</code> and has no configurable attributes
      The network port XML format is available <span class="since">since
      5.5.0</span>
    </p>

    <h3><a id="elementsMetadata">General metadata</a></h3>

    <p>
      The first elements provide basic metadata about the virtual
      network port.
    </p>

    <pre>
&lt;networkport
  &lt;uuid&gt;7ae63b5f-fe96-4af0-a7c3-da04ba1b3f54&lt;/uuid&gt;
  &lt;owner&gt;
    &lt;uuid&gt;06578fc1-c686-46fa-bc2c-220893b466a6&lt;/uuid&gt;
    &lt;name&gt;myguest&lt;name&gt;
  &lt;/owner&gt;
  &lt;group&gt;webfront&lt;group&gt;
  &lt;mac address='52:54:0:7b:35:93'/&gt;
  ...</pre>

    <dl>
      <dt><code>uuid</code></dt>
      <dd>The content of the <code>uuid</code> element provides
        a globally unique identifier for the virtual network port.
        The format must be RFC 4122 compliant, eg <code>3e3fce45-4f53-4fa7-bb32-11f34168b82b</code>.
        If omitted when defining/creating a new network port, a random
        UUID is generated.</dd>
      <dd>The <code>owner</code> node records the domain object that
        is the owner of the network port. It contains two child nodes:
        <dl>
          <dt><code>uuid</code></dt>
          <dd>The content of the <code>uuid</code> element provides
            a globally unique identifier for the virtual domain.</dd>
          <dt><code>name</code></dt>
          <dd>The unique name of the virtual domain</dd>
        </dl>
      </dd>
      <dt><code>group</code></dt>
      <dd>The port group in the virtual network to which the
        port belongs. Can be omitted if no port groups are
        defined on the network.</dd>
      <dt><code>mac</code></dt>
      <dd>The <code>address</code> attribute provides the MAC
        address of the virtual port that will be see by the
        guest. The MAC address must not start with 0xFE as this
        byte is reserved for use on the host side of the port.
      </dd>
    </dl>

    <h3><a id="elementsCommon">Common elements</a></h3>

    <p>
76
      The following elements are common to one or more of the plug
77 78 79 80 81 82 83 84 85 86
      types listed later
    </p>

    <pre>
  ...
  &lt;bandwidth&gt;
    &lt;inbound average='1000' peak='5000' floor='200' burst='1024'/&gt;
    &lt;outbound average='128' peak='256' burst='256'/&gt;
  &lt;/bandwidth&gt;
  &lt;rxfilters trustGuest='yes'/&gt;
87
  &lt;port isolated='yes'/&gt;
88 89 90 91 92 93 94 95 96 97 98 99
  &lt;virtualport type='802.1Qbg'&gt;
    &lt;parameters managerid='11' typeid='1193047' typeidversion='2'/&gt;
  &lt;/virtualport&gt;
  ...</pre>

    <dl>
      <dt><code>bandwidth</code></dt>
      <dd>This part of the network port XML provides setting quality of service.
        Incoming and outgoing traffic can be shaped independently.
        The <code>bandwidth</code> element and its child elements are described
        in the <a href="formatnetwork.html#elementQoS">QoS</a> section of
        the Network XML. In addition the <code>classID</code> attribute may
100
        exist to provide the ID of the traffic shaping class that is active.
101 102 103 104 105 106 107 108 109 110 111 112 113
      </dd>
      <dt><code>rxfilters</code></dt>
      <dd>The <code>rxfilters</code> element property
        <code>trustGuest</code> provides the
        capability for the host to detect and trust reports from the
        guest regarding changes to the interface mac address and receive
        filters by setting the attribute to <code>yes</code>. The default
        setting for the attribute is <code>no</code> for security
        reasons and support depends on the guest network device model as
        well as the type of connection on the host - currently it is
        only supported for the virtio device model and for macvtap
        connections on the host.
      </dd>
114 115 116 117 118 119 120 121 122 123
      <dt><code>port</code></dt>
      <dd> <span class="since">Since 6.1.0.</span>
        The <code>port</code> element property
        <code>isolated</code>, when set to <code>yes</code> (default
        setting is <code>no</code>) is used to isolate this port's
        network traffic from other ports on the same network that also
        have <code>&lt;port isolated='yes'/&gt;</code>. This setting
        is only supported for emulated network devices connected to a
        Linux host bridge via a standard tap device.
      </dd>
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
      <dt><code>virtualport</code></dt>
      <dd>The <code>virtualport</code> element describes metadata that
        needs to be provided to the underlying network subsystem. It
        is described in the domain XML
        <a href="formatdomain.html#elementsNICS">interface documentation</a>.
      </dd>
    </dl>


    <h3><a id="elementsPlug">Plugs</a></h3>

    <p>
      The <code>plug</code> element has varying content depending
      on the value of the <code>type</code> attribute.
    </p>

    <h4><a id="elementsPlugNetwork">Network</a></h4>

    <p>
      The <code>network</code> plug type refers to a managed virtual
      network plug that is based on a traditional software bridge
      device privately managed by libvirt.
    </p>

    <pre>
  ...
150
  &lt;plug type='network' bridge='virbr0'/&gt;
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
  ...</pre>

    <p>
      The <code>bridge</code> attribute provides the name of the
      privately managed bridge device associated with the virtual
      network.
    </p>

    <h4><a id="elementsPlugNetwork">Bridge</a></h4>

    <p>
      The <code>bridge</code> plug type refers to an externally
      managed traditional software bridge.
    </p>

    <pre>
  ...
168
  &lt;plug type='bridge' bridge='br2'/&gt;
169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
  ...</pre>

    <p>
      The <code>bridge</code> attribute provides the name of the
      externally managed bridge device associated with the virtual
      network.
    </p>

    <h4><a id="elementsPlugNetwork">Direct</a></h4>

    <p>
      The <code>direct</code> plug type refers to a connection
      directly to a physical network interface.
    </p>

    <pre>
  ...
  &lt;plug type='direct' dev='ens3' mode='vepa'/&gt;
  ...</pre>

    <p>
      The <code>dev</code> attribute provides the name of the
      physical network interface to which the port will be
      connected. The <code>mode</code> attribute describes
      how the connection will be setup and takes the same
      values described in the
      <a href="formatdomain.html#elementsNICSDirect">domain XML</a>.
    </p>

    <h4><a id="elementsPlugNetwork">Host PCI</a></h4>

    <p>
      The <code>hostdev-pci</code> plug type refers to the
      passthrough of a physical PCI device rather than emulation.
    </p>

    <pre>
  ...
  &lt;plug type='hostdev-pci' managed='yes'&gt;
    &lt;driver name='vfio'/&gt;
    &lt;address domain='0x0001' bus='0x02' slot='0x03' function='0x4'/&gt;
  &lt;/plug&gt;
  ...</pre>

    <p>
      The <code>managed</code> attribute indicates who is responsible for
      managing the PCI device in the host. When set to the value <code>yes</code>
      libvirt is responsible for automatically detaching the device from host
      drivers and resetting it if needed. If the value is <code>no</code>,
      some other party must ensure the device is not attached to any
      host drivers.
    </p>

  </body>
</html>