31 import ns.applications
 
   45     cmd = ns.core.CommandLine()
 
   52     terminals = ns.network.NodeContainer()
 
   55     csmaSwitch = ns.network.NodeContainer()
 
   59     csma = ns.csma.CsmaHelper()
 
   60     csma.SetChannelAttribute(
"DataRate", ns.network.DataRateValue(ns.network.DataRate(5000000)))
 
   61     csma.SetChannelAttribute(
"Delay", ns.core.TimeValue(ns.core.MilliSeconds(2)))
 
   65     terminalDevices = ns.network.NetDeviceContainer()
 
   66     switchDevices = ns.network.NetDeviceContainer()
 
   69         link = csma.Install(ns.network.NodeContainer(ns.network.NodeContainer(terminals.Get(i)), csmaSwitch))
 
   70         terminalDevices.Add(link.Get(0))
 
   71         switchDevices.Add(link.Get(1))
 
   74     switchNode = csmaSwitch.Get(0)
 
   75     bridgeDevice = ns.bridge.BridgeNetDevice()
 
   76     switchNode.AddDevice(bridgeDevice)
 
   78     for portIter 
in range(switchDevices.GetN()):
 
   79         bridgeDevice.AddBridgePort(switchDevices.Get(portIter))
 
   82     internet = ns.internet.InternetStackHelper()
 
   83     internet.Install(terminals)
 
   88     ipv4 = ns.internet.Ipv4AddressHelper()
 
   89     ipv4.SetBase(ns.network.Ipv4Address(
"10.1.1.0"), ns.network.Ipv4Mask(
"255.255.255.0"))
 
   90     ipv4.Assign(terminalDevices)
 
   98     onoff = ns.applications.OnOffHelper(
"ns3::UdpSocketFactory", 
 
   99                             ns.network.Address(ns.network.InetSocketAddress(ns.network.Ipv4Address(
"10.1.1.2"), port)))
 
  100     onoff.SetConstantRate (ns.network.DataRate (
"500kb/s"))
 
  102     app = onoff.Install(ns.network.NodeContainer(terminals.Get(0)))
 
  104     app.Start(ns.core.Seconds(1.0))
 
  105     app.Stop(ns.core.Seconds(10.0))
 
  108     sink = ns.applications.PacketSinkHelper(
"ns3::UdpSocketFactory",
 
  109                                 ns.network.Address(ns.network.InetSocketAddress(ns.network.Ipv4Address.GetAny(), port)))
 
  110     app = sink.Install(ns.network.NodeContainer(terminals.Get(1)))
 
  111     app.Start(ns.core.Seconds(0.0))
 
  116     onoff.SetAttribute(
"Remote", 
 
  117                        ns.network.AddressValue(ns.network.InetSocketAddress(ns.network.Ipv4Address(
"10.1.1.1"), port)))
 
  118     app = onoff.Install(ns.network.NodeContainer(terminals.Get(3)))
 
  119     app.Start(ns.core.Seconds(1.1))
 
  120     app.Stop(ns.core.Seconds(10.0))
 
  122     app = sink.Install(ns.network.NodeContainer(terminals.Get(0)))
 
  123     app.Start(ns.core.Seconds(0.0))
 
  140     csma.EnablePcapAll(
"csma-bridge", 
False)
 
  146     ns.core.Simulator.Run()
 
  147     ns.core.Simulator.Destroy()
 
  152 if __name__ == 
'__main__':