Change of session name at runtime

Norman Feske norman.feske at ...1...
Mon Jan 28 15:46:02 CET 2013

Hi Ivan,

have you had a look at conditional session routes using '<if-args>'?
Admittedly, it is not very well documented. Let's have a look at the the
example given here:

In this example, one instance of L4Linux uses two block sessions that
should be routed to different servers. Using the '<if-arg>' node, the
routing is made depending on the label of the session ("l4android ->
sda" versus "l4android -> sdb"). L4Linux just passes the label "sda" or
"sdb" as argument to the 'Block::Connection' constructor. Couldn't a
similar scheme work also for routing multiple Nic sessions to different
Nic services? If you think so, we could add a label constructor argument
to 'Nic::Connection', too.

Heads-up warning: Recently, I slightly changed the label matching
implementation of the '<if-arg>' mechanism. See here:

So with the new version, the matching string would be just "sda" instead
of "l4andriod -> sda".

> *I’m trying to implement virtual network between two instances of the
> L4Linux. Moreover, each L4Linux has access to own ethernet controller.
> Genode hasn’t support two NIC drivers yet. It not work because each NIC try
> to use one IRQ and interrupt handler doesn't work correct. It can be solved
> by remapping PCI interrupts. The interrupt handler was temporarily moved to
> PCI driver. But it isn’t a good solution.

There is currently no support for more than one NIC. In the presence of
multiple networking adapters, we need a way to tell the driver, which
NIC to use (e.g., using <config> parameters).

I wonder about your IRQ problems. Having multiple devices to share one
IRQ is expected to work. Maybe, your IRQ issues stem from a missing ACPI

> ...
> I think it would be nice to have session name can be changed in the config
> like binary executable name and session name for connection can be
> specified at runtime. This may look like:
> config: <provides> <service name=”Nic2” base_name=”Nic”/></provides>
> and source: Nic::Connection nic(“Nic2”);
> Is it possible? Maybe you have another solution?*

I would appreciate your feedback on how the '<if-arg>' mechanism works
for you. At the first glance, I looks simpler than the introduction of
aliases for service names. What do you think?


Dr.-Ing. Norman Feske
Genode Labs ·

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth

More information about the users mailing list