104 #include "ns3/core-module.h"   105 #include "ns3/network-module.h"   106 #include "ns3/internet-module.h"   107 #include "ns3/mobility-module.h"   108 #include "ns3/aodv-module.h"   109 #include "ns3/olsr-module.h"   110 #include "ns3/dsdv-module.h"   111 #include "ns3/dsr-module.h"   112 #include "ns3/applications-module.h"   113 #include "ns3/itu-r-1411-los-propagation-loss-model.h"   114 #include "ns3/ocb-wifi-mac.h"   115 #include "ns3/wifi-80211p-helper.h"   116 #include "ns3/wave-mac-helper.h"   117 #include "ns3/flow-monitor-module.h"   118 #include "ns3/config-store-module.h"   119 #include "ns3/integer.h"   120 #include "ns3/wave-bsm-helper.h"   121 #include "ns3/wave-helper.h"   122 #include "ns3/yans-wifi-helper.h"   148   uint32_t GetRxBytes ();
   154   uint32_t GetCumulativeRxBytes ();
   160   uint32_t GetRxPkts ();
   166   uint32_t GetCumulativeRxPkts ();
   174   void IncRxBytes (uint32_t rxBytes);
   187   void SetRxBytes (uint32_t rxBytes);
   194   void SetRxPkts (uint32_t rxPkts);
   200   uint32_t GetTxBytes ();
   206   uint32_t GetCumulativeTxBytes ();
   212   uint32_t GetTxPkts ();
   218   uint32_t GetCumulativeTxPkts ();
   225   void IncTxBytes (uint32_t txBytes);
   238   void SetTxBytes (uint32_t txBytes);
   245   void SetTxPkts (uint32_t txPkts);
   260     m_cumulativeRxBytes (0),
   262     m_cumulativeRxPkts (0),
   264     m_cumulativeTxBytes (0),
   266     m_cumulativeTxPkts (0)
   501     .AddConstructor<RoutingHelper> ();
   506   : m_TotalSimTime (300.01),
   541   TypeId tid = TypeId::LookupByName (
"ns3::UdpSocketFactory");
   573           olsr.PrintRoutingTableAllAt (rtt, rtw);
   583       list.Add (aodv, 100);
   591       list.Add (dsdv, 100);
   628   addressAdhoc.
SetBase (
"10.1.0.0", 
"255.255.0.0");
   629   adhocTxInterfaces = addressAdhoc.
Assign (d);
   644   for (uint32_t i = 0; i < 
m_nSinks; i++)
   662 static inline std::string
   665   std::ostringstream oss;
   669   if (InetSocketAddress::IsMatchingType (srcAddress))
   672       oss << 
" received one packet from " << addr.
GetIpv4 ();
   676       oss << 
" received one packet!";
   686   while ((packet = socket->
RecvFrom (srcAddress)))
   689       uint32_t RxRoutingBytes = packet->
GetSize ();
   702   uint32_t pktBytes = packet->
GetSize ();
   789     .AddConstructor<WifiPhyStats> ();
   857   void Simulate (
int argc, 
char **argv);
  1032   void LoadConfig (std::string configFilename);
  1039   void SaveConfig (std::string configFilename);
  1062   if (configFilename.compare (
"") != 0)
  1317     m_CSVfileName (
"vanet-routing.output.csv"),
  1318     m_CSVfileName2 (
"vanet-routing.output2.csv"),
  1320     m_protocolName (
"protocol"),
  1322     m_traceMobility (false),
  1328     m_lossModelName (
""),
  1329     m_phyMode (
"OfdmRate6MbpsBW10MHz"),
  1333     m_logFile (
"low99-ct-unterstrass-1day.filt.7.adj.log"),
  1336     m_TotalSimTime (300.01),
  1338     m_phyModeB (
"DsssRate11Mbps"),
  1339     m_trName (
"vanet-routing-compare"),
  1342     m_wavePacketSize (200),
  1343     m_waveInterval (0.1),
  1346     m_gpsAccuracyNs (40),
  1347     m_txMaxDelayMs (10),
  1348     m_routingTables (0),
  1351     m_loadConfigFilename (
"load-config.txt"),
  1352     m_saveConfigFilename (
""),
  1356     m_txSafetyRange1 (50.0),
  1357     m_txSafetyRange2 (100.0),
  1358     m_txSafetyRange3 (150.0),
  1359     m_txSafetyRange4 (200.0),
  1360     m_txSafetyRange5 (250.0),
  1361     m_txSafetyRange6 (300.0),
  1362     m_txSafetyRange7 (350.0),
  1363     m_txSafetyRange8 (400.0),
  1364     m_txSafetyRange9 (450.0),
  1365     m_txSafetyRange10 (500.0),
  1366     m_txSafetyRanges (),
  1368     m_cumulativeBsmCaptureStart (0)
  1388                                 ns3::MakeUintegerChecker<uint32_t> ());
  1390                                   "Number of sink nodes for routing non-BSM traffic",
  1392                                   ns3::MakeUintegerChecker<uint32_t> ());
  1394                                          "Trace mobility 1=yes;0=no",
  1396                                          ns3::MakeUintegerChecker<uint32_t> ());
  1400                                     ns3::MakeUintegerChecker<uint32_t> ());
  1402                                      "Propagation Loss Model",
  1404                                      ns3::MakeUintegerChecker<uint32_t> ());
  1406                                   "Fast Fading Model",
  1408                                   ns3::MakeUintegerChecker<uint32_t> ());
  1410                                      "802.11 mode (0=802.11a;1=802.11p)",
  1412                                      ns3::MakeUintegerChecker<uint32_t> ());
  1414                                     "Mobility mode 0=random waypoint;1=mobility trace file",
  1416                                     ns3::MakeUintegerChecker<uint32_t> ());
  1418                                   "Number of nodes (vehicles)",
  1420                                   ns3::MakeUintegerChecker<uint32_t> ());
  1422                                      "Node speed (m/s) for RWP model",
  1424                                      ns3::MakeUintegerChecker<uint32_t> ());
  1426                                      "Node pause time (s) for RWP model",
  1428                                      ns3::MakeUintegerChecker<uint32_t> ());
  1430                                           "Size in bytes of WAVE BSM",
  1432                                           ns3::MakeUintegerChecker<uint32_t> ());
  1434                                    "Verbose 0=no;1=yes",
  1436                                    ns3::MakeUintegerChecker<uint32_t> ());
  1440                                     ns3::MakeUintegerChecker<uint32_t> ());
  1442                                          "Dump routing tables at t=5 seconds 0=no;1=yes",
  1444                                          ns3::MakeUintegerChecker<uint32_t> ());
  1446                                       "Dump ASCII trace 0=no;1=yes",
  1448                                       ns3::MakeUintegerChecker<uint32_t> ());
  1450                                 "Generate PCAP files 0=no;1=yes",
  1452                                 ns3::MakeUintegerChecker<uint32_t> ());
  1454                                                      "Simulation starte time for capturing cumulative BSM",
  1456                                                      ns3::MakeUintegerChecker<uint32_t> ());
  1459                                           "BSM range for PDR inclusion",
  1461                                           ns3::MakeDoubleChecker<double> ());
  1464                                           "BSM range for PDR inclusion",
  1466                                           ns3::MakeDoubleChecker<double> ());
  1469                                           "BSM range for PDR inclusion",
  1471                                           ns3::MakeDoubleChecker<double> ());
  1474                                           "BSM range for PDR inclusion",
  1476                                           ns3::MakeDoubleChecker<double> ());
  1479                                           "BSM range for PDR inclusion",
  1481                                           ns3::MakeDoubleChecker<double> ());
  1483                                           "BSM range for PDR inclusion",
  1485                                           ns3::MakeDoubleChecker<double> ());
  1487                                           "BSM range for PDR inclusion",
  1489                                           ns3::MakeDoubleChecker<double> ());
  1491                                           "BSM range for PDR inclusion",
  1493                                           ns3::MakeDoubleChecker<double> ());
  1495                                           "BSM range for PDR inclusion",
  1497                                           ns3::MakeDoubleChecker<double> ());
  1499                                            "BSM range for PDR inclusion",
  1501                                            ns3::MakeDoubleChecker<double> ());
  1503                                "Transmission power dBm",
  1505                                ns3::MakeDoubleChecker<double> ());
  1507                                      "Total simulation time (s)",
  1509                                      ns3::MakeDoubleChecker<double> ());
  1511                                         "Interval (s) between WAVE BSMs",
  1513                                         ns3::MakeDoubleChecker<double> ());
  1515                                          "GPS sync accuracy (ns)",
  1517                                          ns3::MakeDoubleChecker<double> ());
  1519                                         "Tx May Delay (ms)",
  1521                                         ns3::MakeDoubleChecker<double> ());
  1523                                        "CSV filename (for time series data)",
  1527                                         "CSV filename 2 (for overall simulation scenario results)",
  1531                                    "PHY mode (802.11p)",
  1535                                      "Mobility trace filename",
  1536                                      ns3::StringValue (
"./src/wave/examples/low99-ct-unterstrass-1day.filt.7.adj.mob"),
  1547                                     "PHY mode (802.11a)",
  1636   std::ostringstream oss;
  1638   oss << 
