[Ndn-interest] NDNLPv2: create lp::packet and add content

Adhy Satya adhysatya820 at gmail.com
Fri Jul 21 13:39:47 PDT 2017


Just an update:
I was able to create a new field in the NDNLP packet.

I changed the following files:
"ndn-cxx/src/lp/fields.hpp"

    typedef detail::FieldDecl<field_location_tags::Header,
                                            uint64_t,
                                            tlv::CustomTag> CustomTagField;
    BOOST_CONCEPT_ASSERT((Field<CustomTagField>));

    CustomTagField
     > FieldSet;


"ndn-cxx/src/lp/tags.hpp"

typedef SimpleTag<uint64_t, 0x60000001> CustomTag;


"ndn-cxx/src/lp/tlv.hpp"

CustomTag= 901

compiled with ./waf

"NFD/daemon/face/generic-link-service.cpp"

void
GenericLinkService::encodeLocalFields(const ndn::TagHost& netPkt,
lp::Packet& lpPacket)
{
  shared_ptr<lp::IncomingFaceIdTag> incomingFaceIdTag =
netPkt.getTag<lp::IncomingFaceIdTag>();
  if (incomingFaceIdTag != nullptr) {
    lpPacket.add<lp::IncomingFaceIdField>(*incomingFaceIdTag);
  }

  shared_ptr<lp::CustomTag> customTag = netPkt.getTag<lp::CustomTag>();
  if (customTag != nullptr) {
    lpPacket.add<lp::CustomTagField>(*customTag);
  }
}


compiled with ./waf

"ndn-cxx/examples/consumer.cpp"

    // Insert Packet Tag
    interest.setTag(std::make_shared<lp::CustomTag>(54321));
    std::cout << "Tag value: " << interest.getTag<lp::CustomTag>() <<
std::endl;

    m_face.expressInterest(interest,
                           bind(&Consumer::onData, this,  _1, _2),
                           bind(&Consumer::onTimeout, this, _1));


and finally, on the producer app
"ndn-cxx/examples/producer.cpp"

onInterest(const InterestFilter& filter, const Interest& interest)
  {
    std::cout << "<< I: " << interest << std::endl;

    // Read Packet Tag
    std::shared_ptr<lp::CustomTag> tag = interest.getTag<lp::CustomTag>();
    std::cerr << "Tag from Consumer: " << tag << std::endl;


compiled with ./waf
and ran the applications, but the tag doesn't arrive at the producer:

<< I:
/example/testApp/randomData?ndn.MustBeFresh=1&ndn.InterestLifetime=1000&ndn.Nonce=1547038398
Tag from Consumer: 0



Is there anything missing?


Thank you


On Thu, Jul 20, 2017 at 10:54 PM, Adhy Satya <adhysatya820 at gmail.com> wrote:

> Hi,
>
> Following the idea of exchanging information between the consumer and the
> producer, what's the difference between creating a ndn::lp::Packet or
> a ndn::TagHost? Which method should I use?
>
>
> I saw older posts (this
> <http://www.lists.cs.ucla.edu/pipermail/nfd-dev/2017-February/002260.html>,
> and this
> <http://www.lists.cs.ucla.edu/pipermail/nfd-dev/2016-February/001536.html>),
> but this methods are for CachePolicy and NextHopFaceIdTag. I want to send a
> string "Hello" (type Name actually).
>
> In line with what Ashlesh did, I added the following lines at Consumer (
> https://github.com/named-data/ndn-cxx/blob/master/
> examples/consumer.cpp#L42), but need help with the commented lines.
>
>     ndn::lp::Packet lpPacket;
>     // add string ("Hello") to lpPacket
>     // send lpPacket
>
> And then I'll need to read that packet in the producer.
>
>
> Thanks again for your help.
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndn-interest/attachments/20170721/437e3c2c/attachment.html>


More information about the Ndn-interest mailing list