descriptionMuen SK virtual networking Linux kernel module
ownerReto Buerki
last changeWed, 15 Sep 2021 14:14:36 +0000 (16:14 +0200)



The muennet Linux kernel module implements a virtual network interface driver which sends and receives data via shared memory channels provided by the Muen Separation Kernel.

From a user-space perspective, a network interface created using the muennet kernel module behaves just like an ordinary network interface.


Currently, the following protocols are supported:


The following command inserts the muennet module into the kernel. The module parameters configure the module to create a virtual net0 network interface using channel_in for data input and channel_out for data output. The reader and writer protocols are arbitrary values which must match between communicating endpoints.

$ modprobe muennet    \
    name=net0         \
    reader_protocol=2 \
    writer_protocol=2 \
    in=channel_in     \
    out=channel_out   \

The net_hdr flag is required to send IP traffic over the network interface. It can be omitted if the communicating endpoints apply a custom protocol over raw data.

The eth_dev flag specifies that the network interface implements an ethernet device. This allows users to operate on layer 2 ethernet frames and gives them full control over the ethernet header.

Configure the newly created network interface as usual:

$ ifconfig net0
$ ip route add dev net0

The module parameters accept a list of values in order to create multiple network interfaces with associated settings:

$ modprobe muennet                  \
    name=net0,net1                  \
    reader_protocol=12,2            \
    writer_protocol=8,2             \
    in=testchannel_1,testchannel_3  \
    out=testchannel_2,testchannel_4 \

Use the modinfo command to see all supported module parameters with their explanation.

2021-09-15 Ralf HubertFix kernel warning on tx-only device master
2021-09-08 Adrian-Ken... Validate interface name length
2020-09-23 Adrian-Ken... Use ethtool_{get|set}_link_ksettings API
2020-09-02 Adrian-Ken... Fix checkpatch warnings
2020-09-02 Adrian-Ken... Let add_device return -ENXIO on channel lookup failure
2020-09-02 Adrian-Ken... Fix issues reported by KASAN
2020-04-02 Reto BuerkiAdjustments for sinfo 03
2019-12-20 Adrian-Ken... Add .mod to gitignore
2019-12-12 Adrian-Ken... Switch to https for Muen website URL
2019-12-12 Adrian-Ken... README: Document eth_dev flag
2019-01-31 Reto BuerkiFix module install permissions
2019-01-28 Reto BuerkiAdd .gitignore file
2018-04-04 Reto BuerkiAdd parenthesis to channel writable test
2018-04-03 Reto BuerkiUpdate to new sinfo resource variants API
2017-11-16 Adrian-Ken... Adapt to reworked netdev teardown and release
2017-05-29 Adrian-Ken... Implement ethernet device support
12 days ago child-devices
7 weeks ago misc-minor
2 months ago master
2 months ago eth_dev-tailroom
5 years ago irq
6 years ago napi