[[!meta copyright="Copyright © 2024 Free Software Foundation,
Inc."]]

[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]

[[!tag stable_URL]]

# RumpNet

The Hurd currently uses an old Linux's TCP/IP stack ([[hurd/translator/pfinet]]) and
device drivers. Hurd developers are replacing Linux's old ethernet
drivers with rumpnet's modern ethernet and wifi device drivers.  While
porting Linux's device drivers would provide better hardware support,
we do not have the developer man-power to maintain it.  Hurd
Developers prefer rumpnet's stable API over Linux's code churn.

In 2025, Damien Zammit make significant progress with rumpnet. He
coded rumpnet to work with `/dev/wmX` cards, which are Intel i8254x
Gigabit Ethernet devices. (Documentation is available at
man.netbsd.org's [wm(4)](https://man.netbsd.org/wm.4) web
page). Please note that these are ethernet cards not wifi cards. This
should be easily extended to support other NICs by contributing to
netbsd/rump's makefiles.

Example usage:

    # settrans -fgapc /dev/rumpnet /hurd/rumpnet
    # settrans -fgapc /dev/wm0 /hurd/devnode -M /dev/rumpnet wm0
    # settrans -fgap /servers/socket/2 /hurd/pfinet -i /dev/wm0

In your `/etc/network/interfaces` replace `/dev/eth0` with `/dev/wm0`

    auto /dev/wm0  # this will autostart rumpnet at boot
    iface /dev/wm0 inet dhcp

Now you should be able to manually start rumpnet, and it should autostart at boot!

    # ifup /dev/wm0


# See Also

We hope to replace `pfinet` with [[hurd/translator/lwip]].  Alternatively, we could
use rump's TCP/IP driver.
