<div dir="ltr"><b id="internal-source-marker_0.47260847059078515" style="color:rgb(0,0,0);font-family:'Times New Roman';font-size:medium;font-weight:normal"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">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.</span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span><br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">I have used a Nic interface for internal network drivers and I have implemented two drivers, the first driver has implementation Nic server and the second - Nic client. But I need one L4Linux would have two connection to different Nic session. As I understand it cannot be solved in current Genode implementation. For solve it I have made copy of the nic_session headers with announce Nic2 session name.</span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Part of my config:</span><br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">...</span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><start name="l4linux.1"></span><br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span><binary name="l4linux-srv"/></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span><resource name="RAM" quantum="200M"/></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span><config args="mem=128M console=tty1 console=ttyS0 l4x_rd=rootfs1.cpio.gz l4x_cpus=1 l4x_cpus_map=0"/></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span><provides></span><br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">  </span><span class="" style="white-space:pre">  </span><service name="Nic2"/></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span></provides></span><br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre"> </span><route></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span><span class="" style="white-space:pre">  </span><service name="Input">       <child name="linux.1"/> </service></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span><span class="" style="white-space:pre">  </span><service name="Framebuffer"> <child name="linux.1"/> </service></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span><span class="" style="white-space:pre">  </span><service name="Nic">         <child name="nic_drv.1"/> </service> </span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span><span class="" style="white-space:pre">  </span><any-service> <parent/> <any-child/> </any-service></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span></route></span><br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></start></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><start name="l4linux.2"></span><br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span><binary name="l4linux-clnt"/></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span><resource name="RAM" quantum="200M"/></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span><config args="mem=128M console=tty1 l4x_rd=rootfs2.cpio.gz l4x_cpus=1 l4x_cpus_map=1"/></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span><route></span><br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">     </span><span class="" style="white-space:pre">  </span><service name="Input">       <child name="linux.2"/> </service></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span><span class="" style="white-space:pre">  </span><service name="Framebuffer"> <child name="linux.2"/> </service></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span><span class="" style="white-space:pre">  </span><service name="Nic">         <child name="nic_drv.2"/> </service></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span><span class="" style="white-space:pre">  </span><service name="Nic2">        <child name="l4linux.1"/> </service></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span><span class="" style="white-space:pre">  </span><any-service> <parent/> <any-child/> </any-service></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span class="" style="white-space:pre">      </span></route></span><br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></start></span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">...</span><br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">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:</span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">config: <provides> <service name=”Nic2” base_name=”Nic”/></provides></span><br><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">and source: Nic::Connection nic(“Nic2”);</span><br>
<span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Is it possible? Maybe you have another solution?</span></b><div><font color="#000000" face="Arial"><span style="font-size:15px;white-space:pre-wrap"><br clear="all">
</span></font><div>--<br>Ivan Loskutov<br><br></div>
</div></div>