Skip to content

Commit 65eaac5

Browse files
btw616jmberg-intel
authored andcommitted
um: Remove obsolete legacy network transports
These legacy network transports were marked as obsolete in commit 40814b9 ("um: Mark non-vector net transports as obsolete"). More than five years have passed since then. Remove these network transports to reduce the maintenance burden. Suggested-by: Anton Ivanov <[email protected]> Signed-off-by: Tiwei Bie <[email protected]> Acked-By: Anton Ivanov <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Johannes Berg <[email protected]>
1 parent 304c9f7 commit 65eaac5

32 files changed

+4
-2757
lines changed

Documentation/virt/uml/user_mode_linux_howto_v2.rst

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -219,44 +219,23 @@ remote UML and other VM instances.
219219
+-----------+--------+------------------------------------+------------+
220220
| vde | vector | dep. on VDE VPN: Virt.Net Locator | varies |
221221
+-----------+--------+------------------------------------+------------+
222-
| tuntap | legacy | none | ~ 500Mbit |
223-
+-----------+--------+------------------------------------+------------+
224-
| daemon | legacy | none | ~ 450Mbit |
225-
+-----------+--------+------------------------------------+------------+
226-
| socket | legacy | none | ~ 450Mbit |
227-
+-----------+--------+------------------------------------+------------+
228-
| ethertap | legacy | obsolete | ~ 500Mbit |
229-
+-----------+--------+------------------------------------+------------+
230-
| vde | legacy | obsolete | ~ 500Mbit |
231-
+-----------+--------+------------------------------------+------------+
232222

233223
* All transports which have tso and checksum offloads can deliver speeds
234224
approaching 10G on TCP streams.
235225

236226
* All transports which have multi-packet rx and/or tx can deliver pps
237227
rates of up to 1Mps or more.
238228

239-
* All legacy transports are generally limited to ~600-700MBit and 0.05Mps.
240-
241229
* GRE and L2TPv3 allow connections to all of: local machine, remote
242230
machines, remote network devices and remote UML instances.
243231

244-
* Socket allows connections only between UML instances.
245-
246-
* Daemon and bess require running a local switch. This switch may be
247-
connected to the host as well.
248-
249232

250233
Network configuration privileges
251234
================================
252235

253236
The majority of the supported networking modes need ``root`` privileges.
254-
For example, in the legacy tuntap networking mode, users were required
255-
to be part of the group associated with the tunnel device.
256-
257-
For newer network drivers like the vector transports, ``root`` privilege
258-
is required to fire an ioctl to setup the tun interface and/or use
259-
raw sockets where needed.
237+
For example, for vector transports, ``root`` privilege is required to fire
238+
an ioctl to setup the tun interface and/or use raw sockets where needed.
260239

