Project

General

Profile

Actions

Feature #3296

closed

IncomingFaceId, NextHopFaceId, CachePolicy as tags

Added by Junxiao Shi over 8 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Base
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
3.00 h

Description

Change IncomingFaceId, NextHopFaceId, CachePolicy into tags that can be attached onto a TagHost.

Deprecate LocalControlHeader type.

Make LocalControlHeader getter and setter manipulate the corresponding tags on the Interest or Data.

This issue includes changing all LocalControlHeader usages within ndn-cxx.

Since the change is backwards-compatible, this issue does not change LocalControlHeader usages in other projects.


Related issues 2 (0 open2 closed)

Blocks NFD - Task #3339: Use IncomingFaceId, NextHopFaceId, CachePolicy tagsClosedJunxiao Shi

Actions
Blocks ndn-cxx - Feature #3755: Delete deprecated LocalControlHeader façadeClosedJunxiao Shi

Actions
Actions #1

Updated by Junxiao Shi over 8 years ago

Alex approves this feature at 20151103 conference call.

Actions #2

Updated by Junxiao Shi over 8 years ago

  • Status changed from New to In Progress
  • Assignee set to Junxiao Shi
Actions #3

Updated by Junxiao Shi over 8 years ago

  • % Done changed from 0 to 70
Actions #4

Updated by Junxiao Shi over 8 years ago

  • Status changed from In Progress to Code review
  • % Done changed from 70 to 100

http://gerrit.named-data.net/2589

When LocalControlHeader backwards-compatibility is disabled: https://travis-ci.org/yoursunny/ndn-cxx-breaks/builds/90981532

NFD is affected, and will be fixed in #3339.

Other projects are unaffected.

Actions #5

Updated by Junxiao Shi over 8 years ago

  • Blocks Task #3339: Use IncomingFaceId, NextHopFaceId, CachePolicy tags added
Actions #6

Updated by Junxiao Shi over 8 years ago

It appears that NFD build is still failing even if backwards-compatibility is enabled.
https://travis-ci.org/yoursunny/ndn-cxx-breaks/builds/90984603

The build failure is caused by NFD assuming <ndn-cxx/management/nfd-local-control-header.hpp> includes some other headers, but they are no longer included now.

One choice is to add these includes back into <ndn-cxx/management/nfd-local-control-header.hpp> even if they are not being used by that header.

The other choice is to keep ndn-cxx change intact but start working on #3339, because what other headers <ndn-cxx/management/nfd-local-control-header.hpp> includes is not part of ndn-cxx public API.

I'm unsure which choice is better.

Actions #7

Updated by Alex Afanasyev over 8 years ago

Let's work on #3339 right away.

Actions #8

Updated by Junxiao Shi over 8 years ago

Since NFD is the only affected project and will be fixed right away, shall I put on DEPRECATED macro right now, or even delete LocalControlHeader altogether?

My opinion is to put DEPRECATED, but not delete (I have a program that uses LocalControlHeader API, so others may have as well).

Actions #9

Updated by Davide Pesavento over 8 years ago

Junxiao Shi wrote:

It appears that NFD build is still failing even if backwards-compatibility is enabled.
https://travis-ci.org/yoursunny/ndn-cxx-breaks/builds/90984603

The build failure is caused by NFD assuming <ndn-cxx/management/nfd-local-control-header.hpp> includes some other headers, but they are no longer included now.

This clearly shows the danger of relying on transitive include dependencies (on library headers; intra-application transitive deps are usually fine). I think I already argued in the past that we should not rely on this, it's basically the same thing as using undocumented or private APIs.

One choice is to add these includes back into <ndn-cxx/management/nfd-local-control-header.hpp> even if they are not being used by that header.

The other choice is to keep ndn-cxx change intact but start working on #3339, because what other headers <ndn-cxx/management/nfd-local-control-header.hpp> includes is not part of ndn-cxx public API.

I agree with Alex on this.

My opinion is to put DEPRECATED, but not delete (I have a program that uses LocalControlHeader API, so others may have as well).

This sounds like the safest option, but I'm fine either way.

Actions #10

Updated by Junxiao Shi over 8 years ago

Actions #11

Updated by Junxiao Shi over 8 years ago

Deprecation notice is sent to ndn-lib nfd-dev.

No further waiting is necessary because the Change is backwards-compatible (unless a project is relying on undocumented API such as transitive include dependencies, which is unsupported).

Actions #12

Updated by Junxiao Shi over 8 years ago

  • Status changed from Code review to Closed
Actions #13

Updated by Junxiao Shi over 7 years ago

  • Blocks Feature #3755: Delete deprecated LocalControlHeader façade added
Actions

Also available in: Atom PDF