Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fragmentation #100

Open
wants to merge 26 commits into
base: master
Choose a base branch
from
Open

Fragmentation #100

wants to merge 26 commits into from

Conversation

pnunes30
Copy link
Collaborator

@pnunes30 pnunes30 commented Mar 3, 2021

This PR provides an implementation proposal regarding the new fragmentation feature explained in the PAG mailing list.
As a preliminary, this PR comes with a series of different fixes.

Some of them are coming from our porting of the D7A stack to RIOT.
Thus, the patch fb4ea08 "d7a: registration is only possible when the stack is completely initialized" turned out to be necessary when we operate in a multi-thread RTOS (eg RIOT) where the D7A stack is initialized independently to the client application.

One fix deserves a special attention since it may be CORTUS specific:
68f2e45 fix Cortus build due to missing symbol regarding the d7ap_fs buffers
At least with the CORTUS toolchain, we have to reorder the libraries during the link. To be checked with the other platforms.

Feel free to review them and to cherry-pick them to master independently to the fragmentation feature.

This PR introduces also some missing aspects of the D7A spec, like the retry counter per request, the Execution Delay Timeout (Te)...

This PR has been tested in the case where all fragments are successfully received. The retry mechanism based on the ACK bitmap still requires to be tested.
Meanwhile, I propose this PR for review.
Thanks!

pnunes30 added 26 commits March 3, 2021 10:43
The Attribute used is not sufficient to force the compiler to emit
symbol for the d7ap_fs buffers. We need to modify the libraries build ordering
Transport layer needs to be informed that the transaction is terminated.
FS initialisation can be done by the alp_layer_init function.
But this obliges to start with ALP initilisation prior to the
initilisation of the stack D7A.
However, D7A stack relies on the D7A FS, and not necessarily on ALP.
Thus, it is more safe to invoke explicitely the FS initialisation
in the bootstrap prior to the D7A init.
current_tl_received is renitialised when dialog is terminated.
If not reinitialised, the automation scan can't be restarted after a
master session is terminated.
This feature is only applicable when sending a long request or
when receiving an unsollicited request (not for response).
One request is handled per fragmentation session.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant