From 6c154b6d60b77fd49c138bd1375641798d4f3595 Mon Sep 17 00:00:00 2001 From: Tim Schubert <tim.schubert@tu-bs.de> Date: Wed, 15 Jul 2020 22:18:30 +0200 Subject: [PATCH] Set mobility model for node instead of net device --- model/mock-channel.cc | 6 +++--- model/mock-net-device.cc | 18 ------------------ model/mock-net-device.h | 4 ---- test/isl-mock-channel-test-suite.cc | 7 ++++--- test/leo-mock-channel-test-suite.cc | 4 ++++ 5 files changed, 11 insertions(+), 28 deletions(-) diff --git a/model/mock-channel.cc b/model/mock-channel.cc index 22fe639..2e20166 100644 --- a/model/mock-channel.cc +++ b/model/mock-channel.cc @@ -117,8 +117,8 @@ MockChannel::GetDelay (Ptr<const MockNetDevice> src, Ptr<const MockNetDevice> ds { NS_LOG_DEBUG ("Get delay from " << src << " to " << dst); - Ptr<MobilityModel> modSrc = src->GetMobilityModel (); - Ptr<MobilityModel> modDst = dst->GetMobilityModel (); + Ptr<MobilityModel> modSrc = src->GetNode ()->GetObject<MobilityModel> (); + Ptr<MobilityModel> modDst = dst->GetNode ()->GetObject<MobilityModel> (); Time propagationDelay = m_propagationDelay->GetDelay (modSrc, modDst); @@ -163,7 +163,7 @@ MockChannel::Deliver ( Time delay = GetDelay (src, dst, txTime); /* Check if there is LOS between the source and destination */ - if (GetPropagationLoss ()->CalcRxPower(1, src->GetMobilityModel(), dst->GetMobilityModel()) > 0) + if (GetPropagationLoss ()->CalcRxPower(1, src->GetNode ()->GetObject<MobilityModel> (), dst->GetNode ()->GetObject<MobilityModel> ()) > 0) { Simulator::ScheduleWithContext (dst->GetNode ()->GetId (), delay, diff --git a/model/mock-net-device.cc b/model/mock-net-device.cc index b9eb988..643567b 100644 --- a/model/mock-net-device.cc +++ b/model/mock-net-device.cc @@ -78,11 +78,6 @@ MockNetDevice::GetTypeId (void) PointerValue (), MakePointerAccessor (&MockNetDevice::m_queue), MakePointerChecker<Queue<Packet> > ()) - .AddAttribute ("MobilityModel", "The mobility model of the device", - PointerValue (), - MakePointerAccessor (&MockNetDevice::SetMobilityModel, - &MockNetDevice::GetMobilityModel), - MakePointerChecker<MobilityModel> ()) // // Trace sources at the "top" of the net device, where packets transition // to/from higher layers. @@ -713,19 +708,6 @@ MockNetDevice::EtherToPpp (uint16_t proto) return 0; } -Ptr<MobilityModel> -MockNetDevice::GetMobilityModel (void) const -{ - return m_mobilityModel; -} - -void -MockNetDevice::SetMobilityModel (Ptr<MobilityModel> model) -{ - NS_LOG_FUNCTION (this); - m_mobilityModel = model; -} - bool MockNetDevice::IsPointToPoint() const { diff --git a/model/mock-net-device.h b/model/mock-net-device.h index c6a070f..ce1d18e 100644 --- a/model/mock-net-device.h +++ b/model/mock-net-device.h @@ -195,8 +195,6 @@ public: virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb); virtual bool SupportsSendFrom (void) const; - Ptr<MobilityModel> GetMobilityModel (void) const; - void SetMobilityModel (Ptr<MobilityModel> model); void NotifyLinkDown (void); protected: @@ -477,8 +475,6 @@ private: Ptr<Packet> m_currentPkt; //!< Current packet processed - Ptr<MobilityModel> m_mobilityModel; - /** * \brief PPP to Ethernet protocol number mapping * \param protocol A PPP protocol number diff --git a/test/isl-mock-channel-test-suite.cc b/test/isl-mock-channel-test-suite.cc index 64c0241..47e57fc 100644 --- a/test/isl-mock-channel-test-suite.cc +++ b/test/isl-mock-channel-test-suite.cc @@ -42,7 +42,6 @@ IslMockChannelTransmitUnknownTestCase::DoRun (void) Time txTime; channel->SetAttribute ("PropagationDelay", StringValue ("ns3::ConstantSpeedPropagationDelayModel")); channel->SetAttribute ("PropagationLoss", StringValue ("ns3::IslPropagationLossModel")); - dev->SetAttribute ("MobilityModel", StringValue ("ns3::WaypointMobilityModel")); bool result = channel->TransmitStart (p, srcId, destAddr, txTime); NS_TEST_ASSERT_MSG_EQ (result, false, "Unknown destination fails to deliver"); @@ -78,15 +77,17 @@ IslMockChannelTransmitKnownTestCase::DoRun (void) Ptr<Packet> p = Ptr<Packet>(packet); Ptr<Node> srcNode = CreateObject<Node> (); + Ptr<ConstantPositionMobilityModel> loc = CreateObject<ConstantPositionMobilityModel> (); + srcNode->AggregateObject (loc); Ptr<MockNetDevice> srcDev = CreateObject<MockNetDevice> (); srcDev->SetNode (srcNode); - srcDev->SetAttribute ("MobilityModel", StringValue ("ns3::WaypointMobilityModel")); int32_t srcId = channel->Attach (srcDev); Ptr<Node> dstNode = CreateObject<Node> (); + loc = CreateObject<ConstantPositionMobilityModel> (); + dstNode->AggregateObject (loc); Ptr<MockNetDevice> dstDev = CreateObject<MockNetDevice> (); dstDev->SetNode (dstNode); - dstDev->SetAttribute ("MobilityModel", StringValue ("ns3::WaypointMobilityModel")); channel->Attach (dstDev); Address destAddr = dstDev->GetAddress (); diff --git a/test/leo-mock-channel-test-suite.cc b/test/leo-mock-channel-test-suite.cc index 9b473ed..a6643c8 100644 --- a/test/leo-mock-channel-test-suite.cc +++ b/test/leo-mock-channel-test-suite.cc @@ -79,6 +79,8 @@ LeoMockChannelTransmitKnownTestCase::DoRun (void) Ptr<Packet> p = Ptr<Packet>(packet); Ptr<Node> srcNode = CreateObject<Node> (); + Ptr<ConstantPositionMobilityModel> loc = CreateObject<ConstantPositionMobilityModel> (); + srcNode->AggregateObject (loc); Ptr<LeoMockNetDevice> srcDev = CreateObject<LeoMockNetDevice> (); srcDev->SetNode (srcNode); srcDev->SetAttribute ("MobilityModel", StringValue ("ns3::ConstantPositionMobilityModel")); @@ -86,6 +88,8 @@ LeoMockChannelTransmitKnownTestCase::DoRun (void) int32_t srcId = channel->Attach (srcDev); Ptr<Node> dstNode = CreateObject<Node> (); + loc = CreateObject<ConstantPositionMobilityModel> (); + dstNode->AggregateObject (loc); Ptr<LeoMockNetDevice> dstDev = CreateObject<LeoMockNetDevice> (); dstDev->SetNode (dstNode); dstDev->SetAttribute ("MobilityModel", StringValue ("ns3::WaypointMobilityModel"));