/* * Called by L3 protocol for every incoming Interest packets */ void myFw::OnInterest (Ptr inFace, Ptr interest) { if (DynamicCast (inFace)) { Ptr model = GetObject (); Vector position; if (model) { position = model->GetPosition (); GeoSrcTag tag; Ptr payload = ConstCast(interest->GetPayload()); payload->RemovePacketTag(tag); tag.SetPosition (position); payload->AddPacketTag(tag); NS_LOG_DEBUG("In OnInterest() " << " Position is: " << position << " Tag is: " << payload->PeekPacketTag (tag)); } } ForwardingStrategy::OnInterest (inFace, interest); } /* * Called by L3 protocol for every incoming Data packets */ void myFw::OnData (Ptr inFace, Ptr data) { if (DynamicCast (inFace)) { Ptr model = GetObject (); Vector position; if (model) { position = model->GetPosition (); GeoSrcTag tag; tag.SetPosition (position); data->GetPayload()->AddPacketTag (tag); NS_LOG_DEBUG("In OnData() " << " Position is: " << position << " Tag is: " << data->GetPayload()->PeekPacketTag (tag)); } Ptr pitEntry = m_pit->Lookup (*data); if(!pitEntry) return; } ForwardingStrategy::OnData (inFace, data); }