gmardiansyah / cubesat-space-protocol

Automatically exported from code.google.com/p/cubesat-space-protocol
0 stars 0 forks source link

Enhance the router core #9

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Currently the router supports serving only one connection at a time. In
order to increase performance, a little delay is inserted waiting for more
traffic on that connection before closing it and moving on to the next
connection. However this also has disadvantages.

This can be greatly improved by removing the "fallback_socket" and using a
single "fallback_queue" instead. A consequence is that a lot of opening and
closing of unnecessary connections is avoided, cpu power is saved and a
race condition is removed! This may however be a big problems for some
Layer 2 drivers that require a connection structure to be present in order
to use csp_conn_find to match a packet-fragment to the correct data-buffer.
(this is only csp_if_can). - Since this optimization is so important, a
workaround must be invented where a connection can still be returned from
csp_route in some conditions. - Or better still, the driver will do it's
own buffer pool search for fragments and only call csp_packet_new when a
full csp_packet_t has been received.

The requirement is a rewrite of csp_router.c, and the fact that ALL
csp_packet_t structures MUST have the outgoing csp_id_t attached before
calling csp_packet_new!

Original issue reported on code.google.com by johan.de...@gmail.com on 1 May 2010 at 12:30

GoogleCodeExporter commented 8 years ago
This issue was closed by revision r17.

Original comment by johan.de...@gmail.com on 6 May 2010 at 8:25