6 months agoUse ethtool_{get|set}_link_ksettings API master
Adrian-Ken Rueegsegger [Wed, 6 Feb 2019 22:16:13 +0000 (23:16 +0100)]
Use ethtool_{get|set}_link_ksettings API

The ethtool API {get|set}_settings has deprecated in 2016 and was
removed with upstream commit 9b30049.

7 months agoFix checkpatch warnings
Adrian-Ken Rueegsegger [Wed, 2 Sep 2020 15:57:20 +0000 (17:57 +0200)]
Fix checkpatch warnings

- Add SPDX License headers
- Fix comment alignments

7 months agoLet add_device return -ENXIO on channel lookup failure
Adrian-Ken Rueegsegger [Fri, 17 Apr 2020 13:42:23 +0000 (15:42 +0200)]
Let add_device return -ENXIO on channel lookup failure

7 months agoFix issues reported by KASAN
Adrian-Ken Rueegsegger [Tue, 1 Sep 2020 16:47:09 +0000 (18:47 +0200)]
Fix issues reported by KASAN

Set reader stats before handing off skb. The function netif_rx_ni may
deallocate the skb so one cannot access it after the call.

Pad skb up to writer element size if necessary before copying data into
the shared memory channel. This makes sure the eth_hdr length field in
case of eth_dev can be set safely and that no uninitialized data is

12 months agoAdjustments for sinfo 03
Reto Buerki [Thu, 2 Apr 2020 13:16:20 +0000 (15:16 +0200)]
Adjustments for sinfo 03

15 months agoAdd .mod to gitignore
Adrian-Ken Rueegsegger [Fri, 20 Dec 2019 15:59:42 +0000 (16:59 +0100)]
Add .mod to gitignore

15 months agoSwitch to https for Muen website URL
Adrian-Ken Rueegsegger [Thu, 12 Dec 2019 12:55:14 +0000 (13:55 +0100)]
Switch to https for Muen website URL

15 months agoREADME: Document eth_dev flag
Adrian-Ken Rueegsegger [Fri, 8 Nov 2019 16:40:32 +0000 (17:40 +0100)]
README: Document eth_dev flag

2 years agoFix module install permissions
Reto Buerki [Mon, 28 Jan 2019 15:20:08 +0000 (16:20 +0100)]
Fix module install permissions

2 years agoAdd .gitignore file
Reto Buerki [Mon, 28 Jan 2019 15:19:15 +0000 (16:19 +0100)]
Add .gitignore file

3 years agoAdd parenthesis to channel writable test
Reto Buerki [Wed, 4 Apr 2018 10:25:38 +0000 (12:25 +0200)]
Add parenthesis to channel writable test

3 years agoUpdate to new sinfo resource variants API
Reto Buerki [Thu, 22 Mar 2018 10:38:39 +0000 (11:38 +0100)]
Update to new sinfo resource variants API

3 years agoAdapt to reworked netdev teardown and release
Adrian-Ken Rueegsegger [Thu, 16 Nov 2017 10:22:25 +0000 (11:22 +0100)]
Adapt to reworked netdev teardown and release

Upstream commit cf124d... changed the way netdev state is freed upon

3 years agoImplement ethernet device support
Adrian-Ken Rueegsegger [Tue, 28 Feb 2017 22:38:11 +0000 (23:38 +0100)]
Implement ethernet device support

The new module flag 'eth_dev' can be used to specify that the device
implements an ethernet device. This allows users to operate on layer 2
ethernet frames and gives them full control over the ethernet header.

The length of the ethernet packet including the 12-byte header is
appended to the data to enable readers to quickly determine the data
size. Note that the information is not prepended to simplify header
processing by the Linux kernel. The ARP code expects the device to have
a hard_header_length equal to ETH_HLEN.

3 years agoFix checkpatch warnings
Adrian-Ken Rueegsegger [Mon, 29 May 2017 15:36:38 +0000 (17:36 +0200)]
Fix checkpatch warnings

4 years agoRemove NETDEV_TX_LOCKED
Adrian-Ken Rueegsegger [Mon, 6 Mar 2017 15:19:53 +0000 (16:19 +0100)]

The TX_LOCKED return value was removed in upstream commit a6086a8...

5 years agoImplement support for Path MTU Discovery
Stefan Berghofer [Fri, 5 Jun 2015 13:54:32 +0000 (15:54 +0200)]
Implement support for Path MTU Discovery

The module's pmtu parameter allows the specification of input channels
from which discovered Path MTU values are read. If an outgoing packet
exceeds the associated PMTU value, an ICMP Fragmentation Needed (Type 3,
Code 4) message containing the current PMTU value is sent back to update
the path. In case of IPv6, an ICMPv6 Packet Too Big (Type 2) message is

In order for this to work, the outgoing packets must be marked by
Netfilter's nfmark functionality. The configured mark specifies the
index into the PMTU array.

5 years agoreader: Call schedule() between successful reads
Reto Buerki [Fri, 22 May 2015 13:07:23 +0000 (15:07 +0200)]
reader: Call schedule() between successful reads

Allow the kernel to schedule different threads more often. Without this
explicit schedule() call, other networking subsystems might be unable to
handle the workload injected by the reader work function (i.e. the UDP
receive queue drops packets when it is full).

5 years agoreader: Simplify IP handling in work function
Reto Buerki [Fri, 22 May 2015 12:34:57 +0000 (14:34 +0200)]
reader: Simplify IP handling in work function

5 years agoreader: Use switch statement in work function
Reto Buerki [Fri, 22 May 2015 12:04:11 +0000 (14:04 +0200)]
reader: Use switch statement in work function

5 years agoSwitch reader implementation to work queues
Reto Buerki [Wed, 20 May 2015 07:56:33 +0000 (09:56 +0200)]
Switch reader implementation to work queues

Instead of creating an explicit kernel thread, use kernel-global work
queue to schedule reader work. This is in preparation of switching the
driver from polling to interrupt mode.

5 years agoInitial import of the muennet Linux kernel module
Reto Buerki [Thu, 9 Apr 2015 08:44:28 +0000 (10:44 +0200)]
Initial import of the muennet Linux kernel module

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 [1]. See the file for more

[1] -