예제 #1
0
    def testScheduleDestroy(self):
        """! Test schedule destroy
        @param self this object
        @return none
        """
        def callback(args):
            """! Callback function
            @param args
            @return none
            """
            self._args_received = args
            self._cb_time = Simulator.Now()

        Simulator.Destroy()
        self._args_received = None
        self._cb_time = None

        def null():
            pass

        Simulator.Schedule(Seconds(123), null)
        Simulator.ScheduleDestroy(callback, "args")
        Simulator.Run()
        Simulator.Destroy()
        self.assertEqual(self._args_received, "args")
        self.assertEqual(self._cb_time.GetSeconds(), 123.0)
예제 #2
0
    def testSchedule(self):
        def callback(args):
            self._args_received = args
            self._cb_time = Simulator.Now()

        Simulator.Destroy()
        self._args_received = None
        self._cb_time = None
        Simulator.Schedule(Seconds(123), callback, "args")
        Simulator.Run()
        self.assertEqual(self._args_received, "args")
        self.assertEqual(self._cb_time.GetSeconds(), 123.0)
예제 #3
0
    def testScheduleWithContext(self):
        def callback(context, args):
            self._context_received = context
            self._args_received = args
            self._cb_time = Simulator.Now()

        Simulator.Destroy()
        self._args_received = None
        self._cb_time = None
        self._context_received = None
        Simulator.ScheduleWithContext(54321, Seconds(123), callback, "args")
        Simulator.Run()
        self.assertEqual(self._context_received, 54321)
        self.assertEqual(self._args_received, "args")
        self.assertEqual(self._cb_time.GetSeconds(), 123.0)
예제 #4
0
    def testSocket(self):
        node = ns.network.Node()
        internet = ns.internet.InternetStackHelper()
        internet.Install(node)
        self._received_packet = None

        def rx_callback(socket):
            assert self._received_packet is None
            self._received_packet = socket.Recv()

        sink = ns.network.Socket.CreateSocket(
            node, ns.core.TypeId.LookupByName("ns3::UdpSocketFactory"))
        sink.Bind(
            ns.network.InetSocketAddress(ns.network.Ipv4Address.GetAny(), 80))
        sink.SetRecvCallback(rx_callback)

        source = ns.network.Socket.CreateSocket(
            node, ns.core.TypeId.LookupByName("ns3::UdpSocketFactory"))
        source.SendTo(
            ns.network.Packet(19), 0,
            ns.network.InetSocketAddress(ns.network.Ipv4Address("127.0.0.1"),
                                         80))

        Simulator.Run()
        self.assert_(self._received_packet is not None)
        self.assertEqual(self._received_packet.GetSize(), 19)
예제 #5
0
 def callback(args):
     """! Callback function
     @param args
     @return none
     """
     self._args_received = args
     self._cb_time = Simulator.Now()
예제 #6
0
    def testSocket(self):
        """! Test socket
        @param self
        @return none
        """
        node = ns.network.Node()
        internet = ns.internet.InternetStackHelper()
        internet.Install(node)
        self._received_packet = None

        def rx_callback(socket):
            """! Receive Callback
            @param socket the socket to receive
            @return none
            """
            assert self._received_packet is None
            self._received_packet = socket.Recv(maxSize=UINT32_MAX, flags=0)

        sink = ns.network.Socket.CreateSocket(node, ns.core.TypeId.LookupByName("ns3::UdpSocketFactory"))
        sink.Bind(ns.network.InetSocketAddress(ns.network.Ipv4Address.GetAny(), 80))
        sink.SetRecvCallback(rx_callback)

        source = ns.network.Socket.CreateSocket(node, ns.core.TypeId.LookupByName("ns3::UdpSocketFactory"))
        source.SendTo(ns.network.Packet(19), 0, ns.network.InetSocketAddress(ns.network.Ipv4Address("127.0.0.1"), 80))

        Simulator.Run()
        self.assertTrue(self._received_packet is not None)
        self.assertEqual(self._received_packet.GetSize(), 19)
예제 #7
0
 def callback(context, args):
     """! Callback
     @param context the cntet
     @param args the arguments
     @return none
     """
     self._context_received = context
     self._args_received = args
     self._cb_time = Simulator.Now()
예제 #8
0
 def testScheduleNow(self):
     """! Test schedule now
     @param self this object
     @return none
     """
     def callback(args):
         """! Callback function
         @param args arguments
         return none
         """
         self._args_received = args
         self._cb_time = Simulator.Now()
     Simulator.Destroy()
     self._args_received = None
     self._cb_time = None
     Simulator.ScheduleNow(callback, "args")
     Simulator.Run()
     self.assertEqual(self._args_received, "args")
     self.assertEqual(self._cb_time.GetSeconds(), 0.0)
예제 #9
0
 def testScheduleWithContext(self):
     """! Test schedule with context
     @param self this object
     @return none
     """
     def callback(context, args):
         """! Callback
         @param context the cntet
         @param args the arguments
         @return none
         """
         self._context_received = context
         self._args_received = args
         self._cb_time = Simulator.Now()
     Simulator.Destroy()
     self._args_received = None
     self._cb_time = None
     self._context_received = None
     Simulator.ScheduleWithContext(54321, Seconds(123), callback, "args")
     Simulator.Run()
     self.assertEqual(self._context_received, 54321)
     self.assertEqual(self._args_received, "args")
     self.assertEqual(self._cb_time.GetSeconds(), 123.0)
예제 #10
0
server.Stop(Seconds(10.0))

udp_echo_client_helper = UdpEchoClientHelper(Ipv4Address("10.1.1.1"), 50000)
udp_echo_client_helper.SetAttribute("MaxPackets", UintegerValue(1000))
udp_echo_client_helper.SetAttribute("Interval", TimeValue(Seconds(1.0)))
#udp_echo_client_helper.SetAttribute("Interval", TimeValue(Seconds(0.1)))
#udp_echo_client_helper.SetAttribute("Interval", TimeValue(Seconds(0.01)))
udp_echo_client_helper.SetAttribute("PacketSize", UintegerValue(1024))

#em1 = Ptr()
#em1 = CreateObjectWithAttributes("RanVar", StringValue ("ns3::UniformRandomVariable[Min=0.0,Max=1.0]"), "ErrorRate", DoubleValue (0.01));

#udp_echo_client_helper.SetAttribute("RecieveErrorModel", PointerValue(em1))
client_1 = udp_echo_client_helper.Install(right_node_1)
client_1.Start(Seconds(2.0))
client_1.Stop(Seconds(9.0))

client_2 = udp_echo_client_helper.Install(right_node_2)
client_2.Start(Seconds(2.0))
client_2.Stop(Seconds(9.0))

client_3 = udp_echo_client_helper.Install(left_node_2)
client_3.Start(Seconds(2.0))
client_3.Stop(Seconds(9.0))

point_to_point_helper.EnablePcapAll("dumbbell")
#PointToPointHelper.EnablePcapHelper("dumbbell")

Simulator.Run()
Simulator.Destroy()
예제 #11
0
 def callback(args):
     self._args_received = args
     self._cb_time = Simulator.Now()
예제 #12
0
 def callback(context, args):
     self._context_received = context
     self._args_received = args
     self._cb_time = Simulator.Now()