fix bug 1057 LTE Bearers issue
authorGiuseppe Piro
Tue, 16 Aug 2011 12:58:50 -0700
changeset 7437 8dc11dc385fe
parent 7436 ca0281bce8a9
child 7438 3aeb5ac5af62
fix bug 1057 LTE Bearers issue
src/lte/examples/lte-multiple-flows.cc
src/lte/model/lte-mac-header.cc
src/lte/model/simple-packet-scheduler.cc
--- a/src/lte/examples/lte-multiple-flows.cc	Wed Aug 10 01:39:14 2011 -0700
+++ b/src/lte/examples/lte-multiple-flows.cc	Tue Aug 16 12:58:50 2011 -0700
@@ -126,27 +126,27 @@
 
   udpServer_1 = UdpServerHelper (100);
   serverApp_1 = udpServer_1.Install (ueNodes.Get (0));
-  serverApp_1.Start (Seconds (0.02));
+  serverApp_1.Start (Seconds (0.01));
   serverApp_1.Stop (Seconds (2));
 
   udpClient_1 = UdpClientHelper (UEinterfaces.GetAddress (0), 100);
   udpClient_1.SetAttribute ("MaxPackets", UintegerValue (1200));
   udpClient_1.SetAttribute ("Interval", TimeValue (Seconds (0.12)));
-  udpClient_1.SetAttribute ("PacketSize", UintegerValue (800));
+  udpClient_1.SetAttribute ("PacketSize", UintegerValue (100));
   clientApp_1 = udpClient_1.Install (enbNodes.Get (0));
-  clientApp_1.Start (Seconds (0.01));
+  clientApp_1.Start (Seconds (0.02));
   clientApp_1.Stop (Seconds (2));
 
   Ptr<RadioBearerInstance> bearer_1 = CreateObject<RadioBearerInstance> ();
   bearer_1->SetBearerDirection (RadioBearerInstance::DIRECTION_TYPE_DL);
   bearer_1->SetBearerType (RadioBearerInstance::BEARER_TYPE_DRB);
-  IpcsClassifierRecord *ipcs_1 = new IpcsClassifierRecord (UEinterfaces.GetAddress (0),
+  IpcsClassifierRecord *ipcs_1 = new IpcsClassifierRecord (ENBinterface.GetAddress (0),
                                                            "255.255.255.0",
-                                                           ENBinterface.GetAddress (0),
+                                                           UEinterfaces.GetAddress (0),
                                                            "255.255.255.0",
-                                                           100, 100, 0, 10000, 17, 1);
+                                                           0, 65535, 100, 100, 17, 1);
   bearer_1->SetIpcsClassifierRecord (ipcs_1);
-  enb->GetRrcEntity ()->AddDownlinkNgbrBearer (bearer_1);
+  enb->GetRrcEntity ()->AddDownlinkGbrBearer (bearer_1);
 
 
 
@@ -160,27 +160,27 @@
 
   udpServer_2 = UdpServerHelper (100);
   serverApp_2 = udpServer_2.Install (ueNodes.Get (1));
-  serverApp_2.Start (Seconds (0.02));
+  serverApp_2.Start (Seconds (0.01));
   serverApp_2.Stop (Seconds (2));
 
   udpClient_2 = UdpClientHelper (UEinterfaces.GetAddress (1), 100);
   udpClient_2.SetAttribute ("MaxPackets", UintegerValue (1200));
   udpClient_2.SetAttribute ("Interval", TimeValue (Seconds (0.12)));
-  udpClient_2.SetAttribute ("PacketSize", UintegerValue (800));
+  udpClient_2.SetAttribute ("PacketSize", UintegerValue (200));
   clientApp_2 = udpClient_2.Install (enbNodes.Get (0));
   clientApp_2.Start (Seconds (0.011));
-  clientApp_2.Stop (Seconds (2));
+  clientApp_2.Stop (Seconds (3));
 
   Ptr<RadioBearerInstance> bearer_2 = CreateObject<RadioBearerInstance> ();
   bearer_2->SetBearerDirection (RadioBearerInstance::DIRECTION_TYPE_DL);
   bearer_2->SetBearerType (RadioBearerInstance::BEARER_TYPE_DRB);
-  IpcsClassifierRecord *ipcs_2 = new IpcsClassifierRecord (UEinterfaces.GetAddress (1),
+  IpcsClassifierRecord *ipcs_2 = new IpcsClassifierRecord (ENBinterface.GetAddress (1),
                                                            "255.255.255.0",
-                                                           ENBinterface.GetAddress (0),
+                                                           UEinterfaces.GetAddress (0),
                                                            "255.255.255.0",
-                                                           100, 100, 0, 10000, 17, 1);
+                                                           0, 65535, 100, 100, 17, 1);
   bearer_2->SetIpcsClassifierRecord (ipcs_2);
-  enb->GetRrcEntity ()->AddDownlinkNgbrBearer (bearer_2);
+  enb->GetRrcEntity ()->AddDownlinkGbrBearer (bearer_2);
 
 
 
@@ -193,34 +193,27 @@
 
   udpServer_3 = UdpServerHelper (100);
   serverApp_3 = udpServer_3.Install (ueNodes.Get (2));
-  serverApp_3.Start (Seconds (0.02));
+  serverApp_3.Start (Seconds (0.01));
   serverApp_3.Stop (Seconds (2));
 
   udpClient_3 = UdpClientHelper (UEinterfaces.GetAddress (2), 100);
   udpClient_3.SetAttribute ("MaxPackets", UintegerValue (1200));
   udpClient_3.SetAttribute ("Interval", TimeValue (Seconds (0.12)));
-  udpClient_3.SetAttribute ("PacketSize", UintegerValue (800));
+  udpClient_3.SetAttribute ("PacketSize", UintegerValue (300));
   clientApp_3 = udpClient_2.Install (enbNodes.Get (0));
-  clientApp_3.Start (Seconds (0.011));
+  clientApp_3.Start (Seconds (0.04));
   clientApp_3.Stop (Seconds (2));
 
   Ptr<RadioBearerInstance> bearer_3 = CreateObject<RadioBearerInstance> ();
   bearer_3->SetBearerDirection (RadioBearerInstance::DIRECTION_TYPE_DL);
   bearer_3->SetBearerType (RadioBearerInstance::BEARER_TYPE_DRB);
-  IpcsClassifierRecord *ipcs_3 = new IpcsClassifierRecord (UEinterfaces.GetAddress (2),
+  IpcsClassifierRecord *ipcs_3 = new IpcsClassifierRecord (ENBinterface.GetAddress (2),
                                                            "255.255.255.0",
-                                                           ENBinterface.GetAddress (0),
+                                                           UEinterfaces.GetAddress (0),
                                                            "255.255.255.0",
-                                                           100, 100, 0, 10000, 17, 1);
+                                                           0, 65535, 100, 100, 17, 1);
   bearer_3->SetIpcsClassifierRecord (ipcs_3);
-  enb->GetRrcEntity ()->AddDownlinkNgbrBearer (bearer_3);
-
-
-
-
-
-
-
+  enb->GetRrcEntity ()->AddDownlinkGbrBearer (bearer_3);
 
 
   std::cout << "Starting simulation....." << std::endl;
--- a/src/lte/model/lte-mac-header.cc	Wed Aug 10 01:39:14 2011 -0700
+++ b/src/lte/model/lte-mac-header.cc	Tue Aug 16 12:58:50 2011 -0700
@@ -48,7 +48,7 @@
 uint32_t
 LteMacHeader::GetSerializedSize (void) const
 {
-  return 13;
+  return 12;
 }
 
 
--- a/src/lte/model/simple-packet-scheduler.cc	Wed Aug 10 01:39:14 2011 -0700
+++ b/src/lte/model/simple-packet-scheduler.cc	Tue Aug 16 12:58:50 2011 -0700
@@ -97,10 +97,10 @@
   for (it = enb->GetRrcEntity ()->GetDownlinkGbrBearers ()->begin (); 
        it != enb->GetRrcEntity ()->GetDownlinkGbrBearers ()->end (); it++)
     {
-      if ((*it)->GetQueue ()->IsEmpty ())
+      if (!(*it)->GetQueue ()->IsEmpty ())
         {
-          // Get the first packet form the queue.
-          Ptr<Packet> p = enb->GetRrcEntity ()->GetDownlinkNgbrBearers ()->at (0)->GetRlcEntity ()->Dequeue ();
+          // Get the first packet from the queue.
+          Ptr<Packet> p = (*it)->GetRlcEntity ()->Dequeue ();
           pb->AddPacket (p);
         }
     }
@@ -109,10 +109,10 @@
   for (it = enb->GetRrcEntity ()->GetDownlinkNgbrBearers ()->begin (); 
        it != enb->GetRrcEntity ()->GetDownlinkNgbrBearers ()->end (); it++)
     {
-      if ((*it)->GetQueue ()->IsEmpty ())
+      if (!(*it)->GetQueue ()->IsEmpty ())
         {
           // Get the first packet form the queue.
-          Ptr<Packet> p = enb->GetRrcEntity ()->GetDownlinkNgbrBearers ()->at (0)->GetRlcEntity ()->Dequeue ();
+          Ptr<Packet> p = (*it)->GetRlcEntity ()->Dequeue ();
           pb->AddPacket (p);
         }
     }