"/NodeList/*/ApplicationList/*/$ns3::OnOffApplication/Tx";
  1674   double averageRoutingGoodputKbps = 0.0;
  1676   averageRoutingGoodputKbps = (((double) totalBytesTotal * 8.0) / 
m_TotalSimTime) / 1000.0;
  1682   uint32_t totalAppBytes = cumulativeWaveBsmBytes + cumulativeRoutingBytes;
  1685   double mac_phy_oh = 0.0;
  1686   if (totalPhyBytes > 0)
  1688       mac_phy_oh = (double) (totalPhyBytes - totalAppBytes) / (double) totalPhyBytes;
  1693       NS_LOG_UNCOND (
"BSM_PDR1=" << bsm_pdr1 << 
" BSM_PDR2=" << bsm_pdr2 << 
" BSM_PDR3=" << bsm_pdr3 << 
" BSM_PDR4=" << bsm_pdr4 << 
" BSM_PDR5=" << bsm_pdr5 << 
" BSM_PDR6=" << bsm_pdr6 << 
" BSM_PDR7=" << bsm_pdr7 << 
" BSM_PDR8=" << bsm_pdr8 << 
" BSM_PDR9=" << bsm_pdr9 << 
" BSM_PDR10=" << bsm_pdr10 << 
" Goodput=" << averageRoutingGoodputKbps << 
"Kbps MAC/PHY-oh=" << mac_phy_oh);
  1699   out << bsm_pdr1 << 
","  1709       << averageRoutingGoodputKbps << 
","  1727   Simulator::Destroy ();
  1735   Vector pos = 
mobility->GetPosition (); 
  1736   Vector vel = 
mobility->GetVelocity (); 
  1744       WaveBsmHelper::GetNodesMoving ()[nodeId] = 1;
  1750   *os << 
Simulator::Now () << 
" POS: x=" << pos.x << 
", y=" << pos.y
  1751       << 
", z=" << pos.z << 
"; VEL:" << vel.x << 
", y=" << vel.y
  1752       << 
", z=" << vel.z << std::endl;
  1760   double kbps = (bytesTotal * 8.0) / 1000;
  1761   double wavePDR = 0.0;
  1764   if (wavePktsSent > 0)
  1767       wavePDR = (double) wavePktsReceived / (
double) wavePktsSent;
  1787   uint32_t totalAppBytes = cumulativeWaveBsmBytes + cumulativeRoutingBytes;
  1790   double mac_phy_oh = 0.0;
  1791   if (totalPhyBytes > 0)
  1793       mac_phy_oh = (double) (totalPhyBytes - totalAppBytes) / (double) totalPhyBytes;
  1800       NS_LOG_UNCOND (
"At t=" << (
Simulator::Now ()).As (Time::S) << 
" BSM_PDR1=" << wavePDR1_2 << 
" BSM_PDR1=" << wavePDR2_2 << 
" BSM_PDR3=" << wavePDR3_2 << 
" BSM_PDR4=" << wavePDR4_2 << 
" BSM_PDR5=" << wavePDR5_2 << 
" BSM_PDR6=" << wavePDR6_2 << 
" BSM_PDR7=" << wavePDR7_2 << 
" BSM_PDR8=" << wavePDR8_2 << 
" BSM_PDR9=" << wavePDR9_2 << 
" BSM_PDR10=" << wavePDR10_2 << 
" Goodput=" << kbps << 
"Kbps" );
  1809       << wavePktsSent << 
