Task #3081
closedTransition ForwarderStatus single packet to GeneralStatus dataset
100%
Description
ForwarderStatus revision 5 changes a single ndn:/localhost/nfd/status
packet to a StatusDataset ndn:/localhost/nfd/status/general
.
To temporarily maintain backwards compatibility, this task is to modify management so that Interest ndn:/localhost/nfd/status
is answered with the first packet of the dataset.
Updated by Junxiao Shi about 9 years ago
This requirement comes from #3027 note-5, and the backwards compatibility needs to stay for one release only.
There is a circular dependency:
- The backwards compatibility needs to stay for one release, which means a release must happen before #3081 changes can be reverted.
- This task is not implementable after #2107, because management dispatcher forbids overlapping handlers. This implies this task must be implemented before #2107 merges, aka " #3081 revert" blocks #2107.
- No release can happen before #3049 is merged (see #3026 note-14).
- #3049 is to be implemented together with #3029 (see #3049 note-4).
- #2107 blocks #3029.
Thus, " #3081 revert" blocks #2107, which blocks #3029+#3049, which blocks any release, which blocks " #3081 revert".
Updated by Junxiao Shi about 9 years ago
- Related to Feature #3027: ForwarderStatus: RouterName added
Updated by Alex Afanasyev about 9 years ago
Even though Dispatcher doesn't allow overlapping handlers, it still can support this. You just need to have a single handler for more general prefix and perform additional logic inside this handler, which is trivial for status dataset without authorization.
Updated by Junxiao Shi about 9 years ago
You just need to have a single handler for more general prefix and perform additional logic inside this handler
Yes this will work temporarily (until a second dataset/command is added).
It's similar to face query operation.
I forgot this option.
Updated by Junxiao Shi about 9 years ago
- Blocked by Task #2107: Refactor management system added
Updated by Junxiao Shi about 9 years ago
- Priority changed from Normal to Low
Despite that RouterName has been reverted, this transition is still necessary, so that we can add more datasets under /localhost/nfd/status
in the future.
Updated by Junxiao Shi about 9 years ago
Currently ForwarderStatus puts multiple elements directly under the Content
of a Data packet.
In #2107, ForwarderStatus publisher is implemented as a StatusDataset, which causes a problem described in #2107 note-40.
The root cause is the lack of an outer element that wraps these elements, which conflicts with this definition in StatusDataset:
Status information of each entity is represented by a TLV block. Those TLV blocks are concatenated into a BLOB.
The temporary fix is commit:ecbf584299f4ae18d412c669874450b5405aaed4 : it parses ForwarderStatus and appends each element individually to the StatusDataset.
This solution can work, but it's ugly.
We should consider changing protocol to add an outer element that wraps those elements, to make implementation easier.
Updated by Junxiao Shi about 9 years ago
20151008 conference call rejects note-7. Alex thinks it's not a valid argument to change protocols for easier implementation.
Prefix changing will still proceed as planned.
In the future, we should consider changing ndn::mgmt::StatusDatasetContext
to better support publishing this.
Updated by Junxiao Shi almost 9 years ago
- Related to Task #3325: Improve FaceDataset and GeneralStatusDataset tests added
Updated by Junxiao Shi almost 9 years ago
- Status changed from New to In Progress
- Assignee set to Junxiao Shi
- Estimated time set to 1.50 h
Updated by Junxiao Shi almost 9 years ago
- Blocks Feature #3379: ForwarderStatus: answer only status/general added
Updated by Junxiao Shi almost 9 years ago
- Status changed from In Progress to Code review
- % Done changed from 0 to 100
Updated by Junxiao Shi almost 9 years ago
- Blocks Feature #3380: nfd-status: treat ForwarderStatus as a dataset added
Updated by Junxiao Shi almost 9 years ago
- Status changed from Code review to Closed