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    inet_sock_address = ns.network.InetSocketAddress(ns.network.Ipv4Address(
"10.1.1.2"), port)
 
   99    onoff = ns.applications.OnOffHelper(
"ns3::UdpSocketFactory", inet_sock_address.ConvertTo())
 
  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    inet_address = ns.network.InetSocketAddress(ns.network.Ipv4Address.GetAny(), port)
 
  109    sink = ns.applications.PacketSinkHelper(
"ns3::UdpSocketFactory", inet_address.ConvertTo())
 
  110    app = sink.Install(ns.network.NodeContainer(terminals.Get(1)))
 
  111    app.Start(ns.core.Seconds(0.0))
 
  116    inet_address = ns.network.InetSocketAddress(ns.network.Ipv4Address(
"10.1.1.1"), port)
 
  117    onoff.SetAttribute(
"Remote",
 
  118                       ns.network.AddressValue(inet_address.ConvertTo()))
 
  119    app = onoff.Install(ns.network.NodeContainer(terminals.Get(3)))
 
  120    app.Start(ns.core.Seconds(1.1))
 
  121    app.Stop(ns.core.Seconds(10.0))
 
  123    app = sink.Install(ns.network.NodeContainer(terminals.Get(0)))
 
  124    app.Start(ns.core.Seconds(0.0))
 
  141    csma.EnablePcapAll(
"csma-bridge", 
False)
 
  147    ns.core.Simulator.Run()
 
  148    ns.core.Simulator.Destroy()
 
  153if __name__ == 
'__main__':