LEFT | RIGHT |
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ | 1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ |
2 /* | 2 /* |
3 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC) | 3 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC) |
4 * | 4 * |
5 * This program is free software; you can redistribute it and/or modify | 5 * This program is free software; you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 2 as | 6 * it under the terms of the GNU General Public License version 2 as |
7 * published by the Free Software Foundation; | 7 * published by the Free Software Foundation; |
8 * | 8 * |
9 * This program is distributed in the hope that it will be useful, | 9 * This program is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
267 Config::SetDefault ("ns3::LteSpectrumPhy::CtrlErrorModelEnabled", BooleanV
alue (false)); | 267 Config::SetDefault ("ns3::LteSpectrumPhy::CtrlErrorModelEnabled", BooleanV
alue (false)); |
268 Config::SetDefault ("ns3::LteSpectrumPhy::DataErrorModelEnabled", BooleanV
alue (false)); | 268 Config::SetDefault ("ns3::LteSpectrumPhy::DataErrorModelEnabled", BooleanV
alue (false)); |
269 } | 269 } |
270 | 270 |
271 Config::SetDefault ("ns3::LteHelper::UseIdealRrc", BooleanValue (true)); | 271 Config::SetDefault ("ns3::LteHelper::UseIdealRrc", BooleanValue (true)); |
272 | 272 |
273 Ptr<LteHelper> lteHelper = CreateObject<LteHelper> (); | 273 Ptr<LteHelper> lteHelper = CreateObject<LteHelper> (); |
274 Ptr<PointToPointEpcHelper> epcHelper = CreateObject<PointToPointEpcHelper> ()
; | 274 Ptr<PointToPointEpcHelper> epcHelper = CreateObject<PointToPointEpcHelper> ()
; |
275 lteHelper->SetEpcHelper (epcHelper); | 275 lteHelper->SetEpcHelper (epcHelper); |
276 | 276 |
277 //LogComponentEnable ("PssFfMacScheduler", LOG_DEBUG); | 277 #if 0 |
| 278 LogComponentEnable ("PssFfMacScheduler", LOG_DEBUG); |
| 279 #endif |
278 | 280 |
279 Ptr<Node> pgw = epcHelper->GetPgwNode (); | 281 Ptr<Node> pgw = epcHelper->GetPgwNode (); |
280 | 282 |
281 // Create a single RemoteHost | 283 // Create a single RemoteHost |
282 NodeContainer remoteHostContainer; | 284 NodeContainer remoteHostContainer; |
283 remoteHostContainer.Create (1); | 285 remoteHostContainer.Create (1); |
284 Ptr<Node> remoteHost = remoteHostContainer.Get (0); | 286 Ptr<Node> remoteHost = remoteHostContainer.Get (0); |
285 InternetStackHelper internet; | 287 InternetStackHelper internet; |
286 internet.Install (remoteHostContainer); | 288 internet.Install (remoteHostContainer); |
287 | 289 |
(...skipping 13 matching lines...) Expand all Loading... |
301 Ptr<Ipv4StaticRouting> remoteHostStaticRouting = ipv4RoutingHelper.GetStaticRo
uting (remoteHost->GetObject<Ipv4> ()); | 303 Ptr<Ipv4StaticRouting> remoteHostStaticRouting = ipv4RoutingHelper.GetStaticRo
uting (remoteHost->GetObject<Ipv4> ()); |
302 remoteHostStaticRouting->AddNetworkRouteTo (Ipv4Address ("7.0.0.0"), Ipv4Mask
("255.0.0.0"), 1); | 304 remoteHostStaticRouting->AddNetworkRouteTo (Ipv4Address ("7.0.0.0"), Ipv4Mask
("255.0.0.0"), 1); |
303 | 305 |
304 //Config::SetDefault ("ns3::LteAmc::AmcModel", EnumValue (LteAmc::PiroEW2010))
; | 306 //Config::SetDefault ("ns3::LteAmc::AmcModel", EnumValue (LteAmc::PiroEW2010))
; |
305 //Config::SetDefault ("ns3::LteAmc::Ber", DoubleValue (0.00005)); | 307 //Config::SetDefault ("ns3::LteAmc::Ber", DoubleValue (0.00005)); |
306 //Config::SetDefault ("ns3::LteSpectrumPhy::CtrlErrorModelEnabled", BooleanVal
ue (false)); | 308 //Config::SetDefault ("ns3::LteSpectrumPhy::CtrlErrorModelEnabled", BooleanVal
ue (false)); |
307 //Config::SetDefault ("ns3::LteSpectrumPhy::DataErrorModelEnabled", BooleanVal
ue (false)); | 309 //Config::SetDefault ("ns3::LteSpectrumPhy::DataErrorModelEnabled", BooleanVal
ue (false)); |
308 | 310 |
309 //Config::SetDefault ("ns3::LteEnbRrc::EpsBearerToRlcMapping", EnumValue (LteH
elper::RLC_UM_ALWAYS)); | 311 //Config::SetDefault ("ns3::LteEnbRrc::EpsBearerToRlcMapping", EnumValue (LteH
elper::RLC_UM_ALWAYS)); |
310 | 312 |
311 // LogComponentDisableAll (LOG_LEVEL_ALL); | 313 #if 0 |
312 //LogComponentEnable ("LenaTestPssFfMacScheduler", LOG_LEVEL_ALL); | 314 LogComponentDisableAll (LOG_LEVEL_ALL); |
313 | 315 LogComponentEnable ("LenaTestPssFfMacScheduler", LOG_LEVEL_ALL); |
| 316 #endif |
| 317 |
314 lteHelper->SetAttribute ("PathlossModel", StringValue ("ns3::FriisSpectrumProp
agationLossModel")); | 318 lteHelper->SetAttribute ("PathlossModel", StringValue ("ns3::FriisSpectrumProp
agationLossModel")); |
315 | 319 |
316 // Create Nodes: eNodeB and UE | 320 // Create Nodes: eNodeB and UE |
317 NodeContainer enbNodes; | 321 NodeContainer enbNodes; |
318 NodeContainer ueNodes; | 322 NodeContainer ueNodes; |
319 enbNodes.Create (1); | 323 enbNodes.Create (1); |
320 ueNodes.Create (m_nUser); | 324 ueNodes.Create (m_nUser); |
321 | 325 |
322 // Install Mobility Model | 326 // Install Mobility Model |
323 MobilityHelper mobility; | 327 MobilityHelper mobility; |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
542 ipv4h.SetBase ("1.0.0.0", "255.0.0.0"); | 546 ipv4h.SetBase ("1.0.0.0", "255.0.0.0"); |
543 Ipv4InterfaceContainer internetIpIfaces = ipv4h.Assign (internetDevices); | 547 Ipv4InterfaceContainer internetIpIfaces = ipv4h.Assign (internetDevices); |
544 // interface 0 is localhost, 1 is the p2p device | 548 // interface 0 is localhost, 1 is the p2p device |
545 Ipv4Address remoteHostAddr = internetIpIfaces.GetAddress (1); | 549 Ipv4Address remoteHostAddr = internetIpIfaces.GetAddress (1); |
546 | 550 |
547 Ipv4StaticRoutingHelper ipv4RoutingHelper; | 551 Ipv4StaticRoutingHelper ipv4RoutingHelper; |
548 Ptr<Ipv4StaticRouting> remoteHostStaticRouting = ipv4RoutingHelper.GetStaticRo
uting (remoteHost->GetObject<Ipv4> ()); | 552 Ptr<Ipv4StaticRouting> remoteHostStaticRouting = ipv4RoutingHelper.GetStaticRo
uting (remoteHost->GetObject<Ipv4> ()); |
549 remoteHostStaticRouting->AddNetworkRouteTo (Ipv4Address ("7.0.0.0"), Ipv4Mask
("255.0.0.0"), 1); | 553 remoteHostStaticRouting->AddNetworkRouteTo (Ipv4Address ("7.0.0.0"), Ipv4Mask
("255.0.0.0"), 1); |
550 | 554 |
551 | 555 |
552 // LogComponentDisableAll (LOG_LEVEL_ALL); | 556 #if 0 |
553 //LogComponentEnable ("LenaTestPssFfMacScheduler", LOG_LEVEL_ALL); | 557 LogComponentDisableAll (LOG_LEVEL_ALL); |
554 | 558 LogComponentEnable ("LenaTestPssFfMacScheduler", LOG_LEVEL_ALL); |
| 559 #endif |
| 560 |
555 lteHelper->SetAttribute ("PathlossModel", StringValue ("ns3::FriisSpectrumProp
agationLossModel")); | 561 lteHelper->SetAttribute ("PathlossModel", StringValue ("ns3::FriisSpectrumProp
agationLossModel")); |
556 | 562 |
557 // Create Nodes: eNodeB and UE | 563 // Create Nodes: eNodeB and UE |
558 NodeContainer enbNodes; | 564 NodeContainer enbNodes; |
559 NodeContainer ueNodes; | 565 NodeContainer ueNodes; |
560 enbNodes.Create (1); | 566 enbNodes.Create (1); |
561 ueNodes.Create (m_nUser); | 567 ueNodes.Create (m_nUser); |
562 | 568 |
563 // Install Mobility Model | 569 // Install Mobility Model |
564 MobilityHelper mobility; | 570 MobilityHelper mobility; |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
621 enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE; | 627 enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE; |
622 EpsBearer bearer (q, qos); | 628 EpsBearer bearer (q, qos); |
623 lteHelper->ActivateDedicatedEpsBearer (ueDevice, bearer, EpcTft::Default (
));·· | 629 lteHelper->ActivateDedicatedEpsBearer (ueDevice, bearer, EpcTft::Default (
));·· |
624 } | 630 } |
625 | 631 |
626 | 632 |
627 // Install downlink and uplink applications | 633 // Install downlink and uplink applications |
628 uint16_t dlPort = 1234; | 634 uint16_t dlPort = 1234; |
629 uint16_t ulPort = 2000; | 635 uint16_t ulPort = 2000; |
630 PacketSinkHelper dlPacketSinkHelper ("ns3::UdpSocketFactory", InetSocketAddres
s (Ipv4Address::GetAny (), dlPort)); | 636 PacketSinkHelper dlPacketSinkHelper ("ns3::UdpSocketFactory", InetSocketAddres
s (Ipv4Address::GetAny (), dlPort)); |
631 PacketSinkHelper ulPacketSinkHelper ("ns3::UdpSocketFactory", InetSocketAddres
s (Ipv4Address::GetAny (), ulPort)); | |
632 ApplicationContainer clientApps; | 637 ApplicationContainer clientApps; |
633 ApplicationContainer serverApps; | 638 ApplicationContainer serverApps; |
634 serverApps.Add (ulPacketSinkHelper.Install (remoteHost)); // receive packets
from UEs | 639 |
635 for (uint32_t u = 0; u < ueNodes.GetN (); ++u) | 640 for (uint32_t u = 0; u < ueNodes.GetN (); ++u) |
636 { | 641 { |
637 ++ulPort; | 642 ++ulPort; |
| 643 PacketSinkHelper ulPacketSinkHelper ("ns3::UdpSocketFactory", InetSocketAd
dress (Ipv4Address::GetAny (), ulPort)); |
| 644 serverApps.Add (ulPacketSinkHelper.Install (remoteHost)); // receive pack
ets from UEs |
| 645 |
638 serverApps.Add (dlPacketSinkHelper.Install (ueNodes.Get (u))); // receive
packets from remotehost | 646 serverApps.Add (dlPacketSinkHelper.Install (ueNodes.Get (u))); // receive
packets from remotehost |
639 | 647 |
640 UdpClientHelper dlClient (ueIpIface.GetAddress (u), dlPort); // uplink pac
kets generator | 648 UdpClientHelper dlClient (ueIpIface.GetAddress (u), dlPort); // uplink pac
kets generator |
641 dlClient.SetAttribute ("Interval", TimeValue (MilliSeconds (m_interval))); | 649 dlClient.SetAttribute ("Interval", TimeValue (MilliSeconds (m_interval))); |
642 dlClient.SetAttribute ("MaxPackets", UintegerValue (1000000)); | 650 dlClient.SetAttribute ("MaxPackets", UintegerValue (1000000)); |
643 dlClient.SetAttribute ("PacketSize", UintegerValue (m_packetSize.at (u))); | 651 dlClient.SetAttribute ("PacketSize", UintegerValue (m_packetSize.at (u))); |
644 | 652 |
645 UdpClientHelper ulClient (remoteHostAddr, ulPort); // downlink p
ackets generator | 653 UdpClientHelper ulClient (remoteHostAddr, ulPort); // downlink p
ackets generator |
646 ulClient.SetAttribute ("Interval", TimeValue (MilliSeconds (m_interval))); | 654 ulClient.SetAttribute ("Interval", TimeValue (MilliSeconds (m_interval))); |
647 ulClient.SetAttribute ("MaxPackets", UintegerValue (1000000)); | 655 ulClient.SetAttribute ("MaxPackets", UintegerValue (1000000)); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
684 } | 692 } |
685 | 693 |
686 for (int i = 0; i < m_nUser; i++) | 694 for (int i = 0; i < m_nUser; i++) |
687 { | 695 { |
688 NS_TEST_ASSERT_MSG_EQ_TOL ((double)dlDataRxed.at (i) / statsDuration, m_es
tThrPssDl.at (i), m_estThrPssDl.at (i) * tolerance, " Unfair Throughput!"); | 696 NS_TEST_ASSERT_MSG_EQ_TOL ((double)dlDataRxed.at (i) / statsDuration, m_es
tThrPssDl.at (i), m_estThrPssDl.at (i) * tolerance, " Unfair Throughput!"); |
689 } | 697 } |
690 | 698 |
691 Simulator::Destroy (); | 699 Simulator::Destroy (); |
692 | 700 |
693 } | 701 } |
LEFT | RIGHT |