Hi Guido,
Am 26. Dezember 2015 14:33:41 MEZ, schrieb Guido Witmond <guido@...231...>:
First I got this error on the console:
Ipxe_session_component::_receive(const char*, unsigned int): failed to process received packet
This was the evil code responsible for that:
repos/dde_ipxe/src/drivers/nic/main.cc:85 } catch (...) { PDBG("failed to process received packet"); }
Disabling that catch-all and running again gave this error:
[init -> nic_drv] Uncaught exception of type 'N6Genode20Packet_stream_sourceINS_20Packet_stream_po17Packet_descriptorELj1024ELj1024EcEEE19Packet_alloc_failedE' [init -> nic_drv] abort called - thread: 'nic_drv_ep'
To me this file is where the error gets thrown but not caught: repos/os/src/server/nic_bridge/packet_handler.cc:121
This is a different component - the nic_bridge. The exception does occur in nic_drv.
It looks to me that the system dies on an unexpected packet from the outside. And I don't want to place a linux based firewall in front of Genode. ;-)
I don't know what you mean by "unexpected" - the nic_drv always expects packets from the ethernet. To forward these packets to its single client, it has to allocate a buffer and a packet descriptor in the incoming packet stream. For some reason this fails, mostly because the client got stuck and does no longer acknowledge incoming packets resulting in failed allocations for further packets.
I've tried to add some code to show details of the packet and why it cannot be allocated. However, I can't get this change to get compiled and build.
Here I'm stuck.
Please help me how can I change the repos/os part and get it to compile. Or with whatever else I'm doing wrong.
Would you mind to share your changes as a Github branch. I can't promise anything because of vacation time but if a have a minute the next days I might have a look.
Greets