Contents

Overview

In L4-based systems it is quite common to have multiple applications trying to use the same resource in parallel. One might for instance imagine a setup where multiple L4Linux servers run and try to use the computer's physical network interface. In such cases, the physical resource needs to be multiplexed (or virtualized in new-age termini).

ORe (short for Oshkosh Resurrection) is a best-effort ethernet multiplexer for L4. It provides an abstract send/receive interface for network packets and makes sure that every client gets only those packets it wants to receive. This is achieved by assigning each client a virtual MAC address and filtering packets accordingly.

Running ORe

Arping client

The most fundamental ORe example is a client listening for and replying to ARP-based ping packets (such as those sent by the arping tool). To do so in Qemu, you need a menu.lst such as this:

image.iso is the image containing your L4 binaries, the net options say that we want to emulate a RealTek RTL8139 network card and connect it to VLAN0, which is also connected to the TAP device. Qemu starts running and we get some output, in the end the arping client comes up:

The initial messages from ORe show devices being initialized (loopback lo and the NIC eth0). Arping then finds the ORe server and establishes a connection. The interesting part is the bold one - ORe assigns arping a pseudo-MAC-address 04:EA:43:01:96:09 - this is the one we are going to use now. In another shell, we start arping and tell it to use the tap interface tap0 to ping above MAC: