diff --git a/NFD/daemon/fw/forwarder.cpp b/NFD/daemon/fw/forwarder.cpp index 85d7b6c..31adf69 100644 --- a/NFD/daemon/fw/forwarder.cpp +++ b/NFD/daemon/fw/forwarder.cpp @@ -29,6 +29,11 @@ #include "face/null-face.hpp" #include "available-strategies.hpp" +#include "model/ndn-ns3.hpp" +#include "../utils/ndn-fw-hop-count-tag.hpp" + + + #include namespace nfd { @@ -115,6 +120,8 @@ Forwarder::onIncomingInterest(Face& inFace, const Interest& interest) // set PIT straggler timer this->setStragglerTimer(pitEntry, true, csMatch->getFreshnessPeriod()); + + // goto outgoing Data pipeline this->onOutgoingData(*csMatch, inFace); return; @@ -283,11 +290,25 @@ Forwarder::onIncomingData(Face& inFace, const Data& data) return; } +#ifdef FIX_CS_HOPCOUNT + // remove hop count tag before adding to content store !!! + ns3::Ptr tmpPacket = ns3::ndn::Convert::ToPacket(data); + ns3::ndn::FwHopCountTag tag; + tmpPacket->RemovePacketTag(tag); + + // CS insert + if (m_csFromNdnSim == nullptr) + m_cs.insert(*(ns3::ndn::Convert::FromPacket(tmpPacket))); + else + m_csFromNdnSim->Add(ns3::ndn::Convert::FromPacket(tmpPacket)); +#else // CS insert if (m_csFromNdnSim == nullptr) m_cs.insert(data); else m_csFromNdnSim->Add(data.shared_from_this()); +#endif + std::set > pendingDownstreams; // foreach PitEntry