def test_routing(self): lm = RouterLinkManager() rt = LocalRoutingTable(1, lm) self.assertEqual(rt.next_router(1), 1) self.assertEqual(rt.next_router(2), None) lm.add_link(2, None) self.assertEqual(rt.next_router(2), 2) self.assertEqual(rt.next_router(1), 1) self.assertEqual(rt.next_router(3), None)
def setUp(self): l1, l2 = FullDuplexLink(loss_func=LossFunc(0.001, 0.001, 0.001)) sft1 = SimpleFrameTransmitter(node=l1) sft2 = SimpleFrameTransmitter(node=l2) self.ft1 = FrameTransmitter(simple_frame_transmitter=sft1, debug_src=1, debug_dest=2) self.ft2 = FrameTransmitter(simple_frame_transmitter=sft2, debug_src=2, debug_dest=1) rlm1 = RouterLinkManager() rlm2 = RouterLinkManager() self.dr1 = DatagramRouter( router_name=1, link_manager=rlm1, routing_table=LocalRoutingTable(1, rlm1)) self.dr2 = DatagramRouter( router_name=2, link_manager=rlm2, routing_table=LocalRoutingTable(2, rlm2)) rlm1.add_link(2, self.ft1) rlm2.add_link(1, self.ft2) self.sm1 = RouterServiceManager(self.dr1) self.sm2 = RouterServiceManager(self.dr2)
def setUp(self): l1, l2 = FullDuplexLink( loss_func=LossFunc(0.0008, 0.0008, 0.0008)) sft1 = SimpleFrameTransmitter(node=l1) sft2 = SimpleFrameTransmitter(node=l2) self.ft1 = FrameTransmitter(simple_frame_transmitter=sft1, debug_src=1, debug_dest=2) self.ft2 = FrameTransmitter(simple_frame_transmitter=sft2, debug_src=2, debug_dest=1) rlm1 = RouterLinkManager() rlm2 = RouterLinkManager() self.dr1 = DatagramRouter( router_name=1, link_manager=rlm1, routing_table=LocalRoutingTable(1, rlm1)) self.dr2 = DatagramRouter( router_name=2, link_manager=rlm2, routing_table=LocalRoutingTable(2, rlm2)) rlm1.add_link(2, self.ft1) rlm2.add_link(1, self.ft2) self.sm1 = RouterServiceManager(self.dr1) self.sm2 = RouterServiceManager(self.dr2) self.rip_st1 = self.sm1.register_service(RIPService.protocol) self.rip_st2 = self.sm2.register_service(RIPService.protocol) self.rs1 = RIPService(1, rlm1, self.rip_st1, update_period=0.5, inf_timeout=0.9, remove_timeout=1.6) self.rs2 = RIPService(2, rlm2, self.rip_st2, update_period=0.5, inf_timeout=0.9, remove_timeout=1.6) self.dr1.set_routing_table(self.rs1.dynamic_routing_table()) self.dr2.set_routing_table(self.rs2.dynamic_routing_table())