","  1810       << wavePktsReceived << 
","  1812       << waveExpectedRxPktCount << 
","  1813       << waveRxPktInRangeCount << 
","  1814       << wavePDR1_2 << 
","  1815       << wavePDR2_2 << 
","  1816       << wavePDR3_2 << 
","  1817       << wavePDR4_2 << 
","  1818       << wavePDR5_2 << 
","  1819       << wavePDR6_2 << 
","  1820       << wavePDR7_2 << 
","  1821       << wavePDR8_2 << 
","  1822       << wavePDR9_2 << 
","  1823       << wavePDR10_2 << 
","  1833   for (
int index = 1; index <= 10; index++)
  1842       for (
int index = 1; index <= 10; index++)
  1865   GlobalValue::GetValueByName (
"VRCport", uintegerValue);
  1867   GlobalValue::GetValueByName (
"VRCnSinks", uintegerValue);
  1869   GlobalValue::GetValueByName (
"VRCtraceMobility", uintegerValue);
  1871   GlobalValue::GetValueByName (
"VRCprotocol", uintegerValue);
  1873   GlobalValue::GetValueByName (
"VRClossModel", uintegerValue);
  1875   GlobalValue::GetValueByName (
"VRCfading", uintegerValue);
  1877   GlobalValue::GetValueByName (
"VRC80211mode", uintegerValue);
  1879   GlobalValue::GetValueByName (
"VRCmobility", uintegerValue);
  1881   GlobalValue::GetValueByName (
"VRCnNodes", uintegerValue);
  1883   GlobalValue::GetValueByName (
"VRCnodeSpeed", uintegerValue);
  1885   GlobalValue::GetValueByName (
"VRCnodePause", uintegerValue);
  1887   GlobalValue::GetValueByName (
"VRCwavePacketSize", uintegerValue);
  1889   GlobalValue::GetValueByName (
"VRCverbose", uintegerValue);
  1891   GlobalValue::GetValueByName (
"VRCscenario", uintegerValue);
  1893   GlobalValue::GetValueByName (
"VRCroutingTables", uintegerValue);
  1895   GlobalValue::GetValueByName (
"VRCasciiTrace", uintegerValue);
  1897   GlobalValue::GetValueByName (
"VRCpcap", uintegerValue);
  1899   GlobalValue::GetValueByName (
"VRCcumulativeBsmCaptureStart", timeValue);
  1903   GlobalValue::GetValueByName (
"VRCtxSafetyRange1", doubleValue);
  1905   GlobalValue::GetValueByName (
"VRCtxSafetyRange2", doubleValue);
  1907   GlobalValue::GetValueByName (
"VRCtxSafetyRange3", doubleValue);
  1909   GlobalValue::GetValueByName (
"VRCtxSafetyRange4", doubleValue);
  1911   GlobalValue::GetValueByName (
"VRCtxSafetyRange5", doubleValue);
  1913   GlobalValue::GetValueByName (
"VRCtxSafetyRange6", doubleValue);
  1915   GlobalValue::GetValueByName (
"VRCtxSafetyRange7", doubleValue);
  1917   GlobalValue::GetValueByName (
"VRCtxSafetyRange8", doubleValue);
  1919   GlobalValue::GetValueByName (
"VRCtxSafetyRange9", doubleValue);
  1921   GlobalValue::GetValueByName (
"VRCtxSafetyRange10", doubleValue);
  1923   GlobalValue::GetValueByName (
"VRCtxp", doubleValue);
  1925   GlobalValue::GetValueByName (
"VRCtotalTime", doubleValue);
  1927   GlobalValue::GetValueByName (
"VRCwaveInterval", doubleValue);
  1929   GlobalValue::GetValueByName (
"VRCgpsAccuracyNs", doubleValue);
  1931   GlobalValue::GetValueByName (
"VRCtxMaxDelayMs", doubleValue);
  1934   GlobalValue::GetValueByName (
"VRCCSVfileName", stringValue);
  1936   GlobalValue::GetValueByName (
"VRCCSVfileName2", stringValue);
  1938   GlobalValue::GetValueByName (
"VRCphyMode", stringValue);
  1940   GlobalValue::GetValueByName (
"VRCtraceFile", stringValue);
  1942   GlobalValue::GetValueByName (
"VRClogFile", stringValue);
  1944   GlobalValue::GetValueByName (
"VRCrate", stringValue);
  1946   GlobalValue::GetValueByName (
"VRCphyModeB", stringValue);
  1948   GlobalValue::GetValueByName (
"VRCtrName", stringValue);
  2003   GlobalValue::GetValueByName (
"VRCtrName", stringValue);
  2011   double txDist1 = 50.0;
  2012   double txDist2 = 100.0;
  2013   double txDist3 = 150.0;
  2014   double txDist4 = 200.0;
  2015   double txDist5 = 250.0;
  2016   double txDist6 = 300.0;
  2017   double txDist7 = 350.0;
  2018   double txDist8 = 350.0;
  2019   double txDist9 = 350.0;
  2020   double txDist10 = 350.0;
  2023   cmd.AddValue (
"CSVfileName", 
"The name of the CSV output file name", 
m_CSVfileName);
  2024   cmd.AddValue (
"CSVfileName2", 
"The name of the CSV output file name2", 
m_CSVfileName2);
  2026   cmd.AddValue (
"nodes", 
"Number of nodes (i.e. vehicles)", 
m_nNodes);
  2027   cmd.AddValue (
"sinks", 
"Number of routing sinks", 
m_nSinks);
  2028   cmd.AddValue (
"txp", 
"Transmit power (dB), e.g. txp=7.5", 
m_txp);
  2030   cmd.AddValue (
"protocol", 
"1=OLSR;2=AODV;3=DSDV;4=DSR", 
m_protocol);
  2031   cmd.AddValue (
"lossModel", 
"1=Friis;2=ItuR1411Los;3=TwoRayGround;4=LogDistance", 
m_lossModel);
  2032   cmd.AddValue (
"fading", 
"0=None;1=Nakagami;(buildings=1 overrides)", 
m_fading);
  2034   cmd.AddValue (
"80211Mode", 
"1=802.11p; 2=802.11b; 3=WAVE-PHY", 
m_80211mode);
  2035   cmd.AddValue (
"traceFile", 
"Ns2 movement trace file", 
m_traceFile);
  2042   cmd.AddValue (
"verbose", 
"0=quiet;1=verbose", 
m_verbose);
  2045   cmd.AddValue (
"scenario", 
"1=synthetic, 2=playback-trace", 
m_scenario);
  2049   cmd.AddValue (
"txdist1", 
"Expected BSM tx range, m", txDist1);
  2050   cmd.AddValue (
"txdist2", 
"Expected BSM tx range, m", txDist2);
  2051   cmd.AddValue (
"txdist3", 
"Expected BSM tx range, m", txDist3);
  2052   cmd.AddValue (
"txdist4", 
"Expected BSM tx range, m", txDist4);
  2053   cmd.AddValue (
"txdist5", 
"Expected BSM tx range, m", txDist5);
  2054   cmd.AddValue (
"txdist6", 
"Expected BSM tx range, m", txDist6);
  2055   cmd.AddValue (
"txdist7", 
"Expected BSM tx range, m", txDist7);
  2056   cmd.AddValue (
"txdist8", 
"Expected BSM tx range, m", txDist8);
  2057   cmd.AddValue (
"txdist9", 
"Expected BSM tx range, m", txDist9);
  2058   cmd.AddValue (
"txdist10", 
"Expected BSM tx range, m", txDist10);
  2061   cmd.AddValue (
"routingTables", 
"Dump routing tables at t=5 seconds", 
m_routingTables);
  2063   cmd.AddValue (
"pcap", 
"Create PCAP files for all nodes", 
m_pcap);
  2066   cmd.AddValue (
"exp", 
"Experiment", 
m_exp);
  2068   cmd.Parse (argc, argv);
  2087   cmd.Parse (argc, argv);
  2114   Packet::EnablePrinting ();
  2143       WaveBsmHelper::GetNodesMoving ().resize (
m_nNodes, 0);
  2150       pos.
