1=encoding utf8
2
3=head1 NAME
4
5xl-network-configuration - XL Network Configuration Syntax
6
7
8=head1 SYNTAX
9
10This document specifies the xl config file format vif configuration
11option.  It has the following form:
12
13        vif = [ '<vifspec>', '<vifspec>', ... ]
14
15where each vifspec is in this form:
16
17        [<key>=<value>|<flag>,]
18
19For example:
20
21        'mac=00:16:3E:74:3d:76,model=rtl8139,bridge=xenbr0'
22        'mac=00:16:3E:74:34:32'
23        '' # The empty string
24
25These might be specified in the domain config file like this:
26
27        vif = [ 'mac=00:16:3E:74:34:32', 'mac=00:16:3e:5f:48:e4,bridge=xenbr1' ]
28
29More formally, the string is a series of comma-separated keyword/value
30pairs. All keywords are optional.
31
32Each device has a C<DEVID> which is its index within the vif list, starting from 0.
33
34
35=head1 Keywords
36
37
38=head2 mac
39
40If specified then this option specifies the MAC address inside the
41guest of this VIF device. The value is a 48-bit number represented as
42six groups of two hexadecimal digits, separated by colons (:).
43
44The default if this keyword is not specified is to be automatically
45generate a MAC address inside the space assigned to Xen's
46L<Organizationally Unique Identifier|https://en.wikipedia.org/wiki/Organizationally_Unique_Identifier> (00:16:3e).
47
48If you are choosing a MAC address then it is strongly recommend to
49follow one of the following strategies:
50
51=over
52
53=item *
54
55Generate a random sequence of 6 byte, set the locally administered
56bit (bit 2 of the first byte) and clear the multicast bit (bit 1
57of the first byte). In other words the first byte should have the
58bit pattern xxxxxx10 (where x is a randomly generated bit) and the
59remaining 5 bytes are randomly generated See
60[https://en.wikipedia.org/wiki/MAC_address] for more details the
61structure of a MAC address.
62
63
64=item *
65
66Allocate an address from within the space defined by your
67organization's OUI (if you have one) following your organization's
68procedures for doing so.
69
70
71=item *
72
73Allocate an address from within the space defined by Xen's OUI
74(00:16:3e). Taking care not to clash with other users of the
75physical network segment where this VIF will reside.
76
77
78=back
79
80If you have an OUI for your own use then that is the preferred
81strategy. Otherwise in general you should prefer to generate a random
82MAC and set the locally administered bit since this allows for more
83bits of randomness than using the Xen OUI.
84
85
86=head2 bridge
87
88Specifies the name of the network bridge which this VIF should be
89added to. The default is C<xenbr0>. The bridge must be configured using
90your distribution's network configuration tools. See the L<wiki|https://wiki.xenproject.org/wiki/Network_Configuration_Examples_(Xen_4.1%2B)>
91for guidance and examples.
92
93
94=head2 gatewaydev
95
96Specifies the name of the network interface which has an IP and which
97is in the network the VIF should communicate with. This is used in the host
98by the vif-route hotplug script. See L<wiki|https://wiki.xenproject.org/wiki/Vif-route> for guidance and
99examples.
100
101NOTE: netdev is a deprecated alias of this option.
102
103
104=head2 type
105
106This keyword is valid for HVM guests only.
107
108Specifies the type of device to valid values are:
109
110=over
111
112=item *
113
114C<ioemu> (default) -- this device will be provided as an emulate
115device to the guest and also as a paravirtualised device which the
116guest may choose to use instead if it has suitable drivers
117available.
118
119
120=item *
121
122C<vif> -- this device will be provided as a paravirtualised device
123only.
124
125
126=back
127
128
129=head2 model
130
131This keyword is valid for HVM guest devices with C<type=ioemu> only.
132
133Specifies the type device to emulated for this guest. Valid values
134are:
135
136=over
137
138=item *
139
140C<rtl8139> (default) -- Realtek RTL8139
141
142
143=item *
144
145C<e1000> -- Intel E1000
146
147
148=item *
149
150in principle any device supported by your device model
151
152
153=back
154
155
156=head2 vifname
157
158Specifies the backend device name for the virtual device.
159
160If the domain is an HVM domain then the associated emulated (tap)
161device will have a "-emu" suffice added.
162
163The default name for the virtual device is C<vifDOMID.DEVID> where
164C<DOMID> is the guest domain ID and C<DEVID> is the device
165number. Likewise the default tap name is C<vifDOMID.DEVID-emu>.
166
167
168=head2 script
169
170Specifies the hotplug script to run to configure this device (e.g. to
171add it to the relevant bridge). Defaults to
172C<XEN_SCRIPT_DIR/vif-bridge> but can be set to any script. Some example
173scripts are installed in C<XEN_SCRIPT_DIR>.
174
175
176=head2 ip
177
178Specifies the IP address for the device, the default is not to
179specify an IP address.
180
181What, if any, effect this has depends on the hotplug script which is
182configured. A typically behaviour (exhibited by the example hotplug
183scripts) if set might be to configure firewall rules to allow only the
184specified IP address to be used by the guest (blocking all others).
185
186
187=head2 backend
188
189Specifies the backend domain which this device should attach to. This
190defaults to domain 0.  Specifying another domain requires setting up a
191driver domain which is outside the scope of this document.
192
193
194=head2 rate
195
196Specifies the rate at which the outgoing traffic will be limited to.
197The default if this keyword is not specified is unlimited.
198
199The rate may be specified as "/s" or optionally "/s@".
200
201=over
202
203=item *
204
205C<RATE> is in bytes and can accept suffixes:
206
207=over
208
209=item *
210
211GB, MB, KB, B for bytes.
212
213
214=item *
215
216Gb, Mb, Kb, b for bits.
217
218
219=back
220
221
222
223=item *
224
225C<INTERVAL> is in microseconds and can accept suffixes: ms, us, s.
226It determines the frequency at which the vif transmission credit
227is replenished. The default is 50ms.
228
229
230=back
231
232Vif rate limiting is credit-based. It means that for "1MB/s@20ms", the
233available credit will be equivalent of the traffic you would have done
234at "1MB/s" during 20ms. This will results in a credit of 20,000 bytes
235replenished every 20,000 us.
236
237For example:
238
239        'rate=10Mb/s' -- meaning up to 10 megabits every second
240        'rate=250KB/s' -- meaning up to 250 kilobytes every second
241        'rate=1MB/s@20ms' -- meaning 20,000 bytes in every 20 millisecond period
242
243NOTE: The actual underlying limits of rate limiting are dependent
244on the underlying netback implementation.
245
246
247=head2 devid
248
249Specifies the devid manually instead of letting xl choose the lowest index available.
250
251NOTE: This should not be set unless you have a reason to.
252