mirror of
https://gitlab.ibr.cs.tu-bs.de/tschuber/ns-3-leo.git
synced 2025-06-08 18:13:57 +02:00
Set mobility model for node instead of net device
This commit is contained in:
parent
f34ca7fafd
commit
6c154b6d60
5 changed files with 11 additions and 28 deletions
|
@ -117,8 +117,8 @@ MockChannel::GetDelay (Ptr<const MockNetDevice> src, Ptr<const MockNetDevice> ds
|
||||||
{
|
{
|
||||||
NS_LOG_DEBUG ("Get delay from " << src << " to " << dst);
|
NS_LOG_DEBUG ("Get delay from " << src << " to " << dst);
|
||||||
|
|
||||||
Ptr<MobilityModel> modSrc = src->GetMobilityModel ();
|
Ptr<MobilityModel> modSrc = src->GetNode ()->GetObject<MobilityModel> ();
|
||||||
Ptr<MobilityModel> modDst = dst->GetMobilityModel ();
|
Ptr<MobilityModel> modDst = dst->GetNode ()->GetObject<MobilityModel> ();
|
||||||
|
|
||||||
Time propagationDelay = m_propagationDelay->GetDelay (modSrc, modDst);
|
Time propagationDelay = m_propagationDelay->GetDelay (modSrc, modDst);
|
||||||
|
|
||||||
|
@ -163,7 +163,7 @@ MockChannel::Deliver (
|
||||||
Time delay = GetDelay (src, dst, txTime);
|
Time delay = GetDelay (src, dst, txTime);
|
||||||
|
|
||||||
/* Check if there is LOS between the source and destination */
|
/* 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 (),
|
Simulator::ScheduleWithContext (dst->GetNode ()->GetId (),
|
||||||
delay,
|
delay,
|
||||||
|
|
|
@ -78,11 +78,6 @@ MockNetDevice::GetTypeId (void)
|
||||||
PointerValue (),
|
PointerValue (),
|
||||||
MakePointerAccessor (&MockNetDevice::m_queue),
|
MakePointerAccessor (&MockNetDevice::m_queue),
|
||||||
MakePointerChecker<Queue<Packet> > ())
|
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
|
// Trace sources at the "top" of the net device, where packets transition
|
||||||
// to/from higher layers.
|
// to/from higher layers.
|
||||||
|
@ -713,19 +708,6 @@ MockNetDevice::EtherToPpp (uint16_t proto)
|
||||||
return 0;
|
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
|
bool
|
||||||
MockNetDevice::IsPointToPoint() const
|
MockNetDevice::IsPointToPoint() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -195,8 +195,6 @@ public:
|
||||||
virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb);
|
virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb);
|
||||||
virtual bool SupportsSendFrom (void) const;
|
virtual bool SupportsSendFrom (void) const;
|
||||||
|
|
||||||
Ptr<MobilityModel> GetMobilityModel (void) const;
|
|
||||||
void SetMobilityModel (Ptr<MobilityModel> model);
|
|
||||||
void NotifyLinkDown (void);
|
void NotifyLinkDown (void);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -477,8 +475,6 @@ private:
|
||||||
|
|
||||||
Ptr<Packet> m_currentPkt; //!< Current packet processed
|
Ptr<Packet> m_currentPkt; //!< Current packet processed
|
||||||
|
|
||||||
Ptr<MobilityModel> m_mobilityModel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief PPP to Ethernet protocol number mapping
|
* \brief PPP to Ethernet protocol number mapping
|
||||||
* \param protocol A PPP protocol number
|
* \param protocol A PPP protocol number
|
||||||
|
|
|
@ -42,7 +42,6 @@ IslMockChannelTransmitUnknownTestCase::DoRun (void)
|
||||||
Time txTime;
|
Time txTime;
|
||||||
channel->SetAttribute ("PropagationDelay", StringValue ("ns3::ConstantSpeedPropagationDelayModel"));
|
channel->SetAttribute ("PropagationDelay", StringValue ("ns3::ConstantSpeedPropagationDelayModel"));
|
||||||
channel->SetAttribute ("PropagationLoss", StringValue ("ns3::IslPropagationLossModel"));
|
channel->SetAttribute ("PropagationLoss", StringValue ("ns3::IslPropagationLossModel"));
|
||||||
dev->SetAttribute ("MobilityModel", StringValue ("ns3::WaypointMobilityModel"));
|
|
||||||
bool result = channel->TransmitStart (p, srcId, destAddr, txTime);
|
bool result = channel->TransmitStart (p, srcId, destAddr, txTime);
|
||||||
|
|
||||||
NS_TEST_ASSERT_MSG_EQ (result, false, "Unknown destination fails to deliver");
|
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<Packet> p = Ptr<Packet>(packet);
|
||||||
|
|
||||||
Ptr<Node> srcNode = CreateObject<Node> ();
|
Ptr<Node> srcNode = CreateObject<Node> ();
|
||||||
|
Ptr<ConstantPositionMobilityModel> loc = CreateObject<ConstantPositionMobilityModel> ();
|
||||||
|
srcNode->AggregateObject (loc);
|
||||||
Ptr<MockNetDevice> srcDev = CreateObject<MockNetDevice> ();
|
Ptr<MockNetDevice> srcDev = CreateObject<MockNetDevice> ();
|
||||||
srcDev->SetNode (srcNode);
|
srcDev->SetNode (srcNode);
|
||||||
srcDev->SetAttribute ("MobilityModel", StringValue ("ns3::WaypointMobilityModel"));
|
|
||||||
int32_t srcId = channel->Attach (srcDev);
|
int32_t srcId = channel->Attach (srcDev);
|
||||||
|
|
||||||
Ptr<Node> dstNode = CreateObject<Node> ();
|
Ptr<Node> dstNode = CreateObject<Node> ();
|
||||||
|
loc = CreateObject<ConstantPositionMobilityModel> ();
|
||||||
|
dstNode->AggregateObject (loc);
|
||||||
Ptr<MockNetDevice> dstDev = CreateObject<MockNetDevice> ();
|
Ptr<MockNetDevice> dstDev = CreateObject<MockNetDevice> ();
|
||||||
dstDev->SetNode (dstNode);
|
dstDev->SetNode (dstNode);
|
||||||
dstDev->SetAttribute ("MobilityModel", StringValue ("ns3::WaypointMobilityModel"));
|
|
||||||
channel->Attach (dstDev);
|
channel->Attach (dstDev);
|
||||||
|
|
||||||
Address destAddr = dstDev->GetAddress ();
|
Address destAddr = dstDev->GetAddress ();
|
||||||
|
|
|
@ -79,6 +79,8 @@ LeoMockChannelTransmitKnownTestCase::DoRun (void)
|
||||||
Ptr<Packet> p = Ptr<Packet>(packet);
|
Ptr<Packet> p = Ptr<Packet>(packet);
|
||||||
|
|
||||||
Ptr<Node> srcNode = CreateObject<Node> ();
|
Ptr<Node> srcNode = CreateObject<Node> ();
|
||||||
|
Ptr<ConstantPositionMobilityModel> loc = CreateObject<ConstantPositionMobilityModel> ();
|
||||||
|
srcNode->AggregateObject (loc);
|
||||||
Ptr<LeoMockNetDevice> srcDev = CreateObject<LeoMockNetDevice> ();
|
Ptr<LeoMockNetDevice> srcDev = CreateObject<LeoMockNetDevice> ();
|
||||||
srcDev->SetNode (srcNode);
|
srcDev->SetNode (srcNode);
|
||||||
srcDev->SetAttribute ("MobilityModel", StringValue ("ns3::ConstantPositionMobilityModel"));
|
srcDev->SetAttribute ("MobilityModel", StringValue ("ns3::ConstantPositionMobilityModel"));
|
||||||
|
@ -86,6 +88,8 @@ LeoMockChannelTransmitKnownTestCase::DoRun (void)
|
||||||
int32_t srcId = channel->Attach (srcDev);
|
int32_t srcId = channel->Attach (srcDev);
|
||||||
|
|
||||||
Ptr<Node> dstNode = CreateObject<Node> ();
|
Ptr<Node> dstNode = CreateObject<Node> ();
|
||||||
|
loc = CreateObject<ConstantPositionMobilityModel> ();
|
||||||
|
dstNode->AggregateObject (loc);
|
||||||
Ptr<LeoMockNetDevice> dstDev = CreateObject<LeoMockNetDevice> ();
|
Ptr<LeoMockNetDevice> dstDev = CreateObject<LeoMockNetDevice> ();
|
||||||
dstDev->SetNode (dstNode);
|
dstDev->SetNode (dstNode);
|
||||||
dstDev->SetAttribute ("MobilityModel", StringValue ("ns3::WaypointMobilityModel"));
|
dstDev->SetAttribute ("MobilityModel", StringValue ("ns3::WaypointMobilityModel"));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue