[ndnSIM] NDN with Wifi in Infrastructure Mode

Gustavo Gonzalez gonzalezcga at gmail.com
Sun Jun 7 11:59:39 PDT 2015

I have been doing simulations based on the example of Wifi in
infrastructure mode, adding the ndn modules developed by your team and I
get the following errors after compilation.

I would also like to ask you if it is possible to run simulation of LTE
based on NDN. I ask you this because I also have been running some scripts
including both technologies but it gives me errors associated with the ndn
module, saying that ndnHelpers cannot we recognized.

I appreciate all the help and hints you could provide me in order to fix
this issues.

Best regards.


[1914/2070] cxx: scratch/wifi-simple-infra.cc ->

../scratch/wifi-simple-infra-v2.cc: In function ‘int ns3::main(int,

../scratch/wifi-simple-infra-v2.cc:215:41: error: overloaded function with
no contextual type information

../scratch/wifi-simple-infra-v2.cc:215:41: error: base operand of ‘->’ is
not a pointer

../scratch/wifi-simple-infra-v2.cc: At global scope:

../scratch/wifi-simple-infra-v2.cc:224:1: error: expected ‘}’ at end of

Waf: Leaving directory `/root/ndnSIM/ns-3/build'

Build failed

-> task in 'wifi-simple-infra-v2' failed (exit status 1):

{task 170263564: cxx wifi-simple-infra-v2.cc ->

['/usr/bin/g++', '-std=c++0x', '-O0', '-ggdb', '-g3', '-Wall',
'-Wno-error=deprecated-declarations', '-fstrict-aliasing',
'-Wstrict-aliasing', '-pthread', '-fPIC', '-fno-strict-aliasing',
'-fwrapv', '-fstack-protector', '-fno-strict-aliasing', '-I.', '-I..',
'-Isrc/ndnSIM', '-I../src/ndnSIM', '-Isrc/ndnSIM/NFD',
'-I../src/ndnSIM/NFD', '-Isrc/ndnSIM/NFD/daemon',
'-I../src/ndnSIM/NFD/daemon', '-Isrc/ndnSIM/NFD/core',
'-I../src/ndnSIM/NFD/core', '-I/usr/local/include', '-I/usr/include',
'-I/usr/include/python2.7', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE',
'-DHAVE_IF_TUN_H=1', '-DNDEBUG', '../scratch/wifi-simple-infra-v2.cc',
'-c', '-o', 'scratch/wifi-simple-infra-v2.cc.8.o']

root at gonzalezcga-VirtualBox:~/ndnSIM/ns-3#


 #include "ns3/core-module.h"

#include "ns3/network-module.h"

#include "ns3/mobility-module.h"

#include "ns3/config-store-module.h"

#include "ns3/wifi-module.h"

#include "ns3/internet-module.h"

#include "ns3/ndnSIM-module.h"

 #include <iostream>

#include <fstream>

#include <vector>

#include <string>


 using namespace std;

namespace ns3{

  void ReceivePacket (Ptr<Socket> socket)


while (socket->Recv ())


NS_LOG_UNCOND ("Received one packet!");



 static void GenerateTraffic (Ptr<Socket> socket, uint32_t pktSize,

uint32_t pktCount, Time pktInterval )


if (pktCount > 0)


socket->Send (Create<Packet> (pktSize));

Simulator::Schedule (pktInterval, &GenerateTraffic,

socket, pktSize,pktCount-1, pktInterval);




socket->Close ();



  int main (int argc, char *argv[])


std::string phyMode ("DsssRate1Mbps");

double rss = -80; // -dBm

uint32_t packetSize = 1000; // bytes

uint32_t numPackets = 1;

double interval = 1.0; // seconds

bool verbose = false;

 CommandLine cmd;

 cmd.AddValue ("phyMode", "Wifi Phy mode", phyMode);

cmd.AddValue ("rss", "received signal strength", rss);

cmd.AddValue ("packetSize", "size of application packet sent", packetSize);

cmd.AddValue ("numPackets", "number of packets generated", numPackets);

cmd.AddValue ("interval", "interval (seconds) between packets", interval);

cmd.AddValue ("verbose", "turn on all WifiNetDevice log components",

 cmd.Parse (argc, argv);

// Convert to time object

Time interPacketInterval = Seconds (interval);

 // disable fragmentation for frames below 2200 bytes

("ns3::WifiRemoteStationManager::FragmentationThreshold", StringValue

// turn off RTS/CTS for frames below 2200 bytes

Config::SetDefault ("ns3::WifiRemoteStationManager::RtsCtsThreshold",
StringValue ("2200"));

// Fix non-unicast data rate to be the same as that of unicast

Config::SetDefault ("ns3::WifiRemoteStationManager::NonUnicastMode",

StringValue (phyMode));

 NodeContainer c;

c.Create (2);

 // The below set of helpers will help us to put together the wifi NICs we

WifiHelper wifi;

if (verbose)


wifi.EnableLogComponents (); // Turn on all Wifi logging


wifi.SetStandard (WIFI_PHY_STANDARD_80211b);

 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();

// This is one parameter that matters when using FixedRssLossModel

// set it to zero; otherwise, gain will be added

wifiPhy.Set ("RxGain", DoubleValue (0) );

// ns-3 supports RadioTap and Prism tracing extensions for 802.11b

wifiPhy.SetPcapDataLinkType (YansWifiPhyHelper::DLT_IEEE802_11_RADIO);

 YansWifiChannelHelper wifiChannel;


// The below FixedRssLossModel will cause the rss to be fixed regardless

// of the distance between the two stations, and the transmit power

wifiChannel.AddPropagationLoss ("ns3::FixedRssLossModel","Rss",DoubleValue

wifiPhy.SetChannel (wifiChannel.Create ());

 // Add a non-QoS upper mac, and disable rate control

NqosWifiMacHelper wifiMac = NqosWifiMacHelper::Default ();

wifi.SetRemoteStationManager ("ns3::ConstantRateWifiManager",

"DataMode",StringValue (phyMode),

"ControlMode",StringValue (phyMode));

 // Setup the rest of the upper mac

Ssid ssid = Ssid ("wifi-default");

// setup sta.

wifiMac.SetType ("ns3::StaWifiMac",

"Ssid", SsidValue (ssid),

"ActiveProbing", BooleanValue (false));

NetDeviceContainer staDevice = wifi.Install (wifiPhy, wifiMac, c.Get (0));

NetDeviceContainer devices = staDevice;

// setup ap.

wifiMac.SetType ("ns3::ApWifiMac",

"Ssid", SsidValue (ssid));

NetDeviceContainer apDevice = wifi.Install (wifiPhy, wifiMac, c.Get (1));

devices.Add (apDevice);

 // Note that with FixedRssLossModel, the positions below are not

// used for received signal strength.

MobilityHelper mobility;

Ptr<ListPositionAllocator> positionAlloc =
CreateObject<ListPositionAllocator> ();

positionAlloc->Add (Vector (0.0, 0.0, 0.0));

positionAlloc->Add (Vector (5.0, 0.0, 0.0));

mobility.SetPositionAllocator (positionAlloc);

mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");

mobility.Install (c);

 *// 3. Install NDN stack *

*NS_LOG_INFO("Installing NDN stack"); *

*ndn::StackHelper ndnHelper; *

*ndnHelper.SetOldContentStore("ns3::ndn::cs::Lru", "MaxSize", "1000"); *

*ndnHelper.SetDefaultRoutes(true); *

*ndnHelper.Install(c); *

 *// Set BestRoute strategy *

*ndn::StrategyChoiceHelper::Install(c, "/",
"/localhost/nfd/strategy/best-route"); *

 *// 4. Set up applications *

*NS_LOG_INFO("Installing Applications"); *

 *ndn::AppHelper consumerHelper("ns3::ndn::ConsumerCbr"); *

*consumerHelper.SetPrefix("/test/prefix"); *

*consumerHelper.SetAttribute("Frequency", DoubleValue(10.0)); *

*consumerHelper.Install(c.Get(0)); *

 *ndn::AppHelper producerHelper("ns3::ndn::Producer"); *

*producerHelper.SetPrefix("/"); *

*producerHelper.SetAttribute("PayloadSize", StringValue("1200")); *

*producerHelper.Install(c.Get(1)); *

 // Tracing

wifiPhy.EnablePcap ("wifi-simple-infra", devices);

 // Output what we are doing

NS_LOG_UNCOND ("Testing " << numPackets << " packets sent with receiver rss
" << rss );

 Simulator::ScheduleWithContext (source->GetNode ()->GetId (),

Seconds (1.0), &GenerateTraffic,

source, packetSize, numPackets, interPacketInterval);

 Simulator::Stop (Seconds (30.0));

Simulator::Run ();

Simulator::Destroy ();

 return 0;

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20150607/391f45cd/attachment.html>

More information about the ndnSIM mailing list