Hi,
On Wed Jun 11, 2014 at 00:16:47 +0200, cem akpolat wrote:
As far as I tested, l4smnet.c file establishes a communication channel between client ann server l4linux and I asked couple of weeks ago about the posibility of multiple clients and one server example and Adam recommended me to use one of the l4linux, in this case server, as a router. That is exactly the way that I am following. For this reason, I tried first of all a simple example: one server two clients with two different shm. Interestingly, I couldn't see the second client. I couldn't evaluate whether this trial was logical or not, but if this works for one of the clients why not for the second?
So I understand that you configured one L4Linux with two l4shmnet network interfaces and one of those two did not work? Hard to tell for me what's wrong without more info.
Apart from this case, I attempt to convert l4shmnet from two l4linux to multiple case, but this is really not easy. I tried one shared memory first of all, modifying some parts of the code is quite difficult, you can easily encounter a failure such as page_fault. That's why I did two shared memory as mentioned above. My simple question, which way is really more logical, 1- using one shared memory for all clients and server or 2- multiple shared memory for each separate client. Is there any document or source snippet that I can to use a similar structure in l4re. shm code is already here, but it doesn't really give insight into this part.
I think there's no need to change anything in the Linux driver (except bugs of course). For each connection (between two Linuxes) there's a separate shared memory and one Linux can be configured to pass packets between its interfaces. Now doing it like a switch would require a separate component where all Linuxes talk it and the component copies the packets accordingly.
Adam