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 29 matching lines...) Expand all Loading... |
40 */ | 40 */ |
41 NS_LOG_COMPONENT_DEFINE ("BearerDeactivateExample"); | 41 NS_LOG_COMPONENT_DEFINE ("BearerDeactivateExample"); |
42 int | 42 int |
43 main (int argc, char *argv[]) | 43 main (int argc, char *argv[]) |
44 { | 44 { |
45 | 45 |
46 uint16_t numberOfNodes = 1; | 46 uint16_t numberOfNodes = 1; |
47 uint16_t numberOfUeNodes = 3; | 47 uint16_t numberOfUeNodes = 3; |
48 double simTime = 1.1; | 48 double simTime = 1.1; |
49 double distance = 60.0; | 49 double distance = 60.0; |
50 double interPacketInterval = 100; | 50 uint64_t interPacketInterval = 100; |
51 | 51 |
52 // Command line arguments | 52 // Command line arguments |
53 CommandLine cmd; | 53 CommandLine cmd; |
54 cmd.AddValue ("numberOfNodes", "Number of eNodeBs + UE pairs", numberOfNodes); | 54 cmd.AddValue ("numberOfNodes", "Number of eNodeBs + UE pairs", numberOfNodes); |
55 cmd.AddValue ("simTime", "Total duration of the simulation [s])", simTime); | 55 cmd.AddValue ("simTime", "Total duration of the simulation [s])", simTime); |
56 cmd.AddValue ("distance", "Distance between eNBs [m]", distance); | 56 cmd.AddValue ("distance", "Distance between eNBs [m]", distance); |
57 cmd.AddValue ("interPacketInterval", "Inter packet interval [ms])", interPacke
tInterval); | 57 cmd.AddValue ("interPacketInterval", "Inter packet interval [ms])", interPacke
tInterval); |
58 cmd.Parse (argc, argv); | 58 cmd.Parse (argc, argv); |
59 | 59 |
60 Ptr<LteHelper> lteHelper = CreateObject<LteHelper> (); | 60 Ptr<LteHelper> lteHelper = CreateObject<LteHelper> (); |
61 Ptr<PointToPointEpcHelper> epcHelper = CreateObject<PointToPointEpcHelper> ()
; | 61 Ptr<PointToPointEpcHelper> epcHelper = CreateObject<PointToPointEpcHelper> ()
; |
62 lteHelper->SetEpcHelper (epcHelper); | 62 lteHelper->SetEpcHelper (epcHelper); |
63 | 63 |
64 ConfigStore inputConfig; | 64 ConfigStore inputConfig; |
65 inputConfig.ConfigureDefaults (); | 65 inputConfig.ConfigureDefaults (); |
66 | 66 |
67 // parse again so you can override default values from the command line | 67 // parse again so you can override default values from the command line |
68 cmd.Parse (argc, argv); | 68 cmd.Parse (argc, argv); |
69 | 69 |
70 Ptr<Node> pgw = epcHelper->GetPgwNode (); | 70 Ptr<Node> pgw = epcHelper->GetPgwNode (); |
71 | 71 |
| 72 #if 0 |
72 // Enable Logging | 73 // Enable Logging |
73 LogLevel logLevel = (LogLevel)(LOG_PREFIX_FUNC | LOG_PREFIX_TIME | LOG_LEVEL_A
LL); | 74 LogLevel logLevel = (LogLevel)(LOG_PREFIX_FUNC | LOG_PREFIX_TIME | LOG_LEVEL_A
LL); |
74 | 75 |
75 LogComponentEnable ("BearerDeactivateExample", LOG_LEVEL_ALL); | 76 LogComponentEnable ("BearerDeactivateExample", LOG_LEVEL_ALL); |
76 LogComponentEnable ("LteHelper", logLevel); | 77 LogComponentEnable ("LteHelper", logLevel); |
77 LogComponentEnable ("EpcHelper", logLevel); | 78 LogComponentEnable ("EpcHelper", logLevel); |
78 LogComponentEnable ("EpcEnbApplication", logLevel); | 79 LogComponentEnable ("EpcEnbApplication", logLevel); |
79 LogComponentEnable ("EpcSgwPgwApplication", logLevel); | 80 LogComponentEnable ("EpcSgwPgwApplication", logLevel); |
80 LogComponentEnable ("EpcMme", logLevel); | 81 LogComponentEnable ("EpcMme", logLevel); |
81 LogComponentEnable ("LteEnbRrc", logLevel); | 82 LogComponentEnable ("LteEnbRrc", logLevel); |
82 | 83 #endif |
83 | 84 |
84 // Create a single RemoteHost | 85 // Create a single RemoteHost |
85 NodeContainer remoteHostContainer; | 86 NodeContainer remoteHostContainer; |
86 remoteHostContainer.Create (1); | 87 remoteHostContainer.Create (1); |
87 Ptr<Node> remoteHost = remoteHostContainer.Get (0); | 88 Ptr<Node> remoteHost = remoteHostContainer.Get (0); |
88 InternetStackHelper internet; | 89 InternetStackHelper internet; |
89 internet.Install (remoteHostContainer); | 90 internet.Install (remoteHostContainer); |
90 | 91 |
91 // Create the Internet | 92 // Create the Internet |
92 PointToPointHelper p2ph; | 93 PointToPointHelper p2ph; |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 ++ulPort; | 173 ++ulPort; |
173 ++otherPort; | 174 ++otherPort; |
174 PacketSinkHelper dlPacketSinkHelper ("ns3::UdpSocketFactory", InetSocketAd
dress (Ipv4Address::GetAny (), dlPort)); | 175 PacketSinkHelper dlPacketSinkHelper ("ns3::UdpSocketFactory", InetSocketAd
dress (Ipv4Address::GetAny (), dlPort)); |
175 PacketSinkHelper ulPacketSinkHelper ("ns3::UdpSocketFactory", InetSocketAd
dress (Ipv4Address::GetAny (), ulPort)); | 176 PacketSinkHelper ulPacketSinkHelper ("ns3::UdpSocketFactory", InetSocketAd
dress (Ipv4Address::GetAny (), ulPort)); |
176 PacketSinkHelper packetSinkHelper ("ns3::UdpSocketFactory", InetSocketAddr
ess (Ipv4Address::GetAny (), otherPort)); | 177 PacketSinkHelper packetSinkHelper ("ns3::UdpSocketFactory", InetSocketAddr
ess (Ipv4Address::GetAny (), otherPort)); |
177 serverApps.Add (dlPacketSinkHelper.Install (ueNodes.Get (u))); | 178 serverApps.Add (dlPacketSinkHelper.Install (ueNodes.Get (u))); |
178 serverApps.Add (ulPacketSinkHelper.Install (remoteHost)); | 179 serverApps.Add (ulPacketSinkHelper.Install (remoteHost)); |
179 serverApps.Add (packetSinkHelper.Install (ueNodes.Get (u))); | 180 serverApps.Add (packetSinkHelper.Install (ueNodes.Get (u))); |
180 | 181 |
181 UdpClientHelper dlClient (ueIpIface.GetAddress (u), dlPort); | 182 UdpClientHelper dlClient (ueIpIface.GetAddress (u), dlPort); |
182 dlClient.SetAttribute ("Interval", TimeValue (MilliSeconds (static_cast<ui
nt64_t>(interPacketInterval)))); | 183 dlClient.SetAttribute ("Interval", TimeValue (MilliSeconds (interPacketInt
erval))); |
183 dlClient.SetAttribute ("MaxPackets", UintegerValue (1000000)); | 184 dlClient.SetAttribute ("MaxPackets", UintegerValue (1000000)); |
184 | 185 |
185 UdpClientHelper ulClient (remoteHostAddr, ulPort); | 186 UdpClientHelper ulClient (remoteHostAddr, ulPort); |
186 ulClient.SetAttribute ("Interval", TimeValue (MilliSeconds (static_cast<ui
nt64_t>(interPacketInterval)))); | 187 ulClient.SetAttribute ("Interval", TimeValue (MilliSeconds (interPacketInt
erval))); |
187 ulClient.SetAttribute ("MaxPackets", UintegerValue (1000000)); | 188 ulClient.SetAttribute ("MaxPackets", UintegerValue (1000000)); |
188 | 189 |
189 UdpClientHelper client (ueIpIface.GetAddress (u), otherPort); | 190 UdpClientHelper client (ueIpIface.GetAddress (u), otherPort); |
190 client.SetAttribute ("Interval", TimeValue (MilliSeconds (static_cast<uint
64_t>(interPacketInterval)))); | 191 client.SetAttribute ("Interval", TimeValue (MilliSeconds (interPacketInter
val))); |
191 client.SetAttribute ("MaxPackets", UintegerValue (1000000)); | 192 client.SetAttribute ("MaxPackets", UintegerValue (1000000)); |
192 | 193 |
193 clientApps.Add (dlClient.Install (remoteHost)); | 194 clientApps.Add (dlClient.Install (remoteHost)); |
194 clientApps.Add (ulClient.Install (ueNodes.Get (u))); | 195 clientApps.Add (ulClient.Install (ueNodes.Get (u))); |
195 if (u + 1 < ueNodes.GetN ()) | 196 if (u + 1 < ueNodes.GetN ()) |
196 { | 197 { |
197 clientApps.Add (client.Install (ueNodes.Get (u + 1))); | 198 clientApps.Add (client.Install (ueNodes.Get (u + 1))); |
198 } | 199 } |
199 else | 200 else |
200 { | 201 { |
(...skipping 28 matching lines...) Expand all Loading... |
229 | 230 |
230 Simulator::Run (); | 231 Simulator::Run (); |
231 /*GtkConfigStore config; | 232 /*GtkConfigStore config; |
232 config.ConfigureAttributes();*/ | 233 config.ConfigureAttributes();*/ |
233 | 234 |
234 Simulator::Destroy (); | 235 Simulator::Destroy (); |
235 return 0; | 236 return 0; |
236 | 237 |
237 } | 238 } |
238 | 239 |
LEFT | RIGHT |