Repository navigation
Fix repair transmission flagging - #113
Conversation
1f3693d to
3ba247b
Compare
Mark reactive NORM_DATA and NORM_INFO transmissions with FLAG_REPAIR, including fixed-code repairs accepted during sender holdoff. Preserve first-pass and proactive parity semantics across INFO retransmission and object requeue. Add deterministic repair-state, message-generation, and receiver sync-policy coverage.
|
Thanks for the review. Two things...
|
8f4d731
into
USNavalResearchLaboratory:master
|
How would SYNC_REPAIR differ from SYNC_CURRENT .... basically be the same but be more permissive on allowing sync to parity packets and not just packets with user data content? That definitely makes sense for rateless and possibly even the existing FEC codecs when those symbols are not flagged as repair transmissions? I.e., we could just modify the SYNC_CURRENT policy to allow sync on non-flagged parity symbols ... since you added the code that makes that distinction more clear that may make sense versus an additional sync policy? The main intent of that was to limit late joining receivers impact on the session ... the other "rule" for sync current was to allow sync only during the first FEC block and, of course, with rateless that's a different sort of paradigm since generally it will be a single logical "block" ... just thinking out loud here if you have any specific use cases in mind. |
Precisely. I don't have a preference, but I had thought a third sync policy might prevent backwards incompatibilities, however this change in itself already did since prior to it was already behaving that way because the |
Mark reactive NORM_DATA and NORM_INFO transmissions with FLAG_REPAIR, including fixed-code repairs accepted during sender holdoff. Preserve first-pass and proactive parity semantics across INFO retransmission and object requeue. Add deterministic repair-state, message-generation, and receiver sync-policy coverage.
Hello,
This PR fixes an issue where re-transmitted data and metadata packets were not properly flagged as repairs.
What's included
NormObjectMsg::FLAG_REPAIRassignment innormObject.cppand updatedpending_infotransitions so thatNORM_INFOandNORM_DATAmessages properly track when they are reactive repairs.NormBlock::TxUpdate()innormSegment.cppto explicitly mark a block asIN_REPAIRwhenever its repair state increases.tests/normRepairFlagTest.cppto validate block repair states and receiver synchronization policies against flagged messages.Notes
If the fix looks ok, I think this should resolve TODO 0.