23ns.LogComponentEnable(
"Ipv4ClickRouting", ns.LOG_LEVEL_ALL)
24ns.LogComponentEnable(
"Ipv4L3ClickProtocol", ns.LOG_LEVEL_ALL)
26clickConfigFolder = os.path.dirname(__file__)
28csmaNodes = ns.NodeContainer()
33csma.SetChannelAttribute(
"DataRate", ns.DataRateValue(ns.DataRate(5000000)))
34csma.SetChannelAttribute(
"Delay", ns.TimeValue(ns.MilliSeconds(2)))
35csmaDevices = csma.Install(csmaNodes)
38internet = ns.InternetStackHelper()
39internet.Install(csmaNodes.Get(1))
42clickinternet = ns.ClickInternetStackHelper()
43clickinternet.SetClickFile(csmaNodes.Get(0),
44 clickConfigFolder +
"/nsclick-lan-single-interface.click")
45clickinternet.SetRoutingTableElement(csmaNodes.Get(0),
"rt")
46clickinternet.Install(csmaNodes.Get(0))
49ipv4 = ns.Ipv4AddressHelper()
50ipv4.SetBase(
"172.16.1.0",
"255.255.255.0")
51ipv4.Assign(csmaDevices)
54LocalAddress = ns.InetSocketAddress(ns.Ipv4Address.GetAny(), 50000).ConvertTo()
55packetSinkHelper = ns.PacketSinkHelper(
"ns3::TcpSocketFactory", LocalAddress)
56recvapp = packetSinkHelper.Install(csmaNodes.Get(1))
57recvapp.Start(ns.Seconds(5.0))
58recvapp.Stop(ns.Seconds(10.0))
60onOffHelper = ns.OnOffHelper(
"ns3::TcpSocketFactory", ns.Address())
61onOffHelper.SetAttribute(
"OnTime", ns.StringValue(
"ns3::ConstantRandomVariable[Constant=1]"))
62onOffHelper.SetAttribute(
"OffTime", ns.StringValue(
"ns3::ConstantRandomVariable[Constant=0]"))
64appcont = ns.ApplicationContainer()
66remoteAddress = ns.InetSocketAddress(ns.Ipv4Address(
"172.16.1.2"), 50000).ConvertTo()
67onOffHelper.SetAttribute(
"Remote", ns.AddressValue(remoteAddress))
68appcont.Add(onOffHelper.Install(csmaNodes.Get(0)))
70appcont.Start(ns.Seconds(5.0))
71appcont.Stop(ns.Seconds(10.0))
74csma.EnablePcap(
"nsclick-simple-lan", csmaDevices,
False)
76ns.Simulator.Stop(ns.Seconds(20.0))