SetTypeId (
"ns3::RandomBoxPositionAllocator");
  2151       pos.
Set (
"X", 
StringValue (
"ns3::UniformRandomVariable[Min=0.0|Max=1500.0]"));
  2152       pos.
Set (
"Y", 
StringValue (
"ns3::UniformRandomVariable[Min=0.0|Max=300.0]"));
  2154       pos.
Set (
"Z", 
StringValue (
"ns3::UniformRandomVariable[Min=1.0|Max=2.0]"));
  2159       std::stringstream ssSpeed;
  2160       ssSpeed << 
"ns3::UniformRandomVariable[Min=0.0|Max=" << 
m_nodeSpeed << 
"]";
  2161       std::stringstream ssPause;
  2162       ssPause << 
"ns3::ConstantRandomVariable[Constant=" << 
m_nodePause << 
"]";
  2172       WaveBsmHelper::GetNodesMoving ().resize (
m_nNodes, 1);
  2203       NS_LOG_ERROR (
"Invalid propagation loss model specified.  Values must be [1-4], where 1=Friis;2=ItuR1411Los;3=TwoRayGround;4=LogDistance");
  2255   WaveHelper waveHelper = WaveHelper::Default ();
  2269   wifi.SetRemoteStationManager (
"ns3::ConstantRateWifiManager",
  2291   wifiMac.
SetType (
"ns3::AdhocWifiMac");
  2328   int chAccessMode = 0;
  2393       m_traceFile = 
"src/wave/examples/low99-ct-unterstrass-1day.filt.7.adj.mob";
  2394       m_logFile = 
"low99-ct-unterstrass-1day.filt.7.adj.log";
  2410   out << 
"SimulationSecond," <<
  2412     "PacketsReceived," <<
  2414     "RoutingProtocol," <<
  2415     "TransmissionPower," <<
  2417     "WavePtksReceived," <<
  2419     "ExpectedWavePktsReceived," <<
  2420     "ExpectedWavePktsInCoverageReceived," <<
  2446        << 
"AverageRoutingGoodputKbps,"  2453 main (
int argc, 
char *argv[])
 static ns3::GlobalValue g_waveInterval("VRCwaveInterval", "Interval (s) between WAVE BSMs", ns3::DoubleValue(0.1), ns3::MakeDoubleChecker< double >())
 
void AddPropagationLoss(std::string name, std::string n0="", const AttributeValue &v0=EmptyAttributeValue(), std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue())
 
void Set(std::string name, const AttributeValue &v)
 
holds a vector of ns3::Application pointers. 
 
  Introspection did not find any typical Config paths. 
 
static ns3::GlobalValue g_CSVfileName("VRCCSVfileName", "CSV filename (for time series data)", ns3::StringValue("vanet-routing.output.csv"), ns3::MakeStringChecker())
 
TimeWithUnit As(const enum Unit unit=Time::AUTO) const
Attach a unit to a Time, to facilitate output in a specific unit. 
 
std::string m_logFile
log file 
 
static void EnableLogComponents(void)
Helper to enable all WaveNetDevice log components with one statement. 
 
helps to create wifi 802.11p objects of WifiNetDevice class 
 
The RoutingStats class manages collects statistics on routing data (application-data packet and byte ...
 
RoutingHelper()
Constructor. 
 
static ns3::GlobalValue g_nNodes("VRCnNodes", "Number of nodes (vehicles)", ns3::UintegerValue(156), ns3::MakeUintegerChecker< uint32_t >())
 
Simulation virtual time values and global simulation resolution. 
 
Manage ASCII trace files for device models. 
 
static ns3::GlobalValue g_asciiTrace("VRCasciiTrace", "Dump ASCII trace 0=no;1=yes", ns3::UintegerValue(0), ns3::MakeUintegerChecker< uint32_t >())
 
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
 
void SetStream(int64_t stream)
Specifies the stream number for the RngStream. 
 
int m_routingTables
dump routing table (at t=5 sec). 0=No, 1=Yes 
 
double m_waveInterval
seconds 
 
NodeContainer m_adhocTxNodes
adhoc transmit nodes 
 
void WriteCsvHeader()
Write the header line to the CSV file1. 
 
static ns3::GlobalValue g_txSafetyRange2("VRCtxSafetyRange2", "BSM range for PDR inclusion", ns3::DoubleValue(100.0), ns3::MakeDoubleChecker< double >())
 
uint32_t GetId(void) const
 
std::string m_CSVfileName
CSV file name. 
 
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system. 
 
holds a vector of std::pair of Ptr<Ipv4> and interface index. 
 
void SetupRoutingMessages()
Set up generation of packets to be routed through the vehicular network. 
 
static ns3::GlobalValue g_wavePacketSize("VRCwavePacketSize", "Size in bytes of WAVE BSM", ns3::UintegerValue(200), ns3::MakeUintegerChecker< uint32_t >())
 
std::string m_saveConfigFilename
save configi file name 
 
uint32_t GetSize(void) const
Returns the the size in bytes of the packet (including the zero-filled initial payload). 
 
uint32_t m_wavePacketSize
bytes 
 
void SetRemoteStationManager(std::string type, std::string n0="", const AttributeValue &v0=EmptyAttributeValue(), std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue())
 
virtual void ConfigureNodes()
Configure nodes. 
 
virtual void ConfigureNodes()
Configure nodes. 
 
Hold variables of type string. 
 
void SetLogging(int log)
Enable/disable logging. 
 
Make it easy to create and manage PHY objects for the YANS model. 
 
The WifiPhyStats class collects Wifi MAC/PHY statistics. 
 
virtual void ParseCommandLineArguments(int argc, char **argv)
Process command line arguments. 
 
static std::string PrintReceivedRoutingPacket(Ptr< Socket > socket, Ptr< Packet > packet, Address srcAddress)
 
void SetRxBytes(uint32_t rxBytes)
Sets the number of bytes received. 
 
static ns3::GlobalValue g_txSafetyRange7("VRCtxSafetyRange7", "BSM range for PDR inclusion", ns3::DoubleValue(350.0), ns3::MakeDoubleChecker< double >())
 
uint32_t GetCumulativeTxPkts()
Returns the cumulative number of packets transmitted. 
 
void Install(void) const
Read the ns2 trace file and configure the movement patterns of all nodes contained in the global ns3:...
 
static ns3::GlobalValue g_rate("VRCrate", "Data rate", ns3::StringValue("2048bps"), ns3::MakeStringChecker())
 
Callback< R > MakeBoundCallback(R(*fnPtr)(TX), ARG a1)
Make Callbacks with one bound argument. 
 
static ns3::GlobalValue g_traceFile("VRCtraceFile", "Mobility trace filename", ns3::StringValue("./src/wave/examples/low99-ct-unterstrass-1day.filt.7.adj.mob"), ns3::MakeStringChecker())
 
static ns3::GlobalValue g_mobility("VRCmobility", "Mobility mode 0=random waypoint;1=mobility trace file", ns3::UintegerValue(1), ns3::MakeUintegerChecker< uint32_t >())
 
uint32_t m_TxPkts
transmit packets 
 
void PhyTxDrop(std::string context, Ptr< const Packet > packet)
Callback signiture for Phy/TxDrop. 
 
Helper class that adds DSR routing to nodes. 
 
void SetupWaveMessages()
Set up generation of IEEE 1609 WAVE messages, as a Basic Safety Message (BSM). 
 
void Set(const std::string &name, const AttributeValue &value, Args &&... args)
Set an attribute to be set during construction. 
 
double m_txSafetyRange2
range 2 
 
std::string m_traceFile
trace file 
 
uint32_t GetCumulativeRxBytes()
Returns the cumulative number of bytes received. 
 
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name. 
 
Time MilliSeconds(uint64_t value)
Construct a Time in the indicated unit. 
 
virtual ~WifiPhyStats()
Destructor. 
 
void IncRxPkts()
Increments the count of packets received. 
 
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory. 
 
aggregate IP/TCP/UDP functionality to existing Nodes. 
 
Helper class that adds OLSR routing to nodes. 
 
Ipv4InterfaceContainer m_adhocTxInterfaces
adhoc transmit interfaces 
 
virtual void ParseCommandLineArguments(int argc, char **argv)
Process command line arguments. 
 
#define NS_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO. 
 
int m_routingTables
routing tables 
 
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate. 
 
void(* Time)(Time oldValue, Time newValue)
TracedValue callback signature for Time. 
 
Ptr< OutputStreamWrapper > CreateFileStream(std::string filename, std::ios::openmode filemode=std::ios::out)
Create and initialize an output stream object we'll use to write the traced bits. ...
 
int64_t AssignStreams(NodeContainer c, int64_t stream)
Assign a fixed random variable stream number to the random variables used by the mobility models (inc...
 
void IncTxBytes(uint32_t txBytes)
Increment the number of bytes transmitted. 
 
uint32_t m_cumulativeRxBytes
cumulative receive bytes 
 
Hold a so-called 'global value'. 
 
double m_txSafetyRange1
range 1 
 
std::string m_phyMode
phy mode 
 
uint32_t m_TxBytes
transmit bytes 
 
std::string m_phyModeB
phy mode 
 
void CommandSetup(int argc, char **argv)
Run the simulation. 
 
static ns3::GlobalValue g_CSVfileName2("VRCCSVfileName2", "CSV filename 2 (for overall simulation scenario results)", ns3::StringValue("vanet-routing.output2.csv"), ns3::MakeStringChecker())
 
helps to create WifiNetDevice objects 
 
virtual void RunSimulation()
Run the simulation. 
 
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
 
A helper to make it easier to instantiate an ns3::OnOffApplication on a set of nodes. 
 
virtual void ConfigureChannels()
Configure channels. 
 
void ReceiveRoutingPacket(Ptr< Socket > socket)
Process a received routing packet. 
 
int64_t AssignStreams(NodeContainer c, int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model...
 
static ns3::GlobalValue g_gpsAccuracyNs("VRCgpsAccuracyNs", "GPS sync accuracy (ns)", ns3::DoubleValue(40), ns3::MakeDoubleChecker< double >())
 
NetDeviceContainer m_adhocTxDevices
adhoc transmit devices 
 
void SetGlobalsFromConfig()
Set up the global variables from the configuration parameters. 
 
static ns3::GlobalValue g_verbose("VRCverbose", "Verbose 0=no;1=yes", ns3::UintegerValue(0), ns3::MakeUintegerChecker< uint32_t >())
 
a polymophic address class 
 
Ptr< YansWifiChannel > Create(void) const
 
ConfigStoreHelper()
Constructor. 
 
static ns3::GlobalValue g_cumulativeBsmCaptureStart("VRCcumulativeBsmCaptureStart", "Simulation starte time for capturing cumulative BSM", ns3::UintegerValue(0), ns3::MakeUintegerChecker< uint32_t >())
 
static TypeId GetTypeId(void)
Gets the class TypeId. 
 
virtual void ProcessOutputs()
Process outputs. 
 
static ns3::GlobalValue g_txSafetyRange10("VRCtxSafetyRange10", "BSM range for PDR inclusion", ns3::DoubleValue(500.0), ns3::MakeDoubleChecker< double >())
 
WaveBsmHelper m_waveBsmHelper
helper 
 
void SetRxPkts(uint32_t rxPkts)
Sets the number of packets received. 
 
Ptr< const AttributeChecker > MakeStringChecker(void)
  
 
static ns3::GlobalValue g_nodePause("VRCnodePause", "Node pause time (s) for RWP model", ns3::UintegerValue(0), ns3::MakeUintegerChecker< uint32_t >())
 
WifiPreamble
The type of preamble to be used by an IEEE 802.11 transmission. 
 
Time m_cumulativeBsmCaptureStart
capture start 
 
void SetChannel(Ptr< YansWifiChannel > channel)
 
double m_txSafetyRange4
range 4 
 
static ns3::GlobalValue g_fading("VRCfading", "Fast Fading Model", ns3::UintegerValue(0), ns3::MakeUintegerChecker< uint32_t >())
 
void SetRemoteStationManager(std::string type, std::string n0="", const AttributeValue &v0=EmptyAttributeValue(), std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue())
 
std::string m_trName
trace file name 
 
static ns3::GlobalValue g_txp("VRCtxp", "Transmission power dBm", ns3::DoubleValue(7.5), ns3::MakeDoubleChecker< double >())
 
void SetTxPkts(uint32_t txPkts)
Sets the number of packets transmitted. 
 
ApplicationContainer Install(NodeContainer c) const
Install an ns3::OnOffApplication on each node of the input container configured with all the attribut...
 
void SetupRoutingMessages(NodeContainer &c, Ipv4InterfaceContainer &adhocTxInterfaces)
Sets up routing messages on the nodes and their interfaces. 
 
virtual void ProcessOutputs()
Process outputs. 
 
void LogComponentEnable(char const *name, enum LogLevel level)
Enable the logging output associated with that log component. 
 
std::string Get(void) const
  
 
void EnablePcapAll(std::string prefix, bool promiscuous=false)
Enable pcap output on each device (which is of the appropriate type) in the set of all nodes created ...
 
  Helper class which can read ns-2 movement files and configure nodes mobility. 
 
double m_txSafetyRange10
range 10 
 
uint32_t m_cumulativeTxBytes
cumulative transmit bytes 
 
static ns3::GlobalValue g_logFile("VRClogFile", "Log filename", ns3::StringValue("low99-ct-unterstrass-1day.filt.7.adj.log"), ns3::MakeStringChecker())
 
  AttributeValue implementation for Time. 
 
Ptr< Object > Create(void) const
Create an Object instance of the configured TypeId. 
 
bool m_traceMobility
trace mobility 
 
Ipv4Address GetAddress(uint32_t i, uint32_t j=0) const
 
uint32_t GetCumulativeRxPkts()
Returns the cumulative count of packets received. 
 
void LoadConfig(std::string configFilename)
Loads a saved config-store raw text configuration from a given named file. 
 
Hold an unsigned integer type. 
 
uint32_t m_mobility
mobility 
 
static ns3::GlobalValue g_nSinks("VRCnSinks", "Number of sink nodes for routing non-BSM traffic", ns3::UintegerValue(10), ns3::MakeUintegerChecker< uint32_t >())
 
static ns3::GlobalValue g_protocol("VRCprotocol", "Routing protocol", ns3::UintegerValue(2), ns3::MakeUintegerChecker< uint32_t >())
 
helps to create WaveNetDevice objects 
 
static ns3::GlobalValue g_routingTables("VRCroutingTables", "Dump routing tables at t=5 seconds 0=no;1=yes", ns3::UintegerValue(0), ns3::MakeUintegerChecker< uint32_t >())
 
double m_txSafetyRange8
range 8 
 
static ns3::GlobalValue g_txMaxDelayMs("VRCtxMaxDelayMs", "Tx May Delay (ms)", ns3::DoubleValue(10), ns3::MakeDoubleChecker< double >())
 
holds a vector of ns3::NetDevice pointers 
 
virtual void RunSimulation()
Run the simulation. 
 
void SetupAdhocDevices()
Set up the adhoc devices. 
 
std::string m_protocolName
protocol name 
 
static ns3::GlobalValue g_trName("VRCtrName", "Trace name", ns3::StringValue("vanet-routing-compare"), ns3::MakeStringChecker())
 
uint32_t m_80211mode
80211 mode 
 
void ConfigureDefaults()
Configure default attributes. 
 
uint32_t m_protocol
routing protocol; 0=NONE, 1=OLSR, 2=AODV, 3=DSDV, 4=DSR 
 
std::map< Mac48Address, uint64_t > packetsReceived
Map that stores the total packets received per STA (and addressed to that STA) 
 
virtual void SetDefaultAttributeValues()
Sets default attribute values. 
 
virtual void ConfigureApplications()
Configure applications. 
 
uint32_t m_phyTxBytes
phy transmit bytes 
 
double m_txMaxDelayMs
transmit maximum delay 
 
static ns3::GlobalValue g_txSafetyRange3("VRCtxSafetyRange3", "BSM range for PDR inclusion", ns3::DoubleValue(150.0), ns3::MakeDoubleChecker< double >())
 
double m_txSafetyRange5
range 5 
 
The WaveBsmHelper class manages IEEE 1609 WAVE (Wireless Access in Vehicular Environments) Basic Safe...
 
RoutingStats()
Constructor. 
 
void Run()
Run the simulation. 
 
void SetupLogging()
Set up logging. 
 
int m_asciiTrace
ascii trace 
 
std::string m_protocolName
protocol name 
 
Qos Wave Mac Helper class. 
 
VanetRoutingExperiment()
Constructor. 
 
void Start(Time start)
Arrange for all of the Applications in this container to Start() at the Time given as a parameter...
 
double m_txSafetyRange7
range 7 
 
Parse command-line arguments. 
 
std::string m_CSVfileName2
CSV file name. 
 
void Connect(std::string path, const CallbackBase &cb)
 
uint32_t m_nSinks
number of sinks 
 
static ns3::GlobalValue g_port("VRCport", "Port", ns3::UintegerValue(9), ns3::MakeUintegerChecker< uint32_t >())
 
void SetupLogFile()
Set up log file. 
 
void ConfigureDefaults(void)
Configure the default values. 
 
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object. 
 
WifiPhyStats()
Constructor. 
 
std::string m_loadConfigFilename
load config file name 
 
virtual void ConfigureChannels()
Configure channels. 
 
static TypeId GetTypeId(void)
Get class TypeId. 
 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
 
keep track of a set of node pointers. 
 
Hold objects of type Ptr<T>. 
 
virtual ~RoutingHelper()
Destructor. 
 
void SetupRoutingProtocol(NodeContainer &c)
Sets up the protocol protocol on the nodes. 
 
double m_TotalSimTime
seconds 
 
virtual void ConfigureMobility()
Configure mobility. 
 
static ns3::GlobalValue g_phyModeB("VRCphyModeB", "PHY mode (802.11a)", ns3::StringValue("DsssRate11Mbps"), ns3::MakeStringChecker())
 
double m_txSafetyRange3
range 3 
 
void SetMobilityModel(std::string type, std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue(), std::string n8="", const AttributeValue &v8=EmptyAttributeValue(), std::string n9="", const AttributeValue &v9=EmptyAttributeValue())
 
The VanetRoutingExperiment class implements a wifi app that allows VANET routing experiments to be si...
 
uint32_t m_RxPkts
receive packets 
 
void IncRxBytes(uint32_t rxBytes)
Increments the number of (application-data) bytes received, not including MAC/PHY overhead...
 
static ns3::GlobalValue g_80211mode("VRC80211mode", "802.11 mode (0=802.11a;1=802.11p)", ns3::UintegerValue(1), ns3::MakeUintegerChecker< uint32_t >())
 
uint32_t GetRxPkts()
Returns the count of packets received. 
 
#define NS_LOG_UNCOND(msg)
Output the requested message unconditionally. 
 
bool SetValue(const AttributeValue &value)
Set the value of this GlobalValue. 
 
Ptr< Socket > SetupRoutingPacketReceive(Ipv4Address addr, Ptr< Node > node)
Sets up a routing packet for tranmission. 
 
void SetTxBytes(uint32_t txBytes)
Sets the number of bytes transmitted. 
 
uint32_t m_protocol
protocol 
 
virtual NetDeviceContainer Install(const WifiPhyHelper &phy, const WifiMacHelper &mac, NodeContainer c) const
 
manage and create wifi channel objects for the YANS model. 
 
static ns3::GlobalValue g_txSafetyRange6("VRCtxSafetyRange6", "BSM range for PDR inclusion", ns3::DoubleValue(300.0), ns3::MakeDoubleChecker< double >())
 
void OnOffTrace(std::string context, Ptr< const Packet > packet)
Trace the receipt of an on-off-application generated packet. 
 
virtual void ConfigureDevices()
Configure devices. 
 
create MAC layers for a ns3::WifiNetDevice. 
 
To trace WaveNetDevice, we have to overwrite the trace functions of class YansWifiPhyHelper. 
 
RoutingStats routingStats
routing statistics 
 
virtual void ConfigureApplications()
Configure applications. 
 
void SetPcapDataLinkType(SupportedPcapDataLinkTypes dlt)
Set the data link type of PCAP traces to be used. 
 
The ConfigStoreHelper class simplifies config-store raw text load and save. 
 
void IncTxPkts()
Increment the count of packets transmitted. 
 
int64_t m_streamIndex
used to get consistent random numbers across scenarios 
 
Nqos Wave Mac Helper class. 
 
void AssignIpAddresses(NetDeviceContainer &d, Ipv4InterfaceContainer &adhocTxInterfaces)
Assigns IPv4 addresses to net devices and their interfaces. 
 
std::vector< double > m_txSafetyRanges
list of ranges 
 
void PhyRxDrop(std::string context, Ptr< const Packet > packet)
Callback signiture for Phy/RxDrop. 
 
void SetupScenario()
Set up a prescribed scenario. 
 
uint32_t m_RxBytes
reeive bytes 
 
virtual void SetType(std::string type, std::string n0="", const AttributeValue &v0=EmptyAttributeValue(), std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue(), std::string n8="", const AttributeValue &v8=EmptyAttributeValue(), std::string n9="", const AttributeValue &v9=EmptyAttributeValue(), std::string n10="", const AttributeValue &v10=EmptyAttributeValue())
 
void Install(Ptr< Node > node) const
"Layout" a single node according to the current position allocator type. 
 
void Install(std::string nodeName) const
Aggregate implementations of the ns3::Ipv4, ns3::Ipv6, ns3::Udp, and ns3::Tcp classes onto the provid...
 
uint32_t GetTxPkts()
Returns the number of packets transmitted. 
 
std::string m_lossModelName
loss model name 
 
double m_txSafetyRange9
range 9 
 
static ns3::GlobalValue g_txSafetyRange8("VRCtxSafetyRange8", "BSM range for PDR inclusion", ns3::DoubleValue(400.0), ns3::MakeDoubleChecker< double >())
 
uint32_t m_nSinks
number of sink nodes (< all nodes) 
 
Helper class used to assign positions and mobility models to nodes. 
 
static ns3::GlobalValue g_totalTime("VRCtotalTime", "Total simulation time (s)", ns3::DoubleValue(300.01), ns3::MakeDoubleChecker< double >())
 
Instantiate subclasses of ns3::Object. 
 
uint32_t GetTxBytes()
Returns the number of bytes transmitted. 
 
Ipv4 addresses are stored in host order in this class. 
 
  AttributeValue implementation for Address. 
 
static ns3::GlobalValue g_phyMode("VRCphyMode", "PHY mode (802.11p)", ns3::StringValue("OfdmRate6MbpsBW10MHz"), ns3::MakeStringChecker())
 
void Stop(Time stop)
Arrange for all of the Applications in this container to Stop() at the Time given as a parameter...
 
Ipv4InterfaceContainer Assign(const NetDeviceContainer &c)
Assign IP addresses to the net devices specified in the container based on the current network prefix...
 
static ns3::GlobalValue g_txSafetyRange4("VRCtxSafetyRange4", "BSM range for PDR inclusion", ns3::DoubleValue(200.0), ns3::MakeDoubleChecker< double >())
 
void experiment(std::string queue_disc_type)
 
static ns3::GlobalValue g_lossModel("VRClossModel", "Propagation Loss Model", ns3::UintegerValue(3), ns3::MakeUintegerChecker< uint32_t >())
 
virtual void ConfigureMobility()
Configure mobility. 
 
double m_gpsAccuracyNs
GPS accuracy. 
 
virtual void SetDefaultAttributeValues()
Sets default attribute values. 
 
uint32_t m_lossModel
loss model 
 
RoutingStats & GetRoutingStats()
Returns the RoutingStats instance. 
 
virtual Ptr< Node > GetNode(void) const =0
Return the node this socket is associated with. 
 
void Simulate(int argc, char **argv)
Enacts simulation of an ns-3 wifi application. 
 
static ns3::GlobalValue g_txSafetyRange9("VRCtxSafetyRange9", "BSM range for PDR inclusion", ns3::DoubleValue(450.0), ns3::MakeDoubleChecker< double >())
 
uint32_t m_cumulativeTxPkts
cumulative transmit packets 
 
void CheckThroughput()
Checks the throughput and outputs summary to CSV file1. 
 
DSR helper class to manage creation of DSR routing instance and to insert it on a node as a sublayer ...
 
virtual NetDeviceContainer Install(const WifiPhyHelper &phy, const WifiMacHelper &macHelper, NodeContainer c) const
 
Time Seconds(double value)
Construct a Time in the indicated unit. 
 
void SetDefault(std::string name, const AttributeValue &value)
 
Ptr< WaveBsmStats > GetWaveBsmStats()
Returns the WaveBsmStats instance. 
 
virtual void ConfigureTracing()
Configure tracing. 
 
Ptr< Node > Get(uint32_t i) const
Get the Ptr<Node> stored in this container at a given index. 
 
Ptr< WifiPhyStats > m_wifiPhyStats
wifi phy statistics 
 
Helper class that adds ns3::Ipv4ListRouting objects. 
 
static ns3::GlobalValue g_txSafetyRange5("VRCtxSafetyRange5", "BSM range for PDR inclusion", ns3::DoubleValue(250.0), ns3::MakeDoubleChecker< double >())
 
double m_TotalSimTime
total sim time 
 
A helper class to make life easier while doing simple IPv4 address assignment in scripts. 
 
virtual void ConfigureTracing()
Configure tracing. 
 
Time Now(void)
create an ns3::Time instance which contains the current simulation time. 
 
#define NS_LOG_ERROR(msg)
Use NS_LOG to output a message of level LOG_ERROR. 
 
void EnableAsciiAll(std::string prefix)
Enable ascii trace output on each device (which is of the appropriate type) in the set of all nodes c...
 
void Create(uint32_t n)
Create n nodes and append pointers to them to the end of this NodeContainer. 
 
void Install(NodeContainer &c, NetDeviceContainer &d, Ipv4InterfaceContainer &i, double totalTime, int protocol, uint32_t nSinks, int routingTables)
Installs routing functionality on nodes and their devices and interfaces. 
 
virtual void ConfigureDevices()
Configure devices. 
 
uint32_t GetRxBytes()
Returns the number of bytes received. 
 
ApplicationContainer Install(Ipv4InterfaceContainer i) const
Install an ns3::BsmApplication on each node of the input container configured with all the attributes...
 
std::ofstream m_os
output stream 
 
static ns3::GlobalValue g_nodeSpeed("VRCnodeSpeed", "Node speed (m/s) for RWP model", ns3::UintegerValue(20), ns3::MakeUintegerChecker< uint32_t >())
 
Helper class that adds AODV routing to nodes. 
 
A base class which provides memory management and object aggregation. 
 
virtual Ptr< Packet > RecvFrom(uint32_t maxSize, uint32_t flags, Address &fromAddress)=0
Read a single packet from the socket and retrieve the sender address. 
 
void SetPropagationDelay(std::string name, std::string n0="", const AttributeValue &v0=EmptyAttributeValue(), std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue())
 
uint32_t GetTxBytes()
Returns the number of bytes that have been transmitted (this includes MAC/PHY overhead) ...
 
void PhyTxTrace(std::string context, Ptr< const Packet > packet, WifiMode mode, WifiPreamble preamble, uint8_t txPower)
Callback signiture for Phy/Tx trace. 
 
void SetPositionAllocator(Ptr< PositionAllocator > allocator)
Set the position allocator which will be used to allocate the initial position of every node initiali...
 
The WifiApp class enforces program flow for ns-3 wifi applications. 
 
static ns3::GlobalValue g_pcap("VRCpcap", "Generate PCAP files 0=no;1=yes", ns3::UintegerValue(0), ns3::MakeUintegerChecker< uint32_t >())
 
static ns3::GlobalValue g_scenario("VRCscenario", "Scenario", ns3::UintegerValue(1), ns3::MakeUintegerChecker< uint32_t >())
 
uint32_t GetCumulativeTxBytes()
Returns the cumulative number of bytes transmitted. 
 
static ns3::GlobalValue g_traceMobility("VRCtraceMobility", "Trace mobility 1=yes;0=no", ns3::UintegerValue(0), ns3::MakeUintegerChecker< uint32_t >())
 
uint32_t pktSize
packet size used for the simulation (in bytes) 
 
This class can be used to hold variables of floating point type such as 'double' or 'float'...
 
uint32_t m_scenario
scenario 
 
The RoutingHelper class generates routing data between nodes (vehicles) and uses the RoutingStats cla...
 
void SaveConfig(std::string configFilename)
Saves a configuration to a given named config-store raw text configuration file. 
 
Helper class that adds DSDV routing to nodes. 
 
void Install(DsrHelper &dsrHelper, NodeContainer nodes)
Install routing to the nodes. 
 
void SetupAdhocMobilityNodes()
Set up the adhoc mobility nodes. 
 
virtual ~WifiApp()
Destructor. 
 
a unique identifier for an interface. 
 
static void CourseChange(std::ostream *os, std::string context, Ptr< const MobilityModel > mobility)
Course change function. 
 
Ptr< RoutingHelper > m_routingHelper
routing helper 
 
void SetConfigFromGlobals()
Set up configuration parameter from the global variables. 
 
uint32_t m_cumulativeRxPkts
cumulative receive packets 
 
TypeId SetParent(TypeId tid)
Set the parent TypeId. 
 
void SetRoutingHelper(const Ipv4RoutingHelper &routing)
 
static void EnableLogComponents(void)
Helper to enable all WifiNetDevice log components with one statement. 
 
Callback< R, Ts... > MakeCallback(R(T::*memPtr)(Ts...), OBJ objPtr)
Build Callbacks for class method members which take varying numbers of arguments and potentially retu...
 
uint32_t m_nNodes
number of nodes 
 
static void PrintRoutingTableAllAt(Time printTime, Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S)
prints the routing tables of all nodes at a particular time. 
 
uint32_t m_phyTxPkts
phy transmit packets 
 
void SetAttribute(std::string name, const AttributeValue &value)
Helper function used to set the underlying application attributes. 
 
static ns3::GlobalValue g_txSafetyRange1("VRCtxSafetyRange1", "BSM range for PDR inclusion", ns3::DoubleValue(50.0), ns3::MakeDoubleChecker< double >())
 
Ipv4Address GetIpv4(void) const
 
double m_txSafetyRange6
range 6 
 
void SetBase(Ipv4Address network, Ipv4Mask mask, Ipv4Address base="0.0.0.1")
Set the base network number, network mask and base address. 
 
Allocate a set of positions. 
 
virtual int64_t AssignStreams(int64_t stream)=0
Assign a fixed random variable stream number to the random variables used by this model...