ccsds icon indicating copy to clipboard operation
ccsds copied to clipboard

[Question/Thoughts] Splitting TX and RX over different CFDP layers

Open markjohndoyle opened this issue 9 months ago • 4 comments

Hey Dario,

I was looking into splitting TX and RX over different CFDP layers. Looking through the code, nothing jumped out that would suggest this wouldn't work and the good news is that it does work fine! Hopefully, this explains it: image

However, I did have to perform what you might call a little hack, that is, setting the intial availability of the layers for rx and tx on both layers. So even though one layer was only used the tx it need to be flagged available for rx and vice versa for the receiving layer.

This raises the question, is this an abuse of the standard or is it just a little quirk of the lib when creating transactions? The CfdpTransaction will check it's own rxAllowed/txAllowed flags (isFrozen) so I think these can be set independently after the transaction is created. This means it might just be the fact the library constructs the outgoing (or incoming) transaction using the current availability of only the layer specified by the remote see here

In a split layer scenario with an outgoing transaction there isn't an obvious way to link the rx layer availability to the transaction because there is no way for the local entity to know what layer the remote entity will use to respond. Maybe it can just check if any "local" layer is available for rx on that target remote?

Hope that makse sense!

markjohndoyle avatar May 17 '24 13:05 markjohndoyle