Hello Norman,

> 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:
>  http://genode.org/documentation/release-notes/11.11#Stub-driver_support
>
> 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.

Thank you for reference. I think '<if-arg>' mechanism is the good solution and it can be solve my issue. I'll try to implement it today.


> 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).

Yes, I have implemented selecting NIC device by driver <config>.
 
> 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
> driver?

I have tried ACPI driver, but it didn't work in qemu and on my test PC.

--
Ivan Loskutov



2013/1/28 Norman Feske <norman.feske@...1...>
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:

  http://genode.org/documentation/release-notes/11.11#Stub-driver_support

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:


https://github.com/genodelabs/genode/commit/277af913765f7e82b0f2a236e6b390ba4f450b6c

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
driver?

> ...
> 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?

Cheers
Norman

--
Dr.-Ing. Norman Feske
Genode Labs

http://www.genode-labs.com · http://genode.org

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

------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
_______________________________________________
Genode-main mailing list
Genode-main@...12...ceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main