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.There is currently no support for more than one NIC. In the presence of
> 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.
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?
> Is it possible? Maybe you have another solution?*
> ...
> 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”);
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