261240
This can be achieved by granting the user a particular capability instead
262241
of running UML as root. In case of vector transport, a user can add the
@@ -610,12 +589,6 @@ connect to a local area cloud (all the UML nodes using the same
610589
multicast address running on hosts in the same multicast domain (LAN)
611590
will be automagically connected together to a virtual LAN.
612591

613-
Configuring Legacy transports
614-
=============================
615-
616-
Legacy transports are now considered obsolete. Please use the vector
617-
versions.
618-
619592
***********
620593
Running UML
621594
***********

arch/um/configs/i386_defconfig

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,6 @@ CONFIG_UNIX=y
5353
CONFIG_INET=y
5454
# CONFIG_IPV6 is not set
5555
CONFIG_UML_NET=y
56-
CONFIG_UML_NET_ETHERTAP=y
57-
CONFIG_UML_NET_TUNTAP=y
58-
CONFIG_UML_NET_SLIP=y
59-
CONFIG_UML_NET_DAEMON=y
60-
CONFIG_UML_NET_MCAST=y
61-
CONFIG_UML_NET_SLIRP=y
6256
CONFIG_EXT4_FS=y
6357
CONFIG_QUOTA=y
6458
CONFIG_AUTOFS_FS=m

arch/um/configs/x86_64_defconfig

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,6 @@ CONFIG_UNIX=y
5252
CONFIG_INET=y
5353
# CONFIG_IPV6 is not set
5454
CONFIG_UML_NET=y
55-
CONFIG_UML_NET_ETHERTAP=y
56-
CONFIG_UML_NET_TUNTAP=y
57-
CONFIG_UML_NET_SLIP=y
58-
CONFIG_UML_NET_DAEMON=y
59-
CONFIG_UML_NET_MCAST=y
60-
CONFIG_UML_NET_SLIRP=y
6155
CONFIG_EXT4_FS=y
6256
CONFIG_QUOTA=y
6357
CONFIG_AUTOFS_FS=m

arch/um/drivers/Kconfig

Lines changed: 0 additions & 170 deletions
Original file line numberDiff line numberDiff line change
@@ -143,99 +143,6 @@ config UML_NET
143143
enable at least one of the following transport options to actually
144144
make use of UML networking.
145145

146-
config UML_NET_ETHERTAP
147-
bool "Ethertap transport (obsolete)"
148-
depends on UML_NET
149-
help
150-
The Ethertap User-Mode Linux network transport allows a single
151-
running UML to exchange packets with its host over one of the
152-
host's Ethertap devices, such as /dev/tap0. Additional running
153-
UMLs can use additional Ethertap devices, one per running UML.
154-
While the UML believes it's on a (multi-device, broadcast) virtual
155-
Ethernet network, it's in fact communicating over a point-to-point
156-
link with the host.
157-
158-
To use this, your host kernel must have support for Ethertap
159-
devices. Also, if your host kernel is 2.4.x, it must have
160-
CONFIG_NETLINK_DEV configured as Y or M.
161-
162-
For more information, see
163-
<http://user-mode-linux.sourceforge.net/old/networking.html> That site
164-
has examples of the UML command line to use to enable Ethertap
165-
networking.
166-
167-
NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
168-
migrate to UML_NET_VECTOR.
169-
170-
If unsure, say N.
171-
172-
config UML_NET_TUNTAP
173-
bool "TUN/TAP transport (obsolete)"
174-
depends on UML_NET
175-
help
176-
The UML TUN/TAP network transport allows a UML instance to exchange
177-
packets with the host over a TUN/TAP device. This option will only
178-
work with a 2.4 host, unless you've applied the TUN/TAP patch to
179-
your 2.2 host kernel.
180-
181-
To use this transport, your host kernel must have support for TUN/TAP
182-
devices, either built-in or as a module.
183-
184-
NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
185-
migrate to UML_NET_VECTOR.
186-
187-
If unsure, say N.
188-
189-
config UML_NET_SLIP
190-
bool "SLIP transport (obsolete)"
191-
depends on UML_NET
192-
help
193-
The slip User-Mode Linux network transport allows a running UML to
194-
network with its host over a point-to-point link. Unlike Ethertap,
195-
which can carry any Ethernet frame (and hence even non-IP packets),
196-
the slip transport can only carry IP packets.
197-
198-
To use this, your host must support slip devices.
199-
200-
For more information, see
201-
<http://user-mode-linux.sourceforge.net/old/networking.html>.
202-
has examples of the UML command line to use to enable slip
203-
networking, and details of a few quirks with it.
204-
205-
NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
206-
migrate to UML_NET_VECTOR.
207-
208-
If unsure, say N.
209-
210-
config UML_NET_DAEMON
211-
bool "Daemon transport (obsolete)"
212-
depends on UML_NET
213-
help
214-
This User-Mode Linux network transport allows one or more running
215-
UMLs on a single host to communicate with each other, but not to
216-
the host.
217-
218-
To use this form of networking, you'll need to run the UML
219-
networking daemon on the host.
220-
221-
For more information, see
222-
<http://user-mode-linux.sourceforge.net/old/networking.html> That site
223-
has examples of the UML command line to use to enable Daemon
224-
networking.
225-
226-
NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
227-
migrate to UML_NET_VECTOR.
228-
229-
If unsure, say N.
230-
231-
config UML_NET_DAEMON_DEFAULT_SOCK
232-
string "Default socket for daemon transport"
233-
default "/tmp/uml.ctl"
234-
depends on UML_NET_DAEMON
235-
help
236-
This option allows setting the default socket for the daemon
237-
transport, normally it defaults to /tmp/uml.ctl.
238-
239146
config UML_NET_VECTOR
240147
bool "Vector I/O high performance network devices"
241148
depends on UML_NET
@@ -248,83 +155,6 @@ config UML_NET_VECTOR
248155
with up to 4 times higher network throughput than the UML network
249156
drivers.
250157

251-
config UML_NET_VDE
252-
bool "VDE transport (obsolete)"
253-
depends on UML_NET
254-
depends on !MODVERSIONS
255-
select MAY_HAVE_RUNTIME_DEPS
256-
help
257-
This User-Mode Linux network transport allows one or more running
258-
UMLs on a single host to communicate with each other and also
259-
with the rest of the world using Virtual Distributed Ethernet,
260-
an improved fork of uml_switch.
261-
262-
You must have libvdeplug installed in order to build the vde
263-
transport into UML.
264-
265-
To use this form of networking, you will need to run vde_switch
266-
on the host.
267-
268-
For more information, see <http://wiki.virtualsquare.org/>
269-
That site has a good overview of what VDE is and also examples
270-
of the UML command line to use to enable VDE networking.
271-
272-
NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
273-
migrate to UML_NET_VECTOR.
274-
275-
If unsure, say N.
276-
277-
config UML_NET_MCAST
278-
bool "Multicast transport (obsolete)"
279-
depends on UML_NET
280-
help
281-
This Multicast User-Mode Linux network transport allows multiple
282-
UMLs (even ones running on different host machines!) to talk to
283-
each other over a virtual ethernet network. However, it requires
284-
at least one UML with one of the other transports to act as a
285-
bridge if any of them need to be able to talk to their hosts or any
286-
other IP machines.
287-
288-
To use this, your host kernel(s) must support IP Multicasting.
289-
290-
For more information, see
291-
<http://user-mode-linux.sourceforge.net/old/networking.html> That site
292-
has examples of the UML command line to use to enable Multicast
293-
networking, and notes about the security of this approach.
294-
295-
NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
296-
migrate to UML_NET_VECTOR.
297-
298-
If unsure, say N.
299-
300-
config UML_NET_SLIRP
301-
bool "SLiRP transport (obsolete)"
302-
depends on UML_NET
303-
help
304-
The SLiRP User-Mode Linux network transport allows a running UML
305-
to network by invoking a program that can handle SLIP encapsulated
306-
packets. This is commonly (but not limited to) the application
307-
known as SLiRP, a program that can re-socket IP packets back onto
308-
he host on which it is run. Only IP packets are supported,
309-
unlike other network transports that can handle all Ethernet
310-
frames. In general, slirp allows the UML the same IP connectivity
311-
to the outside world that the host user is permitted, and unlike
312-
other transports, SLiRP works without the need of root level
313-
privileges, setuid binaries, or SLIP devices on the host. This
314-
also means not every type of connection is possible, but most
315-
situations can be accommodated with carefully crafted slirp
316-
commands that can be passed along as part of the network device's
317-
setup string. The effect of this transport on the UML is similar
318-
that of a host behind a firewall that masquerades all network
319-
connections passing through it (but is less secure).
320-
321-
NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
322-
migrate to UML_NET_VECTOR.
323-
324-
If unsure, say N.
325-
326-
Startup example: "eth0=slirp,FE:FD:01:02:03:04,/usr/local/bin/slirp"
327-
328158
endmenu
329159

330160
config VIRTIO_UML

arch/um/drivers/Makefile

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,7 @@
66
# pcap is broken in 2.5 because kbuild doesn't allow pcap.a to be linked
77
# in to pcap.o
88

9-
slip-objs := slip_kern.o slip_user.o
10-
slirp-objs := slirp_kern.o slirp_user.o
11-
daemon-objs := daemon_kern.o daemon_user.o
129
vector-objs := vector_kern.o vector_user.o vector_transports.o
13-
umcast-objs := umcast_kern.o umcast_user.o
1410
net-objs := net_kern.o net_user.o
1511
mconsole-objs := mconsole_kern.o mconsole_user.o
1612
hostaudio-objs := hostaudio_kern.o
@@ -21,13 +17,6 @@ harddog-builtin-$(CONFIG_UML_WATCHDOG) := harddog_user.o harddog_user_exp.o
2117
rtc-objs := rtc_kern.o rtc_user.o
2218
vfio_uml-objs := vfio_kern.o vfio_user.o
2319

24-
LDFLAGS_vde.o = $(shell $(CC) $(CFLAGS) -print-file-name=libvdeplug.a)
25-
26-
targets := vde_kern.o vde_user.o
27-
28-
$(obj)/vde.o: $(obj)/vde_kern.o $(obj)/vde_user.o
29-
$(LD) -r -dp -o $@ $^ $(ld_flags)
30-
3120
#XXX: The call below does not work because the flags are added before the
3221
# object name, so nothing from the library gets linked.
3322
#$(call if_changed,ld)
@@ -39,12 +28,7 @@ obj-y := stdio_console.o fd.o chan_kern.o chan_user.o line.o
3928
obj-$(CONFIG_SSL) += ssl.o
4029
obj-$(CONFIG_STDERR_CONSOLE) += stderr_console.o
4130

42-
obj-$(CONFIG_UML_NET_SLIP) += slip.o slip_common.o
43-
obj-$(CONFIG_UML_NET_SLIRP) += slirp.o slip_common.o
44-
obj-$(CONFIG_UML_NET_DAEMON) += daemon.o
4531
obj-$(CONFIG_UML_NET_VECTOR) += vector.o
46-
obj-$(CONFIG_UML_NET_VDE) += vde.o
47-
obj-$(CONFIG_UML_NET_MCAST) += umcast.o
4832
obj-$(CONFIG_UML_NET) += net.o
4933
obj-$(CONFIG_MCONSOLE) += mconsole.o
5034
obj-$(CONFIG_MMAPPER) += mmapper_kern.o
@@ -66,7 +50,7 @@ obj-$(CONFIG_UML_PCI_OVER_VIRTIO) += virtio_pcidev.o
6650
obj-$(CONFIG_UML_PCI_OVER_VFIO) += vfio_uml.o
6751

6852
# pcap_user.o must be added explicitly.
69-
USER_OBJS := fd.o null.o pty.o tty.o xterm.o slip_common.o vde_user.o vector_user.o
53+
USER_OBJS := fd.o null.o pty.o tty.o xterm.o vector_user.o
7054
CFLAGS_null.o = -DDEV_NULL=$(DEV_NULL_PATH)
7155

7256
CFLAGS_xterm.o += '-DCONFIG_XTERM_CHAN_DEFAULT_EMULATOR="$(CONFIG_XTERM_CHAN_DEFAULT_EMULATOR)"'

arch/um/drivers/daemon.h

Lines changed: 0 additions & 29 deletions
This file was deleted.

0 commit comments

Comments
 (0)