Example #1
0
 def testLinkDown(self):
     #SimBGP.runConfigFile("../../config/igp_config.cfg")
     SimBGP.runConfigFile("igp_config.cfg")
     SimBGP._event_Scheduler.add(
         SimBGP.CEvent(SimBGP.toSystemTime(100.0), ["3", "2"],
                       SimBGP.EVENT_LINK_DOWN))
     SimBGP.run()
     self.assertEqual(SimBGP._igp_graph.getShortestPathLength("3", "2"),
                      2000)
Example #2
0
 def testLinkDown(self):
     """Checking behaviour when an IGP link is down"""
     for mode in self.bgp_modes:
         SimBGP.init()
         #SimBGP.readConfigFile("../../config/plain_hot_potato.cfg")
         SimBGP.readConfigFile("plain_hot_potato.cfg")
         SimBGP.BGPModeAllRouters(mode)
         SimBGP.computeIGP()
         SimBGP.run()
         self.assertEqual(
             SimBGP.getRouterLink("0.0.0.1", "0.0.0.2").reach,
             SimBGP.PEER_REACH)
         #Check that each router prefers path via itself
         self.assertEqual(
             SimBGP._router_list["0.0.0.2"].loc_rib["1.0/8"][0].src_pid,
             "0.0.0.0")
         self.assertEqual(
             SimBGP._router_list["0.0.0.1"].loc_rib["1.0/8"][0].src_pid,
             "0.0.0.0")
         #Check that each receiving router prefers eBGP path
         self.assertEqual(
             SimBGP._router_list["0.0.0.3"].loc_rib["1.0/8"][0].src_pid,
             "1.0.0.0")
         self.assertEqual(
             SimBGP._router_list["0.0.0.0"].loc_rib["1.0/8"][0].src_pid,
             "2.0.0.0")
         #Link down
         SimBGP._event_Scheduler.add(
             SimBGP.CEvent(SimBGP.toSystemTime(10.0),
                           ["0.0.0.1", "0.0.0.2"], SimBGP.EVENT_LINK_DOWN))
         SimBGP.run()
         self.assertEqual(
             SimBGP.getRouterLink("0.0.0.1", "0.0.0.2").reach,
             SimBGP.PEER_UNREACH)
         self.assertEqual(
             SimBGP._router_list["0.0.0.2"].loc_rib["1.0/8"][0].src_pid,
             "0.0.0.3")
         self.assertEqual(
             SimBGP._router_list["0.0.0.1"].loc_rib["1.0/8"][0].src_pid,
             "0.0.0.0")
         #Check that each receiving router prefers eBGP path
         self.assertEqual(
             SimBGP._router_list["0.0.0.3"].loc_rib["1.0/8"][0].src_pid,
             "1.0.0.0")
         self.assertEqual(
             SimBGP._router_list["0.0.0.0"].loc_rib["1.0/8"][0].src_pid,
             "2.0.0.0")
         #Check Link Up
         SimBGP._event_Scheduler.add(
             SimBGP.CEvent(SimBGP.toSystemTime(11.0),
                           ["0.0.0.1", "0.0.0.2"], SimBGP.EVENT_LINK_UP))
         SimBGP.run()
         self.assertTrue(
             SimBGP._igp_graph.isReachableFrom("0.0.0.1", "0.0.0.2"))
         self.assertEqual(
             SimBGP.getRouterLink("0.0.0.1", "0.0.0.2").reach,
             SimBGP.PEER_REACH)
         self.assertEqual(
             SimBGP._router_list["0.0.0.2"].loc_rib["1.0/8"][0].src_pid,
             "0.0.0.0")
         self.assertEqual(
             SimBGP._router_list["0.0.0.1"].loc_rib["1.0/8"][0].src_pid,
             "0.0.0.0")