descriptionMuen SK virtual networking Linux kernel module
ownerReto Buerki
last changeWed, 31 Aug 2022 14:10:45 +0000 (16:10 +0200)
readme

Muennet

Introduction

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.

Protocols

Currently, the following protocols are supported:

Usage

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   \
    flags=net_hdr

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 192.168.1.1
$ ip route add 192.168.1.0/24 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 \
    flags=net_hdr,net_hdr

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

shortlog
2022-08-31 Adrian-Ken... Gracefully handle too small tailroom master
2022-03-11 Adrian-Ken... Fix operational state reported by muennet devices
2022-03-10 Adrian-Ken... Fix checkpatch warnings
2022-03-10 Adrian-Ken... Fix operational state reported by muennet devices
2021-12-14 Jakob JuhnkeSupport IRQ-based reception and transmission of packets
2021-12-09 Adrian-Ken... Support for muennet child devices
2021-12-09 Adrian-Ken... Add comment regarding child & PMTU elements relation
2021-12-09 Adrian-Ken... Alignment/indentation fixes
2021-12-09 Adrian-Ken... Make functions & const vars static where possible
2021-12-09 Adrian-Ken... Add muennet_cfg to .gitignore
2021-12-09 Adrian-Ken... Provide additional Makefile targets for tool
2021-12-09 Adrian-Ken... Add description of child device support
2021-12-09 Adrian-Ken... Add copyright to muennet_cfg tool
2021-12-09 Adrian-Ken... Add qos to struct net_hdr
2021-12-09 Adrian-Ken... Rename/shorten children_elements to child_elements
2021-12-09 Adrian-Ken... Use existing max_t() macro
...
heads
3 weeks ago master
3 weeks ago eth_dev-tailroom
6 years ago irq
7 years ago napi