nic_bridge with tap devices under linux_x86
Marcus Nolte
nolte at ...254...
Wed Sep 9 18:02:45 CEST 2015
Hi Genodians,
I would like to test some networking-stuff under linux_x86 and have got
a question concerning the use of the nic_bridge with the linux nic_drv.
My setup is the following:
For testing, I have created two tap devices which are used by two Genode
15.02 instances running on the same linux host.
One instance is hosting a server application, the other the respective
client, both using the lwip socket API.
As long, as I only use the server and the client, everything is fine.
In the next step I added additional components to the configuration
which are also supposed to access the network.
Thus I added the nic_bridge with a configured mac-address as a resource
multiplexer and set the routes accordingly.
The components in question successfully get an ip via dhcp.
However, I do not receive any packets at the other end of the (virtual)
line.
- Infact it seems as if they do not even reach the nic_drv.
When the bridge & nic_drv are initializing, I see the following lines on
the server side (client'ts the same, except, of course, for the ip- and
mac-address):
[init -> nic_drv] --- Linux/tap NIC driver started ---
[init -> nic_drv] Success
[init -> nic_drv] Using tap device "tap1"
[init -> nic_bridge] Invalid session request, no matching policy
[init -> nic_bridge] --- NIC bridge started (mac=02:00:00:00:00:01) ---
[init ->server] got IP address 192.168.56.106
As far as I read it from the mailing list / git commits, the "Invalid
session request" message is not critical, correct?
In a further simplified setup, I am using a single tap device with the
nic driver, which is working flawlessly.
As soon as I add the bridge I notice the same behavior as described above.
In wireshark I saw a series of 3 ARP requests finished with a gratuitous
ARP,if the bridge is not used. - The last one is missing if the bridge
is used.
If I read the code correctly those packets are purposely dropped in the
nic_bridge.
Am I missing / misconfiguring something here?
I would be very glad about a pointer in any direction ;-)
Cheers
Marcus
P.S:
The route for the server looks like this:
<route>
<service name="Nic"> <child name="nic_bridge"/> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
The config file entry for the bridge looks like this:
<start name="nic_bridge">
<resource name="RAM" quantum="4M"/>
<provides><service name="Nic"/></provides>
<route>
<service name="Nic">
<child name="nic_drv"/>
</service>
<any-service> <parent/> <any-child/> </any-service>
</route>
<config mac="02:00:00:00:00:01">
</config>
</start>
--
Marcus Nolte, M. Sc.
Technische Universität Braunschweig
Institut für Regelungstechnik (IfR)
Hans-Sommer-Straße 66
38106 Braunschweig
Tel.: +49 531 391 8066
Fax: +49 531 391 7878
Email: nolte at ...254...
Internet: http://www.ifr.ing.tu-bs.de
More information about the users
mailing list