ccsds
ccsds copied to clipboard
[Question/Thoughts] Splitting TX and RX over different CFDP layers
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:
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!