This branch contains some changes to allow CLAs to distinguish between transmission and peer failures. It also enables direct sorting of bundles into appropriate per node buffers.
The problem with the original implementation was that bundles would be added to the corresponding per node connection channels in tcpcla. If one bundle fails to transmit because the connection closes, all bundles in queue fail to transmit and register as separate peer failures. This results in immediate removal of the peer even though it has only failed once. Now, a cla can report peer failures itself and check whether the connection has closed or just a single transfer has failed.
This branch contains some changes to allow CLAs to distinguish between transmission and peer failures. It also enables direct sorting of bundles into appropriate per node buffers.
The problem with the original implementation was that bundles would be added to the corresponding per node connection channels in tcpcla. If one bundle fails to transmit because the connection closes, all bundles in queue fail to transmit and register as separate peer failures. This results in immediate removal of the peer even though it has only failed once. Now, a cla can report peer failures itself and check whether the connection has closed or just a single transfer has failed.