[Nfd-dev] Adding a new field into data with help of Tag

Eric Newberry enewberry at email.arizona.edu
Thu Jan 4 18:53:33 PST 2018


I'm at a loss as to an explanation for this. Have you tried doing a 
"./waf distclean" and then rebuilding from scratch, starting with "./waf 
configure"?

Eric


On 01/04/2018 07:47 PM, 小杰许 wrote:
> I use 902 for this field  and I get the same error.
>
>
> 2018-01-05 10:45 GMT+08:00 小杰许 <xujunjie1221 at gmail.com 
> <mailto:xujunjie1221 at gmail.com>>:
>
>     I used these.
>
>     ndn-cxx (0.6.0-20-g82d6a4c)
>
>     NFD(0.6.0-14-g4738f15)
>
>     2018-01-05 10:19 GMT+08:00 Eric Newberry
>     <enewberry at email.arizona.edu <mailto:enewberry at email.arizona.edu>>:
>
>         I believe the 832 TLV-TYPE you used below overlaps with the
>         existing CongestionMark TLV-TYPE (also 832). What release of
>         ndn-cxx and NFD are you modifying? If it's 0.5.1 or later,
>         this field should be present.
>
>         Eric
>
>
>         On 01/04/2018 07:13 PM, 小杰许 wrote:
>>         Thanks for your reply!
>>         Actually, I have done this steps before, but it didn't work
>>         and I still meet the problem.
>>
>>         I modified these files.
>>
>>         A、in ndn-cxx/src/lp
>>         1、fields.hpp
>>         typedef FieldDecl<field_location_tags::Header,
>>                           uint64_t,
>>         tlv::CustomMark> CustomMarkField;
>>         BOOST_CONCEPT_ASSERT((Field<CustomMarkField>));
>>
>>
>>           CustomMarkField,
>>
>>           > FieldSet;
>>
>>         2、tags.hpp
>>         typedef SimpleTag<uint64_t, 0x60000002> CustomMarkTag;
>>
>>         3、tlv.hpp
>>          CustomMark = 832,
>>
>>         B、in ndn-cxx/src
>>         face.cpp
>>         extractLpLocalFields(NetPkt& netPacket, const lp::Packet&
>>         lpPacket)
>>         {
>>           .......
>>         addTagFromField<lp::CustomMarkTag,
>>         lp::CustomMarkField>(netPacket, lpPacket);
>>         }
>>          C、ndn-cxx/src/detail
>>         face-impl.hpp
>>
>>         void
>>           asyncPutData(const Data& data)
>>           {
>>             .........
>>         addFieldFromTag<lp::CongestionMarkField,
>>         lp::CongestionMarkTag>(lpPacket, data);
>>         addFieldFromTag<lp::CustomMarkField,
>>         lp::CustomMarkTag>(lpPacket, data);
>>
>>             .........
>>           }
>>
>>         D、NFD/daemon/face
>>         generic-link-service.cpp
>>
>>         encodeLpFields
>>
>>         void
>>         GenericLinkService::encodeLpFields(const ndn::PacketBase&
>>         netPkt, lp::Packet& lpPacket)
>>         {
>>           ......
>>         shared_ptr<lp::CustomMarkTag> customMarkTag =
>>         netPkt.getTag<lp::CustomMarkTag>();
>>           if (customMarkTag != nullptr) {
>>         lpPacket.add<lp::customMarkField>(*customMarkTag);
>>           }
>>         .....
>>         }
>>
>>         decodeData
>>
>>         void
>>         GenericLinkService::decodeData(const Block& netPkt, const
>>         lp::Packet& firstPkt)
>>         {
>>           ......
>>
>>             if (firstPkt.has<lp::CustomMarkField>()) {
>>         data->setTag(make_shared<lp::CustomMarkTag>(firstPkt.get<lp::CustomMarkField>()));
>>           }
>>
>>          ......
>>         }
>>
>>         That's all I have done. But I still get the error when I
>>         compile NFD. Here is beginning of the error:
>>
>>
>>
>>         Waf: Entering directory `/home/icpclient1/NFD/build'
>>         [ 73/157] Compiling daemon/face/generic-link-service.cpp
>>         In file included from
>>         /usr/local/include/ndn-cxx/lp/packet.hpp:25:0,
>>                          from ../daemon/face/lp-fragmenter.hpp:31,
>>                          from ../daemon/face/generic-link-service.hpp:30,
>>                          from ../daemon/face/generic-link-service.cpp:26:
>>         /usr/local/include/ndn-cxx/lp/fields.hpp:78:19: error:
>>         ‘CustomMark’ is not a member of ‘ndn::lp::tlv’
>>          tlv::CustomMark> CustomMarkField;
>>                            ^
>>         /usr/local/include/ndn-cxx/lp/fields.hpp:78:19: error:
>>         ‘CustomMark’ is not a member of ‘ndn::lp::tlv’
>>         /usr/local/include/ndn-cxx/lp/fields.hpp:78:33: error:
>>         template argument 3 is invalid
>>          tlv::CustomMark> CustomMarkField;
>>
>>         Do I miss  some steps? Can you give me some suggestions? Thanks.
>>
>>         Yours,
>>         Junjie Xu
>>
>>
>>
>>         2018-01-05 3:00 GMT+08:00 Eric Newberry
>>         <enewberry at email.arizona.edu
>>         <mailto:enewberry at email.arizona.edu>>:
>>
>>             Junjie,
>>
>>             In order for the tag to be encoded and decoded properly
>>             by the LinkService, you need to assign it a TLV-TYPE in
>>             ndn-cxx's source file lp/tlv.hpp. For example, the
>>             NextHopFaceId tag has a TLV-TYPE of 816.
>>
>>             Eric
>>
>>
>>             On 01/04/2018 02:40 AM, 小杰许 wrote:
>>>             I meet some problems when I try to add a new field in
>>>             data in NFD-dev by using tags. And I found
>>>             someone have met the same problems before.
>>>
>>>             here is the website of of the problem
>>>             http://www.lists.cs.ucla.edu/pipermail/nfd-dev/2017-August/002611.html
>>>             <http://www.lists.cs.ucla.edu/pipermail/nfd-dev/2017-August/002611.html>
>>>             I follow all the steps above, defined LpHeaderField.
>>>             defined Tag, assigned a tag number, but with
>>>             CacheMarkTag instead. Then I compile ndn-cxx, it works
>>>             well.
>>>             But when I modify my NFD LinkService to encode and
>>>             decode the new tag.
>>>             I get the error "error: ‘XXXTag’ is not a member of
>>>             "ndn::lp::tlv" and other errors. Can you give me some
>>>             advices?
>>>             Looking forward to your reply.
>>>             Yours,
>>>             Junjie Xu
>>>
>>>
>>>             _______________________________________________
>>>             Nfd-dev mailing list
>>>             Nfd-dev at lists.cs.ucla.edu <mailto:Nfd-dev at lists.cs.ucla.edu>
>>>             http://www.lists.cs.ucla.edu/mailman/listinfo/nfd-dev
>>>             <http://www.lists.cs.ucla.edu/mailman/listinfo/nfd-dev>
>>
>>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/nfd-dev/attachments/20180104/fa0c12e4/attachment-0001.html>


More information about the Nfd-dev mailing list